Introduzione
Se ti occupi di gestione di database, ad esempio creando tabelle, esaminando relazioni o generando report, conoscere l'information_schema di PostgreSQL può esserti molto utile. In questo tutorial vedremo le basi dell'information_schema di PostgreSQL con alcuni esempi di codice.
Questo tutorial è pensato principalmente per PostgreSQL, anche se alcuni concetti possono valere per altri database relazionali SQL.
Prima di continuare a leggere, volevo parlarti del nostro gestore di database PostgreSQL moderno e veloce, Beekeeper Studio. Esplorare gli schemi diventa un gioco da ragazzi ed è gratuito per PostgreSQL: scaricalo qui.
Cos'è l'Information_Schema?
L'information_schema è una funzionalità fondamentale dei database PostgreSQL che dà accesso ai metadati del ‘database corrente’. In pratica è una raccolta di viste che contengono informazioni sui vari oggetti del ‘database corrente’. Da tabelle a colonne fino ai vincoli, l'information_schema di PostgreSQL fornisce i dettagli dell'architettura di un database.
SELECT *
FROM information_schema.tables;
Eseguendo il comando qui sopra nell'editor SQL di Beekeeper Studio, ad esempio, otterrai l'elenco delle tabelle del tuo database corrente.
Approfondiamo
Visualizzare le tabelle pubbliche
Per elencare tutte le tabelle pubbliche disponibili nel tuo database corrente, ti basta eseguire:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
Questo comando restituisce l'elenco di tutti i nomi delle tabelle del tuo ‘database corrente’ nello schema ‘public’.
Output con il database di esempio ‘chinook’
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
Esaminare le colonne
Usa la vista information_schema.columns per ottenere informazioni dettagliate sulle colonne di una tabella specifica:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
Questo codice restituisce l'elenco di tutti i nomi delle colonne e dei relativi tipi di dato per la tabella selezionata.
Output con il database di esempio ‘chinook’
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
Visualizzare i vincoli
La vista information_schema.table_constraints fornisce informazioni sui vincoli definiti nella tabella.
Puoi usare la query seguente per recuperare i vincoli di una tabella specifica:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
Eseguendo il comando otterrai i nomi e i tipi dei vincoli di ‘your_table’, così capirai quali regole vengono applicate a questa tabella.
Output con il database di esempio ‘chinook’
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
Conclusione
L'information_schema di PostgreSQL è uno strumento importante per esplorare e comprendere la struttura e i dettagli del tuo database. Come usarlo dipende dalle tue esigenze specifiche e dalla configurazione del database. Ricordati di sostituire i nomi di tabelle e colonne di esempio con quelli del tuo database, così i comandi verranno eseguiti correttamente.
Nota: tutti gli esempi di questo tutorial sono pensati per PostgreSQL (versioni da 9.4 a 13.3) e potrebbero non essere compatibili con altri motori di database. Assicurati sempre di adattare le query al motore di database che usi. La natura binaria dell'information_schema di PostgreSQL può rendere l'esplorazione del database più semplice, efficace e molto più rapida.
Beekeeper Studio è una GUI per PostgreSQL gratuita e open source
Questo è il client PostgreSQL che stavo cercando! È l'interfaccia a fare la differenza: pulita, intuitiva, potente. Addio al macchinoso PGAdmin. - David Cyprian
Beekeeper Studio è un client PostgreSQL veloce, intuitivo e facile da usare. Supporta anche tanti altri database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti PostgreSQL di Beekeeper Studio
A differenza di pgAdmin, Beekeeper è incredibilmente semplice da usare senza rinunciare alle funzionalità, e il prezzo è giusto! La funzione di backup del database è particolarmente utile. Un software davvero ottimo.
Strumento favoloso, l'IDE più pratico che abbia trovato finora per amministrare database Postgres e MySql: funziona e basta, senza complicazioni :-)