Care sunt subcheile corelate?
SQL
Cele mai moderne baze de date relaționale includ SQL pentru a adăuga și actualiza date, a crea structuri și a aduna informații. SQL se bazează pe teorii despre date dezvoltate în anii 1970 și este continuu rafinat de atunci. Se compune dintr-un set de stări, inclusiv SELECT, INSERT, CREATE și DELETE, urmate de mai multe clauze care specifică datele și opțiunile gestionate, cum ar fi sortarea și gruparea. Utilizarea pe scară largă a bazelor de date se datorează flexibilității și sofisticării SQL; Acesta permite organizațiilor să analizeze grupurile de date complexe în mai multe moduri.
Interogări și subcotări
O comandă SQL pentru a prelua date se numește o interogare. În mod obișnuit, programatorii utilizează instrucțiunea SELECT a interogărilor, deși multe dintre regulile pentru căutarea datelor se aplică și în cazul INSERT, DELETE și UPDATE. O interogare SELECT simplă poate afișa conținutul unui tabel de date, cum ar fi următoarea instrucțiune:
SELECT * din inventar;
Această interogare arată toate înregistrările dintr-un tabel numit "Inventar" Puteți obține rezultate dintr-o interogare mai specifică prin adăugarea de teste condiționale, ca în această declarație "inventar":
SELECT * din inventar WHERE warehouse_code = 'chicago5';
Această declarație arată înregistrările stocului dvs. de cod de depozit, chicago5.
O subchetare este o interogare în cadrul unei alte interogări. Următoarea declarație enumeră înregistrările de inventar ale elementelor în care depozitele se află într-o anumită regiune:
SELECT * FROM din inventar WHERE warehouse_code IN (SELECT warehouse_code FROM depozite WHERE regiune = 'midwest');
Rețineți că această interogare are două instrucțiuni SELECT, unul care arată înregistrările inventarului și altul care stabilește interogarea principală cu codurile de depozit.
Subcorelate corelate
Într-o subcotare corelată, interogările principale și subordonate extrag datele din același tabel. Interogarea internă efectuează o funcție agregată, cum ar fi o statistică, și alimentează această informație interogării externe, care o folosește ca bază pentru o comparație. De exemplu, această subcotare corelată produce o listă de înregistrări de inventar pentru elementele cu prețuri mai mari decât media unui depozit. Interogarea externă transmite informațiile din depozit la interogarea internă, iar interogarea internă trimite prețul mediu înapoi la interogarea externă:
SELECT part_number, price, warehouse_code Din inventar i1 WHERE pret> (SELECT AVG (price) din inventar i2 WHERE warehouse_code.i1 = warehouse_code.i2);
Cele două interogări utilizează tabelele aliasului "I1" și "I2". Deși se referă la același tabel, utilizarea aliasului permite ca interogările să fie tratate ca două entități separate.
Dezavantaje ale funcționării
Pentru subdotare corelate, SQL evaluează interogarea internă o dată pentru fiecare înregistrare din interogarea exterioară. Când dimensiunile meselor devin mai mari, procesul durează mai mult timp. Dacă găsiți că o subcărcare corelată durează o perioadă excesivă de timp pentru a finaliza, luați în considerare utilizarea unei alternative, cum ar fi încărcarea unui tabel temporar cu rezultate intermediare și apoi procesarea tabelului temporar direct față de masa principală cu un simplu subansamblu. Deși este mai puțin elegant, poate fi mult mai rapid.