Introduzione
PostgreSQL è un sistema di gestione di database relazionali (RDBMS) open source. Il sistema di database gestisce facilmente diversi carichi di lavoro e supporta la maggior parte dei sistemi operativi. La sua estensibilità e la conformità SQL rendono PostgreSQL un RDBMS molto popolare.
Il SELECT
statement è il comando DML (Data Manipulation Language) più comunemente usato in PostgreSQL.
In questo tutorial imparerai a usare l'istruzione SELECT di PostgreSQL con la sua sintassi completa ed esempi.

Prerequisiti
- PostgreSQL installato e configurato.
- Un database su cui lavorare (vedi come creare un database.)
Istruzione SELECT PostgreSQL
Il SELECT
di PostgreSQL istruzione recupera i dati da una o più tabelle in un database e restituisce i dati in una tabella dei risultati, chiamata set di risultati. Usa il SELECT
istruzione per restituire una o più righe corrispondenti ai criteri specificati dalle tabelle del database.
Il SELECT
statement è l'istruzione più complessa in SQL, con molte parole chiave e clausole opzionali. Le sezioni seguenti spiegano il SELECT
sintassi in dettaglio.
Sintassi SELECT PostgreSQL
La forma più semplice del SELECT
la sintassi dell'istruzione è:
SELECT expressions
FROM tables
WHERE conditions;
- Le
expressions
sono tutte le colonne e i campi che desideri nel risultato. - Le
tables
la sintassi è la tabella o le tabelle da cui vuoi estrarre i risultati. - Le
conditions
rappresentano i requisiti che devono essere soddisfatti per selezionare i record.
Un esempio del SELECT
completo la sintassi dell'istruzione è:
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];
Spiegheremo tutti i parametri nella sezione seguente.
Parametri SELECT PostgreSQL
I possibili parametri in un SELECT
dichiarazione sono:
ALL
- Un parametro facoltativo che restituisce tutte le righe corrispondenti.DISTINCT
- Un parametro che rimuove i duplicati dal set di risultati.DISTINCT ON
- Un parametro facoltativo che elimina i dati duplicati in base adistinct_expressions
parola chiave.expressions
- Tutte le colonne e i campi che desideri siano inclusi nel risultato. Specificando un asterisco (*
) seleziona tutte le colonne.tables
- Specificare le tabelle da cui si desidera recuperare i record. IlFROM
la clausola deve contenere almeno una tabella.WHERE conditions
- La clausola è facoltativa e contiene le condizioni che devono essere soddisfatte per filtrare i record nel set di risultati.GROUP BY expressions
- Una clausola facoltativa che raccoglie i dati da più record, raggruppando i risultati in una o più colonne.HAVING condition
- Una clausola facoltativa utilizzata in combinazione conGROUP BY
. Limita i gruppi delle righe restituite solo a quelle che soddisfano la condizioneTRUE
, filtrandoli così.ORDER BY expression
- Una clausola facoltativa che identifica quale colonna o colonne utilizzare per ordinare i dati nel set di risultati.LIMIT
- Una clausola facoltativa che imposta il numero massimo di record da recuperare dalla tabella, specificato danumber_rows
sintassi. La prima riga nel set di risultati è determinata daoffset_value
.FETCH
- Una clausola facoltativa che imposta il numero massimo di record nel set di risultati. Specifica il numero di record al posto difetch_rows
sintassi. Iloffset_value
determina la prima riga nel set di risultati.FOR UPDATE
- Una clausola facoltativa che blocca in scrittura i record necessari per eseguire la query fino al completamento della transazione.FOR SHARE
- Una clausola facoltativa che consente ai record di essere utilizzati da altre transazioni ma ne impedisce l'aggiornamento o la cancellazione.
Esempi di istruzioni SELECT PostgreSQL
Le sezioni seguenti mostrano diversi casi d'uso per SELECT
dichiarazione.
Esempio 1:seleziona tutti i campi
Il modo più semplice per restituire tutti i campi e visualizzare tutto il contenuto di una tabella è utilizzare un SELECT
di PostgreSQL dichiarazione.
Ad esempio:
SELECT * FROM actor;

Nell'esempio sopra, l'output mostra tutti i campi contenuti nella tabella attore.
Esempio 2:filtrare i risultati in modo che corrispondano a una condizione
Il SELECT
istruzione consente di filtrare i risultati impostando una condizione. Nell'esempio seguente, vogliamo visualizzare solo i titoli dei film in cui la lingua del film è l'inglese (language_id=1
):
SELECT title
FROM film
WHERE language_id=1;

Esempio 3:seleziona i campi da più tabelle
PostgreSQL ti consente di elaborare dati da più tabelle in un database. Per ottenere risultati da più tabelle in una singola query, utilizza JOINS .
Ad esempio:
SELECT customer.first_name, customer.last_name, payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id=payment.customer_id
ORDER BY amount DESC;

Nell'esempio sopra, combiniamo due tabelle usando INNER JOIN
per ottenere un set di risultati che visualizzi le colonne nome e cognome da una tabella e l'importo del pagamento da un'altra tabella. Le due tabelle sono unite dal customer_id
colonna, che è la stessa in entrambe le tabelle.
I risultati sono in ordine decrescente, specificato da ORDER BY amount DESC
clausola.
Esempio 4:seleziona singoli campi da una tabella
Il SELECT
di PostgreSQL istruzione ti consente di restituire singoli campi da una tabella.
Ad esempio:
SELECT first_name, last_name
FROM actor
ORDER BY last_name ASC;

L'esempio sopra fornisce solo il nome e il cognome degli attori e tralascia le altre colonne. L'output ordina i risultati in base al cognome in ordine crescente.
Esempio 5:colonne concatenate
Se vuoi che il tuo set di risultati combini più colonne in una, puoi usare l'operatore di concatenazione ||
con il SELECT
dichiarazione. Ad esempio:
SELECT
first_name || ' ' || last_name
FROM
customer;

In questo esempio, abbiamo concatenato le colonne nome e cognome per ottenere il nome completo di ciascun cliente.
Esempio 6:Calcoli
Puoi anche utilizzare il SELECT
per eseguire alcuni calcoli, ma poi ometti il FROM
clausola. Ad esempio:
SELECT 15*3/5;
L'output è il risultato dell'espressione matematica specificata in SELECT
dichiarazione.