PL/pgSQL com PostgreSQL e pgAdmin 4: introdução
Primeiros passos com PostgreSQL e pgAdmin 4: o padrão SQL e suas extensões (como PL/pgSQL), a arquitetura cliente/servidor, o cadastro de um servidor no pgAdmin, o Query Tool e um primeiro teste com criação de tabela, inserção e consulta.
1. Visão geral
Neste codelab você conhece o padrão SQL e as extensões criadas pelos fabricantes de SGBDs, entende a arquitetura cliente/servidor do PostgreSQL e prepara o ambiente de trabalho no pgAdmin 4, terminando com um primeiro teste de criação de tabela, inserção e consulta.
O que você vai aprender
- Quais comandos o padrão SQL prevê (DDL, DML, DCL, TCL e DQL)
- O que são extensões ao padrão SQL, como T-SQL, PL/SQL e PL/pgSQL
- Como funciona a arquitetura cliente/servidor do PostgreSQL
- Como cadastrar um servidor no pgAdmin
- Como abrir o editor SQL (Query Tool) e executar comandos
- Como visualizar e editar os dados de uma tabela graficamente
O que você vai precisar
- PostgreSQL instalado (a apostila usa o PostgreSQL 14)
- pgAdmin 4 instalado
- A senha definida para o usuário
postgresdurante a instalação
2. O padrão SQL e suas extensões
SQL significa Structured Query Language. Trata-se de um padrão baseado na álgebra relacional. A tabela a seguir mostra os comandos previstos pelo padrão SQL.
| Data Definition Language | Data Manipulation Language | Data Control Language | Transaction Control Language | Data Query Language |
|---|---|---|---|---|
| CREATE (criar tabela) | INSERT (inserir dados em tabelas) | GRANT (atribuir privilégios de acesso) | COMMIT (confirmar operações realizadas em transações) | SELECT (buscar dados em tabelas) |
| ALTER (alterar estrutura de tabela) | UPDATE (atualizar dados em tabelas) | REVOKE (remover privilégios de acesso) | ROLLBACK (desfazer operações realizadas em transações ainda não concluídas) | |
| DROP (apagar tabela) | DELETE (remover dados de tabelas) | SAVEPOINT (criar pontos intermediários ao longo de transações, permitindo que apenas parte delas seja desfeita, quando necessário) | ||
| TRUNCATE (apagar dados de tabela sem registrar remoções no log) |
Tabela 1.1: comandos previstos pelo padrão SQL.
Há muitas implementações do padrão SQL. Além das operações padrão previstas na especificação SQL, fabricantes de Sistemas Gerenciadores de Bancos de Dados Relacionais fazem a implementação de extensões, tornando seus produtos mais interessantes para os desenvolvedores. Entre muitos outros recursos, que variam de produto para produto, estas extensões costumam trazer a implementação de estruturas de seleção e de repetição, presentes nas linguagens de programação mais comuns. Veja alguns exemplos de extensões ao padrão SQL na tabela a seguir.
| Nome da implementação | Fabricante | SGBD |
|---|---|---|
| Transact-SQL (T-SQL) | Microsoft | Microsoft SQL Server |
| PL/SQL | Oracle | Oracle |
| PL/pgSQL | PostgreSQL | PostgreSQL |
Tabela 1.2: extensões ao padrão SQL.
3. Arquitetura cliente/servidor
O uso do PostgreSQL se baseia na arquitetura cliente/servidor. O servidor PostgreSQL é responsável por:
- compilar e executar comandos SQL
- manipular os arquivos utilizados para o armazenamento de dados
entre outras muitas coisas. Ou seja, o servidor PostgreSQL é responsável por prover a abstração por meio da qual enxergamos nossos dados como se fossem armazenados em tabelas.
O acesso a ele requer o uso de um cliente. Podemos usar diferentes clientes, como o pgAdmin e o SQL Shell (psql). Também podemos desenvolver nossos próprios clientes utilizando linguagens de programação das mais diversas. Veja a figura a seguir.

Figura 2.1: arquitetura cliente/servidor do PostgreSQL.
4. Criando um "servidor" no pgAdmin
Como vimos, o pgAdmin é um cliente próprio para o PostgreSQL. Ele pode ser utilizado para acessar múltiplos servidores PostgreSQL. Por isso, precisamos especificar os detalhes que caracterizam o servidor a ser utilizado:
- endereço do host em que ele se encontra executando
- porta em que ele está executando
- usuário e senha a serem utilizados para autenticação/autorização
A tela inicial do pgAdmin é exibida pela figura a seguir. Comece clicando em Add New Server.

Figura 2.2.1: tela inicial do pgAdmin.
A seguir, dê um nome para o servidor cujos dados serão armazenados pelo pgAdmin. Esse pode ser um nome qualquer, que você possa utilizar para facilmente se lembrar a que servidor se refere (localhost, dev, producao são exemplos). Como o servidor está em execução no mesmo computador em que o cliente está, podemos escolher um nome intuitivo como localhost. A seguir, clique na aba Connection. Veja a figura a seguir.

Figura 2.2.2: nome do servidor na aba General.
Já na aba Connection, como mostra a figura a seguir, preencha os campos destacados e clique em Save.

Figura 2.2.3: dados de conexão do servidor.
5. Databases e o editor SQL
Databases
No PostgreSQL, cada usuário tem, por padrão, uma base de dados com o seu nome. Ela pode ser vista no canto esquerdo do pgAdmin, como destaca a figura a seguir. Neste momento, clique sobre ela.

Figura 2.3.1: a base de dados postgres.
Editor SQL
Clicando em Tools >> Query Tool, como na figura a seguir, podemos abrir um editor de texto em que comandos SQL podem ser digitados.

Figura 2.4.1: abrindo o Query Tool.
6. Teste: tabela, inserção e consulta
Use os comandos a seguir para:
- criar uma tabela
- inserir uma linha
- buscar os dados da tabela
pgAdmin · Query Tool
CREATE TABLE tb_livro (
cod_livro INTEGER PRIMARY KEY,
titulo VARCHAR(200),
autor VARCHAR(200)
);
INSERT INTO tb_livro (cod_livro, titulo, autor) VALUES (1, 'Concrete Mathematics', 'Donald Knuth');
SELECT * FROM tb_livro;
Selecione todo o conteúdo e clique em Execute, como destaca a figura a seguir. Ela também destaca o resultado esperado, logo abaixo.

Figura 2.5.1: execução dos comandos e resultado esperado.
Clique com o botão direito em Databases >> Refresh, como na figura a seguir.

Figura 2.5.2: atualizando a árvore de objetos.
A seguir, faça as expansões destacadas pela figura a seguir e veja como é possível interagir com a tabela criada graficamente.

Figura 2.5.3: a tabela tb_livro na árvore de objetos.
Clique duas vezes na "linha em branco" logo abaixo da primeira linha preenchida, como destaca a figura a seguir. Repare como é possível inserir dados na tabela graficamente. Clique duas vezes em cada campo da linha em branco para registrar um dado de interesse. Ao final, clique em Save Data Changes, opção cujo botão também é destacado.

Figura 2.5.4: inserindo dados graficamente e salvando as alterações.
7. Encerramento
Parabéns!
Seu ambiente está pronto: você cadastrou um servidor no pgAdmin, abriu o Query Tool e executou comandos SQL de criação, inserção e consulta, além de editar dados graficamente. No próximo codelab, você vai acessar o PostgreSQL a partir de um programa em Python.
Bibliografia
- HEUSER, Carlos Alberto. Projeto de Banco de Dados. 6ª ed. Bookman, 2008.