Quali sono correlati Sottoquery?

May 30

Quali sono correlati Sottoquery?


I programmatori e amministratori di database utilizzano la Structured Query Language per creare banche dati informatiche e riferire sulle informazioni in essi. Una istruzione SQL può contenere test condizionali complesse per selezionare specifici insiemi di dati da tabelle di un database. Una subquery correlata ha due prove, una annidati dentro l'altro; ogni prova dipende dal risultato dell'altra.

SQL

La maggior parte dei database relazionali moderni incorporano SQL per l'aggiunta e l'aggiornamento dei dati, la creazione di strutture e la raccolta di informazioni. SQL si basa su teorie su dati sviluppati nel 1970 e continuamente raffinati da allora. Si compone di una serie di dichiarazioni, tra cui SELECT, INSERT, creare ed eliminare, seguita da varie clausole che specificano i dati che vengono gestiti e opzioni come l'ordinamento e raggruppamento. L'uso diffuso di basi di dati è dovuta alla flessibilità e la raffinatezza di SQL; permette alle aziende di analizzare gruppi complessi di dati in molti modi.

Query e subquery

Un comando SQL per recuperare i dati è chiamata una query; In genere, i programmatori utilizzano l'istruzione SELECT per le query, anche se molte delle regole per la ricerca dei dati si applicano anche a inserire, eliminare 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 Si fanno i risultati di una query in modo più preciso con l'aggiunta di test condizionali, come in questa dichiarazione "inventario.":

SELECT * FROM WHERE inventario warehouse_code = 'chicago5';

Questa query mostra solo i record di inventario da un codice di magazzino, chicago5.

Una sottoquery è una query all'interno di un'altra query. La seguente dichiarazione elenca record di inventario per gli elementi da magazzini in una determinata regione:

SELECT * FROM WHERE inventario warehouse_code IN (SELECT warehouse_code dai magazzini WHERE region = 'Midwest');

Si noti che questa query ha due istruzioni SELECT, uno che visualizza record di inventario, e un altro che prevede la query principale con i codici di magazzino.

subquery correlata

In una subquery correlata, sia principali e subordinate query estrarre i dati dalla stessa tabella. La query interna svolge una funzione di aggregazione, come ad esempio una statistica, e trasmette l'informazione al query esterna, che utilizza come base di un confronto. Ad esempio, questo subquery correlata produce un elenco di record di inventario per le voci che hanno prezzi superiori rispetto alla media di un magazzino. La query esterna passa le informazioni di magazzino di query interna, e la query interno invia il prezzo medio di nuovo alla query esterna:

SELEZIONE NUMERO_ARTICOLO, prezzo, warehouse_code DA i1 inventario DOVE prezzo> (SELECT AVG (prezzo) FROM i2 inventario DOVE warehouse_code.i1 = warehouse_code.i2);

Le due query utilizzare la tabella alias "I1" e "I2". Anche se si riferiscono allo stesso tavolo, utilizzando alias consente le query di trattarlo come due entità separate.

Problemi di prestazione

Per 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 subquery correlata prende una quantità eccessiva di tempo per completare, considerare l'utilizzo di una alternativa, come ad esempio 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.