Postgres, noto anche come PostgreSQL, è una pietra miliare nella gestione dei database relazionali a oggetti. Grazie a decenni di lavoro nel suo sviluppo, Postgres è un database affidabile e flessibile che offre prestazioni elevate.

Questa guida pratica spiega come creare database e tabelle ed eliminare database in Postgres. Inoltre, mostra come eseguire le stesse operazioni utilizzando uno strumento di gestione di database come Adminer.

Come iniziare con Postgres

Per iniziare, assicuratevi di avere installato Postgres sul sistema. Se non c’è, scaricate il file necessario e seguite le istruzioni di installazione.

Tenete presente che i comandi qui illustrati sono stati dimostrati su macOS, ma funzionano perfettamente su qualsiasi sistema operativo.

Una volta installato Postgres, inserite questo comando nel terminale per verificare che tutto funzioni correttamente:

postgres -V

Questo comando dovrebbe restituire il numero di versione della vostra installazione di Postgres:

Il numero di versione di Postgres.
Il numero di versione di Postgres.

Come connettersi al server di database PostgreSQL

Avete installato Postgres sul sistema e siete pronti a creare database. Ma come si accede al database? Qui entra in gioco il terminale interattivo di Postgres, popolarmente chiamato psql. Psql è un frontend di Postgres basato su terminale che permette di inviare query a Postgres e di visualizzarne i risultati.

Durante l’installazione, Postgres crea un superutente predefinito sul sistema operativo (OS) che ha accesso assoluto al database. Potete accedere al terminale psql come superutente predefinito utilizzando questo comando:

psql postgres

Dopo aver eseguito questo comando, dovreste vedere il vostro terminale trasformarsi in postgres=#, a indicare che siete entrati come superutenti predefinito.

Uno dei maggiori vantaggi dell’utilizzo di psql sono i metacomandi. Questi potenti strumenti permettono di eseguire operazioni di gestione dei database, come la connessione ai database o la visualizzazione delle tabelle, senza conoscere gli esatti comandi SQL.

Per utilizzare un metacomando in psql, iniziate con una barra rovesciata (\) seguita dal comando. Ecco alcuni esempi:

  • \c <database-name>: si connette a un database specifico.
  • \l: elenca tutti i database presenti sul server.
  • \dt: mostra tutte le tabelle di un database.

Come creare database Postgres

Quando si lavora con i database, è buona norma seguire il principio del minimo privilegio creando un nuovo utente con permessi specifici. Tuttavia, per semplicità, in questa guida creeremo e gestiremo i database utilizzando il superutente predefinito.

Per prima cosa, eseguite questo metacomando per elencare tutti gli utenti del server Postgres:

\du

Se non avete aggiunto nuovi utenti, dovreste vedere solo il superutente predefinito:

Utenti sul server Postgres locale.
Utenti sul server Postgres locale.

Il superutente predefinito potrebbe apparire come Postgres o come nome utente del sistema operativo, a seconda della configurazione del sistema.

Per impostazione predefinita, il superutente non ha una password. Tuttavia, per poter gestire il database in seguito, impostate una password utilizzando questo comando:

\password <superuser-name>

Inserite la password quando viene richiesta e confermatela. Ora siete pronti per iniziare a creare database sul vostro server Postgres. La sintassi per creare un database è CREATE DATABASE <database-name>.

Iniziamo creando un database chiamato sales:

CREATE DATABASE sales;

Dopo la creazione del database, viene visualizzato il seguente messaggio:

Creazione di un database Postgres.
Creazione di un database Postgres.

Create quindi altri due database, customers e employees, con questi comandi:

CREATE DATABASE customers;
CREATE DATABASE employees;

Ora avete creato tre database sul vostro server Postgres locale. Per elencare tutti i database creati, usate questo metacomando:

\l
Database sul server Postgres locale.
Database sul server Postgres locale.

Questi sono i tre database che avete creato finora! Potete ignorare gli altri database presenti nell’immagine, perché sono quelli forniti di default con l’installazione di Postgres.

A questo punto, potete collegarvi a un database in particolare. Il metacomando per connettersi a qualsiasi database è \c <database-name>.

Eseguite il comando in basso per connettervi al database sales:

\c sales

Nel vostro terminale dovrebbe apparire il seguente messaggio:

Connessione a un database.
Connessione a un database.

Una volta connessi a un database, potrete facilmente passare a un altro database del server con lo stesso comando. Quindi, dal database sales, potete eseguire questo comando per connettervi al database customers:

\c customers

Creare tabelle

Per iniziare, dovrete creare delle tabelle per popolare il vostro database con i dati. La sintassi per creare una tabella in Postgres segue questa struttura:

CREATE TABLE <table-name> (
<column1-name> <column1-datatype> <column1-constraint>,
<column2-name> <column2-datatype> <column2-constraint>,
<column3-name> <column3-datatype> <column3-constraint>,
…
…
<columnN-name> <columnN-datatype> <columnN-constraint>
);

Iniziate collegandovi al database sales.

\c sales

Quindi, create la tabella products con tre colonne che non possono essere nulle: product_id, product_name, e quantity_sold:

CREATE TABLE products(
   Product_id			INT     NOT NULL,
   Product_name		TEXT    NOT NULL,
   Quantity_sold		   INT     NOT NULL
);

Se l’operazione è andata a buon fine, dovreste vedere il seguente output:

Creare tabelle in un database.
Creare tabelle in un database.

Utilizzate quindi il metacomando sottostante per verificare che la tabella products sia stata creata con successo:

\dt

Questo comando elenca tutte le tabelle del vostro database – in questo caso, una sola tabella. Poiché siete connessi al database sales, dovreste vedere il seguente output:

Tabelle nel database sales.
Tabelle nel database sales.

Successivamente, create due tabelle nel database employees. La prima tabella elencherà gli stipendi e la seconda gli indirizzi. Per creare queste tabelle, eseguite questi comandi:

\c employees

CREATE TABLE salary(
   Employee_id		INT     NOT NULL,
   Employee_name		TEXT    NOT NULL,
   Employee_salary		INT     NOT NULL
);

CREATE TABLE address(
   Employee_id		INT     NOT NULL,
   Employee_country		TEXT    NOT NULL,
   Employee_zipcode		INT     NOT NULL
);

Infine, confermate la creazione di queste tabelle eseguendo il meta-comando \dt. Questo è l’output che dovreste vedere:

Tabelle nel database employees.
Tabelle nel database employees.

Come eliminare i database Postgres

Cancellare un database è facile come crearne uno. La sintassi per cancellare un database è DROP DATABASE <database-name>;.

Non è necessario connettersi a un determinato database per eliminarlo. Ad esempio, se voleste eliminare il database customers, potreste eseguire questo comando da qualsiasi database a cui siete connessi:

DROP DATABASE customers;

Dovreste vedere questa schermata quando l’eliminazione è avvenuta con successo:

Eliminazione di un database Postgres.
Eliminazione di un database Postgres.

Potete confermare che il database customers non esiste più elencando i database sul vostro server Postgres locale utilizzando il metacomando \l.

Elenco dei database sul server Postgres locale.
Elenco dei database sul server Postgres locale.

Gestire le operazioni sui database Postgres con Adminer

A questo punto, abbiamo appreso le basi di Postgres creando database, creando tabelle e cancellando database tramite la riga di comando.

Tuttavia, la riga di comando può essere complessa o noiosa da usare. Ecco dove può essere d’aiuto uno strumento di gestione di database come Adminer. Con Adminer potete eseguire tutte le operazioni di database di cui sopra attraverso un’interfaccia grafica. Sebbene sia possibile utilizzare Adminer in modo indipendente, è anche un componente standard di DevKinsta.

Per gestire il vostro database con Adminer, dovrete scaricare il file PHP di Adminer. Aprite il vostro terminale una volta per avviare il server web integrato che esegue i file PHP e navigate nella posizione in cui avete collocato il file PHP di Adminer:

cd path/to/Adminer php file 

Quindi, avviate il server web con il seguente comando:

php -S 127.0.0.1:8000

Siete pronti per utilizzare l’interfaccia utente di Adminer sul vostro browser web. Digitate il seguente indirizzo nel vostro browser: http://localhost:8000/<il-vostro-php-file-Adminer.php>

.

Dovreste vedere l’interfaccia utente (UI) di Adminer nel vostro browser:

L'interfaccia utente della home page di Adminer.
L’interfaccia utente della home page di Adminer.

Per accedere al vostro server Postgres locale, seguite le istruzioni riportate di seguito mentre compilate i campi di questa pagina:

  1. Selezionate PostgreSQL nel campo System.
  2. Il server dovrebbe essere precompilato con localhost.
  3. Per Username, digitate il nome del superutente, “postgres” o il nome utente del sistema operativo del vostro computer.
  4. Per la Password, digitate la password impostata per il superutente nella sezione “Crea database”.
  5. Lasciate vuoto il campo Database.

Se l’autenticazione è andata a buon fine, vedrete l’elenco di tutti i database che avete creato in precedenza, come mostrato di seguito. Se state lavorando con Windows, potreste incontrare un errore che dice: “Nessuna delle estensioni PHP supportate (PgSQL, PDO_PgSQL) è disponibile”. In questo caso, modificate il file php.ini e abilitate queste estensioni.

Visualizzazione dei database Postgres su Adminer.
Visualizzazione dei database Postgres su Adminer.

Per creare un nuovo database, cliccate sul collegamento ipertestuale Crea database:

Creare un nuovo database con Adminer.
Creare un nuovo database con Adminer.

Date un nome al vostro database customers e cliccate sul pulsante Save.

Quindi, verificate di aver creato il database customers cliccando sul collegamento ipertestuale Server, indicato di seguito:

Navigazione nel server Postgres locale.
Navigazione nel server Postgres locale.

Ora vedrete il database customers. Cliccate su customers per collegarvi.

Come potete vedere, non ci sono tabelle in questo database. Cliccate sul collegamento ipertestuale Create table per creare una nuova tabella, chiamata locations.

Creare una tabella in un database con Adminer.
Creare una tabella in un database con Adminer.

Compilate le colonne appropriate in modo che corrispondano all’immagine sottostante e cliccate sul pulsante Save:

Il passo finale per creare una tabella in un database.
Il passo finale per creare una tabella in un database.

Ora dovreste essere in grado di vedere la tabella nel vostro database customers:

Messaggio di conferma per la creazione di una tabella.
Messaggio di conferma per la creazione di una tabella.

Cliccate di nuovo sul collegamento ipertestuale Server per vedere tutti i vostri database. Spuntate la casella relativa a customers. Spuntando il database customers si abilita il pulsante di eliminazione sottostante. Cliccate su Drop per eliminare il database. Riceverete una conferma dell’operazione di eliminazione del database:

Messaggio di conferma dell'eliminazione di un database.
Messaggio di conferma dell’eliminazione di un database.

Riepilogo

In questo articolo, abbiamo visto come creare database, creare tabelle nel database e cancellare database su un server Postgres locale tramite la riga di comando. Inoltre, abbiamo illustrato quanto sia facile eseguire queste operazioni utilizzando uno strumento di gestione di database come Adminer.

Sebbene questi e altri metodi di gestione dei database e delle tabelle da riga di comando siano funzionali, l’interfaccia utente “punta e clicca” di Adminer rende l’esecuzione di queste attività ancora più semplice.

In qualità di sviluppatori WordPress, DevKinsta vi dà accesso ad Adminer e a una serie di altri strumenti per aiutarvi a gestire i vostri database. Per gestire facilmente i vostri database Postgres, date un’occhiata a DevKinsta: è gratis per sempre!

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).