Esercitazione sottoquery MySQL

Autore: Christy White
Data Della Creazione: 10 Maggio 2021
Data Di Aggiornamento: 13 Maggio 2024
Anonim
MySQL Tutorial for Beginners [Full Course]
Video: MySQL Tutorial for Beginners [Full Course]

Contenuto

Le sottoquery sono query nidificate all'interno di un'altra. Ti consentono di separare parte della frase e fornire un'alternativa più leggibile alle operazioni che potrebbero richiedere join e unioni complessi. Le sottoquery in MySQL possono restituire un valore, una riga, una colonna o una tabella di dati.


Utilizzare le sottoquery per creare frasi più leggibili e compatte (Immagini Thinkstock / Comstock / Getty Images)

La sintassi

La sintassi di base di una sottoquery è la seguente:

SELECT * FROM table1 WHERE columnA = (colonna SELECT B FROM table2) GO

Le sottoquery devono essere costituite da un'istruzione "SELECT", "INSERT", "UPDATE", "DELETE", "SET" o "DO" e non è possibile modificare la tabella e usarla all'interno della sottoquery allo stesso tempo. Le sottoquery vengono solitamente utilizzate sul lato destro della clausola WHERE, che può contenere qualsiasi confronto e operatori logici, come = (uguale), <> (diverso), <= (minore o uguale),> = o "BETWEEN" (tra due valori), "NOT", "AND" e "OR". Puoi anche utilizzare le parole chiave "DISTINCT", "GROUP BY", "ORDER BY" e "LIMIT" e anche combinate con le istruzioni "JOIN". Oltre alle restrizioni dettagliate, ci sono alcune limitazioni nella scrittura di sottoquery in MySQL.


Non c'è nemmeno una restrizione sul numero di subquery effettuate all'interno di una frase. È possibile trovare ulteriori informazioni sulle subquery nel manuale di riferimento MySQL (vedere la sezione "Risorse").

esempio

Supponiamo di avere due tabelle: una con il nome e il cognome, l'indirizzo e il codice postale dei membri di una mailing list e una con città, stati e codice postale. Per trovare i nomi dei membri che vivono a Brasilia, possono essere usate più frasi "selezionate". Il primo cercherà i CEP di Brasilia:

SELEZIONA DA DA codici WHERE state = "BRASILIA" GO

Quindi utilizzare una "selezione" per ogni codice postale trovato:

SELEZIONA nome, cognome DA indirizzi DOVE cep = [codecep] GO

Questo metodo è dispendioso in termini di tempo e facile da fare errori. È facile perdere un codice postale, soprattutto se ce ne sono troppi. Un modo più semplice per completare questa attività è utilizzare la prima frase come sottoquery all'interno del secondo:


SELECT nome, cognome FROM indirizzi WHERE cep = (SELECT cep FROM codici WHERE state = "BRASILIA") VAI

Questa query mostrerà tutti i membri della tua mailing list che vivono a Brasilia.