Interogările SQL sunt carnea și cartofii RDBMS CRUD (creați, citiți, actualizați, ștergeți). Dar atunci când aplicația sau baza de date a întreprinderii crește, nevoia de interogări inteligente pentru a prelua date condiționate, specifice cerințelor devine o necesitate.

SQL este relativ cuprinzător, cuprinzând multe funcționalități, fiecare dintre ele potrivită pentru diverse utilizări de afaceri. O astfel de funcționalitate include utilizarea subinterogărilor.

Pentru a face codurile dvs. eficiente și eficiente, puteți utiliza subinterogări din codurile dvs. SQL pentru a prelua date, a manipula variabilele existente și a atinge mai multe obiective dintr-o singură mișcare.

Ce sunt subinterogările SQL?

O sub-interogare este o interogare imbricată, care funcționează ca un parametru în cadrul unei alte interogări principale. Sub-interogarea este un întrebare interioară, în timp ce interogarea principală este interogare exterioară.

Se presupune că interogarea secundară returnează datele ca argument între paranteze pentru interogarea principală, în timp ce interogarea principală preia rezultatul final.

instagram viewer

Sub-interogările sunt încorporate în Selectați declarație sau în Unde clauză. O astfel de structură permite subinterogării să se comporte ca o condiție de filtrare a datelor bine descrisă. Din păcate, interogările secundare pot folosi numai A se grupa cu comenzi și nu Comandă de comenzi, deoarece acestea sunt permise numai în interogarea principală.

Legate de: Tot ce trebuie să știți despre instrucțiunea SQL GROUP BY

De obicei, fiecare sub-interogare cuprinde o singură coloană cu Selectați clauză. Cu toate acestea, există scenarii în care interogarea principală are mai multe coloane. O sub-interogare poate fi imbricată într-o altă sub-interogare, transformând-o într-o sub-interogare de imbricare.

strictul unei sub-interogări este după cum urmează:

Selectați column_name din tabel unde condition= 
(SELECT conditional_column FROM table) ca alias;

De exemplu, să presupunem că aveți următorul tabel:

ID Nume Al doilea nume Taxa de agentie
1 Ioan Fitil 5000
2 Robert Graham 4000
3 Stefan Hicks 8000
4 Bob Marley 1000
5 Maria Ellen 9000

În acest tabel, pentru a extrage numele persoanelor care câștigă peste taxa medie de agenție, puteți scrie o subinterogare, în loc să scrieți mai multe rânduri de cod.

Legate de: Cum se creează un tabel în SQL

Iată cum arată interogarea:

Selectați * din agent_details
unde Agency_Fee > (selectați avg (Agency_Fee) din agent_details);

Comanda înainte de > semnul este interogarea exterioară, în timp ce, totul după > semnul este interogarea interioară.

Interogarea interioară va calcula taxa medie de agenție în cadrul subinterogării, iar interogarea exterioară va afișa toate valorile care sunt mai mari decât valoarea medie calculată.

Cum se utilizează sub-interogări în SQL?

Există câteva moduri diferite în care puteți utiliza subinterogări în SQL.

Sub-interogări cu clauza unde

Una dintre cele mai de bază structuri ale unei sub-interogări în SQL se află în clauza Where. Este cel mai simplu mod de a defini ceea ce cauți. Instrucțiunea select returnează valori conform condiției (condițiilor) de sub-interogare și o folosește ca parametru pentru interogarea principală.

Structura interogării:

selectați * din table_name
unde nume_coloană = (selectați nume_coloană din nume_tabel);

Să explicăm acest lucru cu un exemplu.

Să presupunem că doriți să găsiți al doilea cel mai mare comision de agenție din tabelul agency_details. Pentru a face acest lucru, există funcții alternative în SQL; cu toate acestea, cea mai bună metodă este să folosiți o sub-interogare.

Iată cum puteți defini sub-interogarea:

selectați *, max (Agency_fee)
de la agent_details
unde Agency_fee < (selectați max (Agency_fee) din agent_details);

Declarația rezultată vă va arăta 8000, care este a doua cea mai mare taxă din tabelul dat. Când interogarea rulează, subinterogarea calculează valoarea maximă din lista de taxe. Cea mai mare sumă a taxei (9000) este stocat în memorie.

Odată ce această parte este calculată, se calculează a doua parte a interogării, care găsește a doua cea mai mare taxă din tabel (deoarece < este folosit semnul). Rezultatul final este 8000, care este al doilea cel mai mare comision din tabel.

Sub-interogări în cadrul clauzei From

O altă variație în cadrul sub-interogărilor este trecerea condiției în din clauză. Ca un concept similar, interogarea interioară este procesată mai întâi, iar interogarea exterioară este procesată ulterior. Interogarea interioară va filtra datele și va afișa rezultate unde ID = 3.

Iată interogarea pentru referință:

selectați a.* din (
selectați agency_fee din agent_details
unde ID= 3) ca a;

Aceasta este o structură de bază; cu toate acestea, cu cât tabelele dvs. de date sunt mai complexe, veți obține mai multe rânduri de date, care se potrivesc condițiilor dvs.

Utilizarea subinterogărilor cu Insert în instrucțiune

Dacă doriți să actualizați un tabel existent cu câteva rânduri de date noi, puteți utiliza Introdu in afirmație. O subinterogare se poate dovedi a fi destul de benefică, dacă doriți să adăugați valori pe baza unei anumite condiții.

Structura interogării:

inserați în table_name 
selectați * din table_name
unde numele_coloană = condiții;
selectați * din table_name;

Iată un exemplu despre cum puteți utiliza instrucțiunea insert into cu sub-interogarea:

inserați în agent_details
selectați * din agent_details
unde comision_agenție în (1000, 5000);
selectați * din agent_details;

Odată ce interogarea rulează, valorile care corespund condiției vor fi introduse din nou în tabelul existent. The Selectați * reference preia toate coloanele împreună și le inserează în tabelul agent_details așa cum este. The în declarația este utilizată pentru a defini mai multe condiții de filtrare simultan.

Utilizarea subinterogărilor cu instrucțiunea de actualizare

Există situații în care doriți să actualizați tabelele de bază în timp ce rulați interogările. Pentru a face acest lucru, puteți utiliza Actualizați instrucțiunea împreună cu comenzile de interogare.

Acesta este modul în care veți scrie sub-interogarea pentru a actualiza informațiile din tabel într-o singură instanță:

actualizați table_name 
set column_name = new_value
unde numele_coloană =
(selectați numele_coloană din nume_tabel unde = );

Iată un exemplu care demonstrează utilizarea instrucțiunii de actualizare:

UPDATE detaliile agentului 
SET agency_fee = 35000
UNDE comision_agenție =
(SELECTAȚI comision_agenție FROM agent_details WHERE Prenume='Ioan');
selectați * din agent_details;

Subinterogarea va filtra pe coloana comision_agenție și va evidenția rândurile în care se potrivește First_Name Ioan. În continuare se execută interogarea externă, în care taxa de agenție este actualizată la 35000 pentru John Wick.

Puteți trece o Selectați * declarație pentru verificarea rezultatelor finale; veți observa că taxa de agenție pentru John Wick este actualizată la 35000, deoarece există doar o instanță care corespunde condițiilor definite în interogare.

Utilizarea subinterogărilor cu instrucțiunea de ștergere

La fel ca declarația de actualizare, în care actualizați rândurile de date dintr-un tabel existent, șterge instrucțiunea șterge rândurile de date pe baza unei condiții.

Structura declarației de ștergere este:

șterge din table_name unde variabila/coloană nume = 
(selectați nume_coloană din nume_tabel unde = condiție);

Iată un exemplu:

Ștergeți din agent_details 
unde Prenume IN
(selectați Prenume din detaliile agent unde comision_agenție = 9000);
selectați * din agent_details;

Utilizarea subinterogărilor în cadrul SQL

Sub-interogările sunt o caracteristică excelentă în SQL, care vă poate scuti de la scrierea de linii nesfârșite de cod inutil. Când puteți utiliza funcționalitățile de bază ale subinterogărilor pentru a vă licita, nu ați dori niciodată să vă faceți griji cu privire la complexitatea codării SQL.

Cel mai bine este întotdeauna să vă îmbunătățiți cunoștințele SQL existente pentru a vă asigura că sunteți mereu în fruntea jocului. Fiți siguri că foile de înșelăciune SQL vă pot oferi o idee bună despre cum să vă perfecționați elementele de bază dintr-o singură privire.

Cheat Sheet pentru comenzi SQL esențiale pentru începători

Doriți să aflați mai multe despre SQL? A avea un control asupra diferitelor comenzi de interogare SQL este o modalitate excelentă de a avansa.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Programare
  • Programare
  • SQL
  • Instrumente de programare
Despre autor
Gaurav Siyal (35 articole publicate)

Gaurav Siyal are doi ani de experiență în scris, scriind pentru o serie de firme de marketing digital și documente despre ciclul de viață al software-ului.

Mai multe de la Gaurav Siyal

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona