Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento rychlý start ukazuje, jak se připojit ke službě Azure Database for PostgreSQL pomocí kódu napsaného v jazyce Go (Golang). Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi. Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Jazyka Go, ale začínáte pracovat s Azure Database for PostgreSQL.
Požadavky
V tomto rychlém průvodci jsou jako výchozí bod použity prostředky vytvořené ve službě Azure Database for PostgreSQL.
Důležité
Pro účely tohoto rychlého startu použijte server s povoleným veřejným přístupem (povolené IP adresy ). K dokončení této rychlé příručky může být potřeba použít server s povoleným privátním přístupem (integrací virtuální sítě), což může zahrnovat další kroky, které nejsou pokryty.
Pomocí portálu Azure nebo Azure CLI se ujistěte, že IP adresa, ze které se připojujete, je přidána do pravidel brány firewall serveru.
Instalace jazyka Go a konektoru pq
Nainstalujte na svém počítači jazyk Go a ovladač Pure Go Postgres (pq). V závislosti na vaší platformě postupujte podle příslušných kroků:
Stáhněte a nainstalujte jazyk Go pro Microsoft Windows podle pokynů k instalaci.
Z nabídky Start spusťte příkazový řádek.
Vytvořte složku pro projekt, například
mkdir %USERPROFILE%\go\src\postgresqlgo.Změňte adresář na složku projektu, například
cd %USERPROFILE%\go\src\postgresqlgo.Nastavte proměnnou prostředí GOPATH tak, aby odkazovala na adresář se zdrojovým kódem.
set GOPATH=%USERPROFILE%\go.Spuštěním příkazu go mod init vytvořte modul v aktuálním adresáři. Například:
go mod init postgresqlgo.- Parametr
<module_path>je obecně umístění v úložišti GitHubu , napříkladgithub.com/<your_github_account_name>/<directory>. - Když vytváříte aplikaci příkazového řádku jako test a aplikaci nepublikujete,
<module_path>nemusí odkazovat na skutečné umístění. Například:postgresqlgo.
- Parametr
Nainstalujte ovladač Pure Go Postgres (pq) spuštěním příkazu
go get github.com/lib/pq.Stručně řečeno, nainstalujte jazyk Go a potom na příkazovém řádku spusťte následující příkazy:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení ke službě Azure Database for PostgreSQL. Potřebujete plně kvalifikovaný název serveru a ověřovací přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo na webu Azure Portal vyberte Všechny prostředky a vyhledejte server, který jste vytvořili (například mydemoserver).
- Vyberte název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Sestavení a spuštění kódu jazyka Go
- Pokud chcete napsat kód Go, použijte editor prostého textu, například Poznámkový blok v Microsoft Windows, Nano v Ubuntu nebo TextEdit v macOS. Pokud dáváte přednost bohatšímu interaktivnímu vývojovému prostředí (IDE), vyzkoušejte GoLand by JetBrains, Visual Studio Code Microsoft nebo Atom.
- Vložte kód Go z následujících částí do textových souborů a uložte je do složky projektu s příponou *.go, například cesta ve Windows
%USERPROFILE%\go\src\postgresqlgo\createtable.gonebo cesta v Linuxu~/go/src/postgresqlgo/createtable.go. - V kódu vyhledejte konstanty
HOST,DATABASE,USERaPASSWORDa příklady hodnot nahraďte vlastními hodnotami. Při vytváření Azure Database for PostgreSQL serveru vytvoříte databázi s názvem postgres. Tuto databázi nebo jinou databázi, kterou vytvoříte, můžete použít. - Spusťte příkazový řádek nebo prostředí Bash. Změňte adresář na složku vašeho projektu. Například na Windows použijte
cd %USERPROFILE%\go\src\postgresqlgo\. V Linuxu použijtecd ~/go/src/postgresqlgo/. Některá ze zmíněných integrovaných vývojových prostředí (IDE) nabízejí možnosti ladění a spuštění, které nevyžadují příkazového řádku. - Spusťte kód zadáním příkazu
go run createtable.go, který aplikaci zkompiluje a spustí. - Případně pokud chcete kód sestavit do nativní aplikace, použijte
go build createtable.go. Potom spusťtecreatetable.exe, aby se aplikace spustila.
Připojení a vytvoření tabulky
Pomocí následujícího kódu se připojte a vytvořte tabulku pomocí příkazu CREATE TABLE SQL a potom příkazy INSERT INTO SQL, které do tabulky přidají řádky.
Kód importuje tři balíčky: balíček sql, balíček pq jako ovladač pro komunikaci se serverem PostgreSQL a balíček fmt pro tisk vstupů a výstupů na příkazovém řádku.
Kód volá metodu sql.Open() pro připojení k databázi Azure Database for PostgreSQL a připojení ověří pomocí metody db.Ping(). Po celou dobu se používá popisovač databáze, který uchovává fond připojení pro databázový server. Kód několikrát volá metodu Exec() pro spuštění několika příkazů jazyka SQL. Pokaždé, když vlastní metoda checkError() zkontroluje, jestli došlo k chybě, a zpanikaří, aby se ukončila, pokud dojde k chybě.
Nahraďte parametry HOST, DATABASE, USER a PASSWORD vlastními hodnotami.
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")
}
Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.
Kód importuje tři balíčky: balíček sql, balíček pq jako ovladač pro komunikaci se serverem PostgreSQL a balíček fmt pro tisk vstupů a výstupů na příkazovém řádku.
Kód volá metodu sql.Open() pro připojení k databázi Azure Database for PostgreSQL a připojení ověřuje pomocí metody db.Ping(). Po celou dobu se používá popisovač databáze, který uchovává fond připojení pro databázový server. Dotaz SELECT se spustí voláním metody db.Query() a výsledné řádky se uloží do proměnné typu rows. Kód načte hodnoty dat ve sloupcích aktuálního řádku pomocí metody rows.Scan() a prochází řádky pomocí iterátoru rows.Next(), dokud existují další řádky. Hodnoty sloupců každého řádku se vytisknou do konzoly. Pokaždé se používá vlastní metoda checkError() ke kontrole, zda došlo k chybě, a pokud ano, vyvolá panic a ukončí běh programu.
Nahraďte parametry HOST, DATABASE, USER a PASSWORD vlastními hodnotami.
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)
}
}
}
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.
Kód importuje tři balíčky: balíček sql, balíček pq jako ovladač pro komunikaci se serverem Postgres a balíček fmt pro tisk vstupů a výstupů na příkazovém řádku.
Kód volá metodu sql.Open() pro připojení k databázi Azure Database for PostgreSQL a ověřuje připojení pomocí metody db.Ping(). Po celou dobu se používá popisovač databáze, který uchovává fond připojení pro databázový server. Kód volá metodu Exec() pro spuštění příkazu jazyka SQL, který aktualizuje tabulku. Pomocí vlastní metody checkError() se zkontroluje, jestli nedošlo k chybě, a pokud k nějaké dojde, kód se nouzově ukončí.
Nahraďte parametry HOST, DATABASE, USER a PASSWORD vlastními hodnotami.
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")
}
Odstranění dat
Pomocí následujícího kódu se připojte k databázi a odstraňte data pomocí příkazu DELETE SQL.
Kód importuje tři balíčky: balíček sql, balíček pq jako ovladač pro komunikaci se serverem Postgres a balíček fmt pro tisk vstupů a výstupů na příkazovém řádku.
Kód volá metodu sql.Open() pro připojení k Azure Database for PostgreSQL a ověřuje připojení pomocí metody db.Ping().
Obslužný objekt databáze uchovává fond připojení k databázovému serveru a používá se v celém kódu. Kód volá metodu Exec() pro spuštění příkazu jazyka SQL, který odstraní řádek z tabulky. Vlastní checkError() metoda zkontroluje, jestli došlo k chybě, a ukončí, pokud dojde k chybě.
Nahraďte parametry HOST, DATABASE, USER a PASSWORD vlastními hodnotami.
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")
}
Vyčistěte zdroje
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Související obsah
- Správa Služby Azure Database for PostgreSQL pomocí webu Azure Portal
- Rychlý start: Použití Pythonu k připojení a dotazování dat ve službě Azure Database for PostgreSQL
- Rychlý start: Použití Javy k připojení a dotazování dat ze služby Azure Database for PostgreSQL
- Rychlý start: Použití .NET (C#) k připojení a dotazování dat ze služby Azure Database for PostgreSQL
- Rychlý start: Použití PHP k připojení a dotazování dat ze služby Azure Database for PostgreSQL
- Rychlý start: Připojení a dotazování dat ze služby Azure Database for PostgreSQL pomocí Azure CLI
- Rychlý start: Import dat ze služby Azure Database for PostgreSQL v Power BI