? Programmatori e amministratori di database utilizzano la Structured Query Language per creare banche dati informatiche e la relazione sulle informazioni in loro. Una istruzione SQL può contenere complessi test condizionali per selezionare specifici insiemi di dati provenienti da tabelle di un database . Una subquery correlata ha due test , uno annidato dentro l' altra ; ogni prova dipende dal risultato dell'altra. SQL
database relazionali maggior parte dei moderni incorporano SQL per l'aggiunta e l'aggiornamento dei dati , la creazione di strutture e di raccolta di informazioni . SQL si basa su teorie su dati elaborati nel 1970 e continuamente perfezionato da allora . Si compone di un insieme di istruzioni , tra cui SELECT, INSERT , creare ed eliminare , seguito da varie clausole che specificano i dati che vengono gestiti e opzioni come l'ordinamento e raggruppamento . L' ampio uso di basi di dati è dovuta alla flessibilità e la raffinatezza di SQL , consente alle aziende di analizzare gruppi complessi di dati in molti modi
query e sottoquery
Un comando SQL . per recuperare i dati è chiamata una query , in genere , i programmatori di utilizzare l'istruzione SELECT per le query , anche se molte delle regole per la ricerca dei dati si applicano anche a INSERT , DELETE e UPDATE . Una semplice query SELECT può visualizzare il contenuto di una tabella di dati , come ad esempio la seguente dichiarazione :
SELECT * FROM inventario ;
Questa interrogazione elenca tutti i record in una tabella chiamata "inventario ". si fanno i risultati di una query più specifica con l'aggiunta di test condizionali , come in questa dichiarazione :
SELECT * FROM WHERE inventario warehouse_code = ' chicago5 ';
questa query mostra solo i record di inventario da un magazzino codice , chicago5 .
una sottoquery è una query all'interno di un'altra query . La seguente dichiarazione elenca record di inventario per gli elementi da magazzini di una determinata regione :
SELECT * FROM WHERE inventario warehouse_code IN (SELECT warehouse_code da magazzini WHERE regione = ' Midwest ');
Si noti che questa domanda ha due istruzioni SELECT , uno che visualizza record di inventario , e un altro che prevede la query principale con i codici di magazzino .
correlata sottoquery
un correlato subquery , entrambe le query principali e subordinate estrarre dati dalla stessa tabella . L'interrogazione interna svolge una funzione di aggregazione , come una statistica , e la immette informazioni alla query esterna , che utilizza come base di un confronto . Ad esempio, questa subquery correlata produce un elenco di record di inventario per quegli articoli aventi prezzi superiore alla media di un magazzino . La query esterna passa le informazioni di magazzino per la query interna , e la query interna manda il prezzo medio torna alla query esterna :
SELEZIONA NUMERO_ARTICOLO , prezzo , warehouse_code dall'inventario i1 WHERE prezzo > ( SELECT AVG ( prezzo ) dall'inventario i2 DOVE warehouse_code.i1 = warehouse_code.i2 ) ; " . i2 "
le due query tabella utilizzare alias "I1" e anche se si riferiscono alla stessa tabella , utilizzando alias consente le query di trattarlo come due entità separate .
problemi di prestazioni
subquery correlate , SQL valuta la query interna , una volta per ogni record nella query esterna . Come dimensioni delle tabelle diventano più grandi , il processo richiede più tempo . Se si scopre che una sottoquery correlata prende una quantità eccessiva di tempo per completare , considerare l'utilizzo di una alternativa , come il caricamento di una tabella temporanea con i risultati intermedi , quindi l'elaborazione della tabella temporanea direttamente contro il tavolo principale con un semplice sottoquery . Anche se meno elegante , può risultare significativamente più veloce .