PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

2 modi per mostrare tutti i database in PostgreSQL (psql)

Ecco un paio di modi per mostrare un elenco di database quando si utilizza psql con PostgreSQL.

La prima opzione può essere utilizzata quando siamo già connessi a PostgreSQL. La seconda opzione può essere utilizzata quando al momento non abbiamo una connessione a Postgres.

Il \l e \list Comandi

Possiamo usare sia \l o \list per restituire un elenco di database.

La sintassi è questa:

\l[+] or \list[+] [ pattern ]

Le parti tra parentesi quadre [] sono facoltativi.

Quindi il modo più rapido/semplice per ottenere un elenco di database è questo:

\l

Esempio di risultato:

                                    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 |
+--------------+----------+----------+-------------+-------------+-----------------------+

Per essere chiari, ho eseguito quel comando quando ero già connesso a PostgreSQL.

Lo stesso risultato può essere ottenuto usando \list invece di \l .

Possiamo aggiungere un segno più (+ ) per restituire maggiori informazioni su ciascuna tabella:

\l+

Esempio di risultato:

                                                                      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 |         |            |                                            |
+--------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------+

Quindi otteniamo alcune colonne extra con informazioni su dimensioni, tablespace, ecc.

Possiamo anche utilizzare un modello per restituire solo i database che corrispondono al modello:

\l krank*

Esempio di risultato:

                                  List of databases
+--------------+----------+----------+-------------+-------------+-------------------+
|     Name     |  Owner   | Encoding |   Collate   |    Ctype    | Access privileges |
+--------------+----------+----------+-------------+-------------+-------------------+
| krankykranes | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                   |
+--------------+----------+----------+-------------+-------------+-------------------+

Il -l e --list Opzioni di connessione

Quando non siamo attualmente connessi a Postgres, possiamo connetterci usando il -l o --list opzione di connessione.

Quando una di queste opzioni è specificata, psql si collegherà a Postgres, elencherà tutti i database disponibili, quindi uscirà.

Può essere utilizzato nei seguenti modi:

-l
--list

Quindi, invece di usare la barra rovesciata, è un trattino o due trattini (a seconda di quello che usi).

Per utilizzare questa opzione, apri una nuova finestra del terminale o un prompt dei comandi e digita quanto segue:

psql -l

Supponendo che sia nella tua variabile PATH, dovrebbe avviare PostgreSQL, elencare tutti i database, quindi uscire.

Esempio di risultato:

                                   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

Lo stesso può essere applicato usando --list :

psql --list