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