Quando si amministrano i server di database PostgreSQL, una delle attività più comuni che è probabile eseguire è elencare i database e le loro tabelle.

PostgreSQL viene fornito con uno strumento interattivo chiamato psql, che consente di connettersi al server ed eseguire query su di esso. Quando si utilizza psql è anche possibile sfruttare i suoi meta-comandi. Questi comandi sono utili per lo scripting e l’amministrazione della riga di comando., Tutti i meta-comandi iniziano con un backslash non quotato e sono noti anche come comandi backslash.

Questo tutorial spiega come mostrare database e tabelle in un server PostgreSQL usandopsql.

Elenco database #

È possibile connettersi al server PostgreSQL utilizzando il comandopsql come qualsiasi utente di sistema. A seconda della configurazione del server, l’utente potrebbe dover inserire la propria password per connettersi al terminalepsql., Per accedere al terminalepsql come utente attualmente connesso, è sufficiente digitarepsql.

Quando viene installato il pacchetto PostgreSQL, viene creato un utente amministrativo denominato “postgres”. Per impostazione predefinita, questo utente può connettersi al server PostgreSQL locale senza una password.

Per accedere a psql terminale come utente “postgres”, eseguire:

sudo -u postgres psql
sudo comando consente di eseguire comandi come un altro utente.,

Dall’interno del psql terminale eseguire \l o \list meta-comando per visualizzare un elenco di tutti i database:

\l

L’output includerà il numero di database, il nome del database, il suo proprietario, codifica e privilegi di accesso:

PostgreSQL server dispone di tre database creato per impostazione predefinita, template0, modello1, e postgres. I primi due sono modelli che vengono utilizzati quando si creano nuovi database.,

Se si desidera ottenere informazioni sulle dimensioni dei database, tablespace predefiniti e descrizioni utilizzare \l+o \list+. La dimensione del database viene visualizzata solo se l’utente corrente può connettersi ad esso., di tutti i database, senza accedere a psql shell, utilizzare il tag -c switch come indicato di seguito:

sudo -u postgres psql -c "\l"

un Altro modo per elencare i database è quello di utilizzare la seguente istruzione SQL:

SELECT datname FROM pg_database;

a Differenza di \l meta-comando query di cui sopra mostra solo i nomi dei database:

 datname ----------- postgres odoo template1 template0(4 rows)

Elenco Tabelle #

Per un elenco di tutte le tabelle di un database in particolare il primo, è necessario effettuare la connessione con il \c o \connect meta di comando., L’utente che ha effettuato l’accesso al terminale psql deve essere in grado di connettersi al database.,

Per esempio, per connettersi al database denominato “odoo”, devi digitare:

\c odoo

una Volta che il database è acceso, utilizzare il tag \dt meta-comando per elencare tutte le tabelle del database:

L’output include il numero di tabelle, il nome di ogni tabella e il relativo schema, il tipo e il proprietario:

Se il database è vuoto, l’output sarà simile a questa:

No relations found.

Per ottenere informazioni circa le dimensioni delle tabelle e descrizioni usare \dt+.,

Conclusione #

Hai imparato come elencare database e tabelle PostgreSQL usando il comandopsql.