Aqui estão algumas maneiras de mostrar uma lista de bancos de dados ao usar o
psql
com PostgreSQL. A primeira opção pode ser usada quando já estamos conectados ao PostgreSQL. A segunda opção pode ser usada quando não temos uma conexão com o Postgres.
O \l
e \list
Comandos
Podemos usar
\l
ou \list
para retornar uma lista de bancos de dados. A sintaxe fica assim:
\l[+] or \list[+] [ pattern ]
As partes entre colchetes
[]
são opcionais. Portanto, a maneira mais rápida/fácil de obter uma lista de bancos de dados é assim:
\l
Exemplo de resultado:
List of databases +--------------+----------+----------+-------------+-------------+-----------------------+ | Name | Owner | Encoding | Collate | Ctype | Access privileges | +--------------+----------+----------+-------------+-------------+-----------------------+ | barney | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | | krankykranes | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | | music | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | | pagila | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | | pethotel | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | | postgres | postgres | 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 | +--------------+----------+----------+-------------+-------------+-----------------------+
Só para esclarecer, executei esse comando quando já estava conectado ao PostgreSQL.
O mesmo resultado pode ser obtido usando
\list
em vez de \l
. Podemos adicionar um sinal de mais (
+
) para retornar mais informações sobre cada tabela:\l+
Exemplo de resultado:
List of databases +--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+ | Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description | +--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+ | barney | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8473 kB | pg_default | | | krankykranes | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8289 kB | pg_default | | | music | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8225 kB | pg_default | | | pagila | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 16 MB | pg_default | | | pethotel | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8177 kB | pg_default | | | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8097 kB | pg_default | default administrative connection database | | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 7905 kB | pg_default | unmodifiable empty database | | | | | | | postgres=CTc/postgres | | | | | template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 7905 kB | pg_default | default template for new databases | | | | | | | postgres=CTc/postgres | | | | +--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+
Assim, obtemos algumas colunas extras com informações sobre tamanho, tablespace, etc.
Também podemos usar um padrão para retornar apenas os bancos de dados que correspondem ao padrão:
\l krank*
Exemplo de resultado:
List of databases +--------------+----------+----------+-------------+-------------+-------------------+ | Name | Owner | Encoding | Collate | Ctype | Access privileges | +--------------+----------+----------+-------------+-------------+-------------------+ | krankykranes | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | +--------------+----------+----------+-------------+-------------+-------------------+
O -l
e --list
Opções de conexão
Quando não estamos conectados ao Postgres, podemos nos conectar usando o
-l
ou --list
opção de conexão. Quando uma dessas opções é especificada,
psql
irá se conectar ao Postgres, listar todos os bancos de dados disponíveis e sair. Ele pode ser usado das seguintes maneiras:
-l
--list
Então, em vez de usar a barra invertida, é um hífen ou dois hífens (dependendo de qual você usa).
Para usar esta opção, abra uma nova janela de terminal ou prompt de comando e digite o seguinte:
psql -l
Supondo que esteja na sua variável PATH, isso deve iniciar o PostgreSQL, listar todos os bancos de dados e sair.
Exemplo de resultado:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------+----------+----------+-------------+-------------+----------------------- barney | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | krankykranes | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | music | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | pagila | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | pethotel | barney | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | 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
O mesmo pode ser aplicado usando
--list
:psql --list