In questo tutorial, discuteremo di come utilizzare le sottoquerie PostgreSQL. Le sottoquerie consentono di creare query SQL complesse che sono fortemente leggibili e facili da usare.
Cos'è una sottoquery?
In PostgreSQL, una sottoquery si riferisce a una domanda all'interno di una domanda. È possibile legare le sottoquerie a query tipiche come Select, da dove, da, avere e altro ancora.
Una sottoquery è anche chiamata query interiore.
La sintassi di base per una sottoquery PostgreSQL è:
Seleziona COL1, COL2 da TB1 dove EXPR (Seleziona Col1, Col2 da TB1);In questo caso, le dichiarazioni all'interno della parentesi rappresentano la sottoquery. Eseguono prima della query principale o esterno.
Una volta che la sottoquery restituisce il risultato, la query principale lo elabora e restituisce i risultati all'utente.
In PostgreSQL, l'ordine di non può essere utilizzato all'interno di una sottoquery.
Esempio di sottoquery PostgreSQL
Illustriamo l'uso di una sottoquery usando la clausola. Supponiamo di avere un database dei paesi con colonne: nome, paese_id e due lettere.
Possiamo usare una sottoquery per ottenere i paesi in cui l'ID è maggiore di 800.
Una query di esempio è di seguito:
Seleziona Nome, Two_Letter, Country_id dal paese in cui Country_id in (Select Country_id dove Country_id> 800);Nell'esempio di cui sopra, la sottoquery filtra i paesi con un ID superiore a 800 e restituisce il risultato alla query principale.
Un risultato di esempio è di seguito:
Esempio 2
Supponiamo di voler ottenere paesi con un documento di identità superiore a 800 e iniziare con la lettera u.
Possiamo legare la query all'interno di una sottoquery come:
Seleziona Nome, Two_letter, Country_id dal paese in cui Country_id in (Select Country_id dove country_id> 800 e due_letter come 'u%');La query sopra funziona in modo simile a quella sopra. Tuttavia, controlla due condizioni contemporaneamente e restituisce il risultato alla query esterna.
Esempio 3
Sebbene non possiamo usare l'ordine per clausola all'interno di una sottoquery PostgreSQL, possiamo usare un gruppo per query per eseguire una funzione simile.
Ad esempio, considera la tabella di pagamento nel database Sakila. Possiamo eseguire un'azione come:
Seleziona Payment_id, importo DA Pagamento dove Payment_id IN (Seleziona Payment_id DA Gruppo di pagamento tramite payment_id limite 5);La query sopra restituirà i risultati raggruppati con ID di pagamento.
Esempio 4
Possiamo anche usare PostgreSQL con altre dichiarazioni. Ad esempio, possiamo eliminare record specifici restituiti da una sottoquery.
Elimina dal film dove esiste (seleziona film_id dal film in cui film_id> 100);Nella query sopra, eliminiamo il film in cui il film_id è maggiore di 100.
È bene assicurarsi che altre persone che utilizzano il database non abbiano fatto riferimento ai record che si desidera eliminare.
Punti di sottoquery
Ci sono pochi punti da tenere a mente quando si lavora con le subquerie PostgreSQL.
Chiusura
In questa guida, abbiamo discusso di come legare le query in PostgreSQL senza usare query separate.