Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Go dilinde (golang) yazılmış kod kullanılarak PostgreSQL için Azure Veritabanı’na nasıl bağlanılacağı gösterilmiştir. Veritabanında verileri sorgulamak, eklemek, güncellemek ve silmek için SQL ifadelerinin nasıl kullanılacağı gösterilmektedir. Bu makalede Go kullanarak geliştirme konusunda bilgi sahibi olduğunuz ancak PostgreSQL için Azure Veri Tabanı ile çalışmaya yeni olduğunuz varsayılır.
Önkoşullar
Bu hızlı başlangıçta, başlangıç noktası olarak PostgreSQL için Azure Veritabanı oluşturma bölümünde oluşturulan kaynaklar kullanılır.
Önemli
Bu hızlı başlangıç için Genel erişim (izin verilen IP adresleri) etkinleştirilmiş bir sunucu kullanın. Bu hızlı başlangıcı tamamlamak için Özel erişim (VNet Tümleştirmesi) etkinleştirilmiş bir sunucu kullanmak, ele alınmayacak ek adımlar içerebilir.
Azure portalı veyaAzure CLI kullanarak bağlandığınız IP adresinin sunucunun güvenlik duvarı kurallarına eklendiğinden emin olun.
Go ve pq bağlayıcısını yükleme
Makinenize Go’yu ve Pure Go Postgres sürücüsünü (pq) yükleyin. Platformunuza bağlı olarak, uygun adımları izleyin:
Yükleme yönergelerine uygun olarak Microsoft Windows için Go’yu indirin ve yükleyin.
Başlat menüsünden komut istemini başlatın.
Projeniz için gibi
mkdir %USERPROFILE%\go\src\postgresqlgobir klasör oluşturun.Dizini değiştirerek proje klasörünüze geçin; örneğin,
cd %USERPROFILE%\go\src\postgresqlgo.GOPATH için ortam değişkenini kaynak kod dizinine işaret edecek şekilde ayarlayın.
set GOPATH=%USERPROFILE%\go.Geçerli dizinde bir modül oluşturmak için go mod init komutunu çalıştırın. Örneğin:
go mod init postgresqlgo.-
<module_path>parametresi genelliklegithub.com/<your_github_account_name>/<directory>gibi bir GitHub deposundaki bir konumdur. - Bir test olarak komut satırı uygulaması oluştururken ve uygulamayı yayımlamayacaksanız,
<module_path>öğesinin gerçek bir konuma referans vermesi gerekmez. Örneğin,postgresqlgo.
-
komutunu çalıştırarak
go get github.com/lib/pqyükleyin.Özetle, Go’yu yükleyin ve ardından komut isteminde şu komutları çalıştırın:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Bağlantı bilgilerini alma
PostgreSQL için Azure Veritabanı'na bağlanmak üzere gereken bağlantı bilgilerini alın. Tam sunucu adına ve kimlik doğrulaması kimlik bilgilerine ihtiyacınız vardır.
- Azure Portal’da oturum açın.
- Azure portalında sol taraftaki menüden Tüm kaynaklar'ı seçin ve oluşturduğunuz sunucuyu ( mydemoserver gibi) arayın.
- Sunucu adını seçin.
- Sunucunun Genel Bakış panelinden Sunucu adı ile Sunucu yöneticisi oturum açma adı’nı not alın. Parolanızı unutursanız, bu panelden parolayı da sıfırlayabilirsiniz.
Go kodunu derleme ve çalıştırma
- Go kodu yazmak için Microsoft Windows Not Defteri, Ubuntu'da Nano veya macOS'ta TextEdit gibi düz bir metin düzenleyicisi kullanın. Daha zengin bir etkileşimli geliştirme ortamı (IDE) tercih ediyorsanız JetBrains'e göre GoLand'ı, Microsoft veyaAtom'a göre Visual Studio Code deneyin.
- Aşağıdaki bölümlerde yer alan Go kodunu metin dosyalarına yapıştırın ve *.go dosya uzantısıyla proje klasörünüzde (Windows yolu veya Linux yolu
%USERPROFILE%\go\src\postgresqlgo\createtable.go~/go/src/postgresqlgo/createtable.gogibi) kaydedin. - Kodda
HOST,DATABASE,USERvePASSWORDsabitlerini bulun ve örnek değerleri kendi değerlerinizle değiştirin. PostgreSQL için Azure Veri Tabanı sunucunuzu oluşturduğunuzda postgres adlı bir veritabanı oluşturursunuz. Bu veritabanını veya oluşturduğunuz başka bir veritabanını kullanabilirsiniz. - Komut istemini veya bash kabuğunu başlatın. Dizini değiştirerek proje klasörünüze geçin. Örneğin, Windows'ta
cd %USERPROFILE%\go\src\postgresqlgo\kullanın. Linux'ta kullanıncd ~/go/src/postgresqlgo/. Belirtilen IDE ortamlarından bazıları kabuk komutları gerektirmeden hata ayıklama ve çalışma zamanı özellikleri sunar. - Uygulamayı derlemek ve çalıştırmak için
go run createtable.gokomutunu yazarak kodu çalıştırın. - Alternatif olarak, kodu yerel bir uygulamada derlemek için kullanın
go build createtable.go. Ardından uygulamayı çalıştırmak için başlatıncreatetable.exe.
Bağlanma ve tablo oluşturma
CREATE TABLE SQL deyimini kullanarak bağlanmak ve tablo oluşturmak için aşağıdaki kodu, ardından tabloya satır eklemek için INSERT INTO SQL deyimlerini kullanın.
Kod üç paketi içeri aktarır: sql paketi, PostgreSQL sunucusuyla iletişim kuran sürücü olarak pq paketi ve komut satırında yazdırılan girdi ve çıktı için fmt paketi.
Kod, PostgreSQL için Azure Veri Tabanı veritabanına bağlanmak için sql.Open() yöntemini çağırır ve db.Ping() yöntemini kullanarak bağlantıyı kontrol eder. İşlem boyunca, veritabanı sunucusu için bağlantı havuzunu tutan bir veritabanı tanıtıcı kullanılır. Kod, birkaç SQL komutunu çalıştırmak için birkaç kez Exec() yöntemini çağırır. Özel bir checkError() yöntemi her seferinde bir hata oluşup oluşmadığını denetler ve hata oluşursa panikle çıkılır.
HOST, DATABASE, USER ve PASSWORD parametrelerini kendi değerlerinizle değiştirin.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Drop previous table of same name if one exists.
_, err = db.Exec("DROP TABLE IF EXISTS inventory;")
checkError(err)
fmt.Println("Finished dropping table (if existed)")
// Create table.
_, err = db.Exec("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
checkError(err)
fmt.Println("Finished creating table")
// Insert some data into table.
sql_statement := "INSERT INTO inventory (name, quantity) VALUES ($1, $2);"
_, err = db.Exec(sql_statement, "banana", 150)
checkError(err)
_, err = db.Exec(sql_statement, "orange", 154)
checkError(err)
_, err = db.Exec(sql_statement, "apple", 100)
checkError(err)
fmt.Println("Inserted 3 rows of data")
}
Veriyi oku
Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.
Kod üç paketi içeri aktarır: sql paketi, PostgreSQL sunucusuyla iletişim kuran sürücü olarak pq paketi ve komut satırında yazdırılan girdi ve çıktı için fmt paketi.
Kod, PostgreSQL için Azure Veri Tabanı veritabanına bağlanmak için sql.Open() yöntemini çağırır ve bağlantıyı db.Ping() yöntemini kullanarak denetler. İşlem boyunca, veritabanı sunucusu için bağlantı havuzunu tutan bir veritabanı tanıtıcı kullanılır. Seçme sorgusu, db.Query() yöntemi çağrılarak çalıştırılır ve elde edilen satırlar rows türünde bir değişkende tutulur. Kod, rows.Scan() yöntemini kullanarak geçerli satırdaki sütun veri değerlerini okur ve başka satır kalmayana kadar rows.Next() yineleyicisini kullanarak satırlar üzerinde yineleme yapar. Her satırın sütun değerleri konsola yazdırılır. Bir hatanın oluşup oluşmadığını denetlemek için özel checkError() yöntemi her kullanıldığında, hata oluşmuşsa program panic vererek sonlandırılır.
HOST, DATABASE, USER ve PASSWORD parametrelerini kendi değerlerinizle değiştirin.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Read rows from table.
var id int
var name string
var quantity int
sql_statement := "SELECT * from inventory;"
rows, err := db.Query(sql_statement)
checkError(err)
defer rows.Close()
for rows.Next() {
switch err := rows.Scan(&id, &name, &quantity); err {
case sql.ErrNoRows:
fmt.Println("No rows were returned")
case nil:
fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)
default:
checkError(err)
}
}
}
Verileri güncelleştirme
Bağlanmak ve bir UPDATE SQL deyimi kullanarak verileri güncelleştirmek için aşağıdaki kodu kullanın.
Kod üç paketi içeri aktarır: sql paketi, Postgres sunucusuyla iletişim kuran sürücü olarak pq paketi ve komut satırında yazdırılan girdi ve çıktı için fmt paketi.
Kod, PostgreSQL için Azure Veri Tabanı veritabanına bağlanmak için sql.Open() yöntemini çağırır ve db.Ping() yöntemini kullanarak bağlantıyı denetler. İşlem boyunca, veritabanı sunucusu için bağlantı havuzunu tutan bir veritabanı tanıtıcı kullanılır. Kod, tabloyu güncelleştiren SQL deyimini çalıştırmak için Exec() yöntemini çağırır. Hata oluşup olmadığını kontrol etmek ve hata oluşmuşsa acil çıkış yapmak için özel bir checkError() yöntemi kullanılır.
HOST, DATABASE, USER ve PASSWORD parametrelerini kendi değerlerinizle değiştirin.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Modify some data in table.
sql_statement := "UPDATE inventory SET quantity = $2 WHERE name = $1;"
_, err = db.Exec(sql_statement, "banana", 200)
checkError(err)
fmt.Println("Updated 1 row of data")
}
Verileri sil
Veritabanına bağlanmak ve DELETE SQL deyimini kullanarak verileri silmek için aşağıdaki kodu kullanın.
Kod üç paketi içeri aktarır: sql paketi, Postgres sunucusuyla iletişim kuran sürücü olarak pq paketi ve komut satırında yazdırılan girdi ve çıktı için fmt paketi.
Kod, PostgreSQL için Azure Veri Tabanı’e bağlanmak için sql.Open() yöntemini çağırır ve bağlantıyı db.Ping() yöntemini kullanarak denetler. Bir veritabanı tutamacı, veritabanı sunucusunun bağlantı havuzunu barındırır ve uygulama genelinde kullanılır. Kod, tablodan bir satır silen SQL deyimini çalıştırmak için Exec() yöntemini çağırır. Özel checkError() bir yöntem hata oluşup oluşmadığını denetler ve hata oluşursa çıkış yapar.
HOST, DATABASE, USER ve PASSWORD parametrelerini kendi değerlerinizle değiştirin.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Delete some data from table.
sql_statement := "DELETE FROM inventory WHERE name = $1;"
_, err = db.Exec(sql_statement, "orange")
checkError(err)
fmt.Println("Deleted 1 row of data")
}
Kaynakları temizle
Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
İlgili içerik
- Azure portalını kullanarak PostgreSQL için Azure Veritabanı'nı yönetin.
- Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'na bağlanmak ve verileri sorgulamak için Python kullanın.
- Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'na bağlanmak ve veri sorgulamak için Java kullanın.
- Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'na bağlanmak ve veri sorgulamak için .NET (C#) kullanın.
- Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'na bağlanmak ve veri sorgulamak için PHP kullanın.
- Hızlı Başlangıç: PostgreSQL için Azure Veritabanı'na bağlanmak ve veri sorgulamak için Azure CLI kullanın.
- Hızlı Başlangıç: Power BI'da PostgreSQL için Azure Veritabanı'ndan verileri içeri aktarma.