PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

2 maneiras de mostrar todos os bancos de dados no PostgreSQL (psql)


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