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