Quando se trata de administrar bancos de dados Postgres, há uma grande variedade de ferramentas de terceiros disponíveis, como SQL Workbench/J ou pgAdmin III. No entanto, o próprio Postgres vem com uma poderosa ferramenta de linha de comando chamada
psql
o que é ótimo para quem está familiarizado com o terminal ou procura tarefas de administração de script. Uma das tarefas mais comuns que um administrador de banco de dados executa é simplesmente se familiarizar com o ambiente. Isso envolve fazer perguntas como “Quais bancos de dados residem neste servidor?” ou “Quais tabelas estão armazenadas em um determinado banco de dados neste servidor?”. Neste tutorial, aprenderemos como responder a essas perguntas-chave na linha de comando usando o psql
. Metacomandos
Além de poder enviar consultas SQL brutas para o servidor via
psql
você também pode aproveitar o psql
meta-comandos para obter informações do servidor. Metacomandos são comandos avaliados pelo psql
e muitas vezes traduzido em SQL que é emitido nas tabelas do sistema no servidor, economizando tempo dos administradores ao executar tarefas de rotina. Eles são indicados por uma barra invertida e, em seguida, seguidos pelo comando e seus argumentos. Veremos alguns exemplos disso a seguir. Listar bancos de dados
Um único processo do servidor Postgres pode gerenciar vários bancos de dados ao mesmo tempo. Cada banco de dados é armazenado como um conjunto separado de arquivos em seu próprio diretório dentro do diretório de dados do servidor. Para visualizar todos os bancos de dados definidos no servidor, você pode usar o
\list
meta-comando ou seu atalho \l
. postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sales | ubuntu | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Alternando bancos de dados
A maioria dos servidores Postgres tem três bancos de dados definidos por padrão:
template0
, template1
e postgres
. template0
e template1
são bases de dados esqueleto que são ou podem ser usadas pelo CREATE DATABASE
comando. postgres
é o banco de dados padrão ao qual você se conectará antes de criar qualquer outro banco de dados. Depois de criar outro banco de dados, você desejará alternar para ele para criar tabelas e inserir dados. Muitas vezes, ao trabalhar com servidores que gerenciam vários bancos de dados, você encontrará a necessidade de alternar entre bancos de dados com frequência. Isso pode ser feito com o \connect
meta-comando ou seu atalho \c
. postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#
Como listar tabelas
Depois de se conectar a um banco de dados, você desejará inspecionar quais tabelas foram criadas lá. Isso pode ser feito com o
\dt
meta-comando. No entanto, se não houver tabelas, você não obterá saída. sales=# \dt
No relations found.
sales=#
Após criar uma tabela, ela será retornada em uma lista tabular de tabelas criadas.
sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+--------
public | leads | table | ubuntu
(1 row)
sales=#