Corso
PostgreSQL è uno degli RDBMS open source più diffusi e apprezzati. L’installazione predefinita di PostgreSQL include un prompt psql, ovvero l’interfaccia tipo terminale di PostgreSQL. pgAdmin, invece, fornisce un’interfaccia grafica per lavorare con i database in PostgreSQL. Con psql, oltre a eseguire query SQL, hai a disposizione ulteriori funzionalità, alcune delle quali imparerai in questo tutorial.
Comincerai imparando come recuperare l’elenco dei database presenti su un server PostgreSQL e, passo dopo passo, passerai a concetti più intermedi. Iniziamo.
Nota: questo tutorial presuppone che tu abbia già familiarità con SQL (un linguaggio generale per interagire con gli RDBMS) e con PostgreSQL. Se vuoi ripassare le basi, dai un’occhiata a queste risorse:
Prima di tutto
Per seguire al meglio questo tutorial potresti voler disporre di un database già ben strutturato. Puoi usare questo file di backup e ripristinarlo nel tuo server PostgreSQL. Se vuoi sapere come fare, puoi leggere questo articolo.
Se ti stai chiedendo cos’è psql, questo estratto dal sito ufficiale di PostgreSQL lo descrive in modo chiaro:
psql è un front-end per PostgreSQL basato su terminale. Ti consente di digitare query in modo interattivo, inviarle a PostgreSQL e vedere i risultati. In alternativa, l’input può provenire da un file o dagli argomenti della riga di comando. Inoltre, psql fornisce un certo numero di meta-comandi e varie funzionalità simili alla shell per facilitare la scrittura di script e l’automazione di un’ampia gamma di attività.
Come anticipato, in questo tutorial imparerai i dieci comandi psql più utili. Prima di procedere, assicurati di avere PostgreSQL installato (preferibilmente una versione >= 9.4). Questo articolo ti aiuterà a installare PostgreSQL.
Il passo successivo è arrivare a questo prompt:

Su Windows, puoi semplicemente digitare psql nella barra di ricerca del menu Start e dovresti riuscire a trovarlo. Questo viene chiamato shell psql e ti fornisce il prompt psql. Come vedi, il prompt è impostato sul database predefinito postgres. Vediamo se esistono altri database in questo server PostgreSQL locale.
1. Elencare i database disponibili
Puoi usare il comando \l per ottenere l’elenco di tutti i database disponibili.

Come puoi vedere, ho i seguenti database:
- datacamp_tutorials
- postgres
Puoi ignorare le altre voci. Ora vediamo l’elenco delle tabelle disponibili nel database corrente.
2. Elencare le tabelle disponibili nel database corrente
\dt fa proprio questo:
![]()
Sfortunatamente, il database postgres non ha tabelle create al suo interno (nelle pubblicazioni di gestione dei database le tabelle sono spesso chiamate relazioni). Passiamo a un altro database per vedere se contiene delle tabelle.
3. Passare a un altro database
La sintassi è: \c <database_name>. Supponiamo che tu voglia passare a un database chiamato datacamp_tutorials; puoi farlo così:
`\c datacamp_tutorials`

Ora vediamo se contiene delle tabelle con il comando \dt:

Come vedi, il database datacamp_tutorials ha le seguenti quattro tabelle:
- countries
- route_table
- station_code
- train_table
Mettiamo che tu voglia vedere i dettagli strutturali di una specifica tabella. Questo è spesso chiamato descrivere una tabella. Vediamo come farlo.
4. Descrivere una tabella specifica
La sintassi generale è \d <table_name>. Supponiamo che tu sia nel database datacamp_tutorials e voglia descrivere la tabella countries. Il comando sarebbe \d countries:

Come vedi, \d countries restituisce molte informazioni utili sulla tabella, come i nomi delle colonne, i relativi tipi di dato, i modificatori delle colonne e così via. Potresti voler conoscere la versione corrente del tuo motore PostgreSQL, magari per la documentazione. Vediamo come fare.
5. Conoscere la versione di PostgreSQL
SELECT version(); ti permette di farlo:

Ora, poniamo che tu abbia dimenticato l’ultimo comando eseguito nella shell psql tra una chiamata e l’altra, e che fosse importante. Nessun problema! Puoi recuperarlo facilmente.
6. Vedere il comando eseguito in precedenza
\g serve proprio a questo:

Come vedi, \g ha eseguito automaticamente il comando precedente. Potresti essere curioso di vedere l’elenco di tutti i comandi psql disponibili per la versione di PostgreSQL in uso. Vediamolo.
7. Elencare tutti i comandi disponibili
Puoi ottenere l’elenco di tutti i comandi psql con \?:

Potresti essere interessato a conoscere le sintassi di diverse istruzioni del database come SELECT, ALTER, DROP e così via. Puoi farlo direttamente dal prompt psql.
8. Conoscere le sintassi delle istruzioni di PostgreSQL
Mettiamo che tu voglia saperne di più sulle istruzioni DROP. \h DROP TABLE può aiutarti:

Supponiamo che tu voglia analizzare i tempi di esecuzione delle query. Vediamo come farlo dalla shell psql.
9. Conoscere i tempi di esecuzione delle query
Per farlo, devi dare il comando \timing. Poniamo che tu voglia analizzare il tempo di esecuzione della seguente query:
select * from train_table limit 10;
Per prima cosa dai il comando \timing:
![]()
Dopo aver attivato l’opzione timing, puoi eseguire la tua query:

Come vedi, il tempo impiegato per eseguire la query è 0,786 ms. Il tempo di esecuzione può variare da macchina a macchina. Ora vedrai l’ultimo comando psql, che apre il comando/la query eseguito/a in precedenza in un editor di testo.
10. psql + editor di testo
Se esegui il comando \e, si apre in un editor di testo l’ultimo comando/la ultima query eseguito/a, e puoi anche modificarlo/a e rieseguirlo/a.

Come vedi, il comando e apre l’editor di testo Blocco note con la query eseguita in precedenza.
Conclusione
In questo tutorial hai imparato dieci comodi comandi psql da usare nelle attività quotidiane legate ai database. Se vuoi imparare di più su SQL, prova questi corsi DataCamp:

