Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia de início rápido demonstra como se conectar a um Banco de Dados do Azure para PostgreSQL usando código escrito na linguagem Go (golang). Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados. Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando o Go, mas que você seja novo no trabalho com o Banco de Dados do Azure para PostgreSQL.
Prerequisites
Este guia de início rápido usa os recursos criados no Criar um Banco de Dados do Azure para PostgreSQL como ponto de partida.
Important
Recomendamos que você use um servidor com acesso público (endereços IP permitidos) habilitado para este início rápido. Usar um servidor com acesso privado (integração de rede virtual) habilitado para concluir este início rápido pode envolver etapas adicionais que não são cobertas.
Verifique se o endereço IP do qual você está se conectando foi adicionado às regras de firewall do servidor usando o portal do Azure ou a CLI do Azure.
Instalar Go e conector pq
Instale o Go e o driver Pure Go Postgres (pq) em sua própria máquina. Dependendo da sua plataforma, siga os passos apropriados:
Transfira e instale o Go para o Microsoft Windows, de acordo com as instruções de instalação.
Inicie a linha de comandos a partir do menu Iniciar.
Crie uma pasta para o seu projeto, como
mkdir %USERPROFILE%\go\src\postgresqlgo.Altere o diretório para a pasta do projeto, como
cd %USERPROFILE%\go\src\postgresqlgo.Defina a variável de ambiente para GOPATH para apontar para o diretório do código-fonte.
set GOPATH=%USERPROFILE%\go.Execute go mod init para criar um módulo no diretório atual. Por exemplo:
go mod init postgresqlgo.- O
<module_path>parâmetro é geralmente um local em um repositório GitHub - comogithub.com/<your_github_account_name>/<directory>. - Quando você está criando um aplicativo de linha de comando como um teste e não publica o aplicativo, o
<module_path>não precisa se referir a um local real. Por exemplo,postgresqlgo.
- O
Instale o driver Pure Go Postgres (pq) executando o
go get github.com/lib/pqcomando.Para resumir, instale o Go e, em seguida, execute estes comandos na linha de comandos:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Obter informações de conexão
Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para PostgreSQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.
- Faça logon no portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
- Selecione o nome do servidor.
- No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.
Criar e executar código Go
- Para escrever código Golang, você pode usar um editor de texto simples, como o Bloco de Notas no Microsoft Windows, ou Nano no Ubuntu, ou Editor de Texto no macOS. Se preferir um ambiente de desenvolvimento interativo (IDE) mais rico, experimente o GoLand by Jetbrains, o Visual Studio Code da Microsoft ou o Atom.
- Cole o código Golang das seguintes seções em arquivos de texto e salve na pasta do projeto com a extensão de arquivo *.go, como caminho
%USERPROFILE%\go\src\postgresqlgo\createtable.godo Windows ou caminho~/go/src/postgresqlgo/createtable.godo Linux . - Localizar as constantes
HOST,DATABASE,USERePASSWORDno código e substitua os valores de exemplo pelos seus próprios valores. Um banco de dados chamado postgres é criado quando você cria seu Banco de Dados do Azure para a instância do servidor PostgreSQL. Você pode usar esse banco de dados ou outro que você criou. - Abra a linha de comandos ou o shell Bash. Altere o diretório para a pasta do projeto . Por exemplo, no Windows
cd %USERPROFILE%\go\src\postgresqlgo\. No Linux,cd ~/go/src/postgresqlgo/. Alguns dos ambientes IDE mencionados oferecem recursos de depuração e tempo de execução sem exigir comandos shell. - Execute o código com o comando
go run createtable.go, para compilar a aplicação e executá-la. - Em alternativa, para criar o código numa aplicação nativa,
go build createtable.go, e iniciecreatetable.exepara executar a aplicação.
Conecte-se e crie uma tabela
Use o código a seguir para se conectar e criar uma tabela usando a instrução CREATE TABLE SQL, seguida por instruções INSERT INTO SQL para adicionar linhas à tabela.
O código importa três pacotes: o pacote sql, o pacote pq como um driver para se comunicar com o servidor PostgreSQL e o pacote fmt para entrada e saída impressas na linha de comando.
O código chama o método sql. Open() para se conectar ao Banco de Dados do Azure para banco de dados PostgreSQL e verifica a conexão usando o método db. Ping(). É utilizado um identificador de base de dados ao manter o conjunto de ligações para o servidor da base de dados. O código chama o método Exec() várias vezes para executar vários comandos SQL. Cada vez que um método checkError() personalizado verifica se ocorreu um erro e entra em pânico para sair se ocorrer um erro.
Substitua os parâmetros HOST, DATABASE, USER e PASSWORD pelos seus próprios valores.
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")
}
Ler dados
Use o código a seguir para conectar e ler os dados usando uma instrução SQL SELECT .
O código importa três pacotes: o pacote sql, o pacote pq como um driver para se comunicar com o servidor PostgreSQL e o pacote fmt para entrada e saída impressas na linha de comando.
O código chama o método sql. Open() para se conectar ao Banco de Dados do Azure para banco de dados PostgreSQL e verifica a conexão usando o método db. Ping(). É utilizado um identificador de base de dados ao manter o conjunto de ligações para o servidor da base de dados. A consulta select é executada chamando o método db. Query(), e as linhas resultantes são mantidas em uma variável de tipo linhas. O código lê os valores de dados da coluna na linha atual usando o método rows.Scan() e faz um loop sobre as linhas usando o iterador rows.Next() até que não existam mais linhas. Os valores das colunas de cada linha são impressos na saída do console. A cada impressão, um método personalizado checkError() é utilizado para verificar se ocorreu algum erro e, caso ocorra, o programa é encerrado.
Substitua os parâmetros HOST, DATABASE, USER e PASSWORD pelos seus próprios valores.
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)
}
}
}
Atualizar dados
Use o código a seguir para conectar e atualizar os dados usando uma instrução UPDATE SQL.
O código importa três pacotes: o pacote sql, o pacote pq como um driver para se comunicar com o servidor Postgres e o pacote fmt para entrada e saída impressas na linha de comando.
O código chama o método sql. Open() para se conectar ao Banco de Dados do Azure para banco de dados PostgreSQL e verifica a conexão usando o método db. Ping(). É utilizado um identificador de base de dados ao manter o conjunto de ligações para o servidor da base de dados. O código chama o método Exec() para executar a instrução SQL que atualiza a tabela. Um método checkError() personalizado é usado para verificar se ocorreu um erro e entrar em pânico para sair se ocorrer um erro.
Substitua os parâmetros HOST, DATABASE, USER e PASSWORD pelos seus próprios valores.
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")
}
Eliminar dados
Use o código a seguir para conectar e excluir os dados usando uma instrução DELETE SQL.
O código importa três pacotes: o pacote sql, o pacote pq como um driver para se comunicar com o servidor Postgres e o pacote fmt para entrada e saída impressas na linha de comando.
O código chama o método sql. Open() para se conectar ao Banco de Dados do Azure para banco de dados PostgreSQL e verifica a conexão usando o método db. Ping(). É utilizado um identificador de base de dados ao manter o conjunto de ligações para o servidor da base de dados. O código chama o método Exec() para executar a instrução SQL que exclui uma linha da tabela. Um método checkError() personalizado é usado para verificar se ocorreu um erro e entrar em pânico para sair se ocorrer um erro.
Substitua os parâmetros HOST, DATABASE, USER e PASSWORD pelos seus próprios valores.
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")
}
Limpeza de recursos
Para limpar todos os recursos usados durante este início rápido, exclua o grupo de recursos usando o seguinte comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Conteúdo relacionado
- Gerencie o Banco de Dados do Azure para PostgreSQL usando o portal do Azure.
- Guia de início rápido: use Python para conectar e consultar dados no Banco de Dados do Azure para PostgreSQL.
- Guia de início rápido: use Java para conectar e consultar dados de um Banco de Dados do Azure para PostgreSQL.
- Guia de início rápido: use o .NET (C#) para conectar e consultar dados de um Banco de Dados do Azure para PostgreSQL.
- Guia de início rápido: use PHP para conectar e consultar dados de um Banco de Dados do Azure para PostgreSQL.
- Início rápido: use a CLI do Azure para se conectar e consultar dados de um Banco de Dados do Azure para PostgreSQL.
- Guia de início rápido: importe dados do Banco de Dados do Azure para PostgreSQL no Power BI.