Az SQL-lekérdezések az RDBMS CRUD (létrehozás, olvasás, frissítés, törlés) lényegét jelentik. De amikor az alkalmazás vagy a vállalati adatbázis növekszik, az intelligens lekérdezések szükségessége a feltételes, követelmény-specifikus adatok lekéréséhez elengedhetetlen.

Az SQL viszonylag átfogó, számos funkcionalitást magában foglal – amelyek mindegyike kiválóan alkalmas különféle üzleti célokra. Az egyik ilyen funkció magában foglalja az allekérdezések használatát.

A kódok hatékony és eredményessé tétele érdekében az SQL-kódokon belüli allekérdezéseket használhat az adatok lekérésére, a meglévő változók manipulálására és több cél elérésére.

Mik azok az SQL-allekérdezések?

Az allekérdezés egy beágyazott lekérdezés, amely paraméterként működik egy másik fő lekérdezésben. Az allekérdezés egy belső lekérdezés, míg a fő lekérdezés az külső lekérdezés.

Az allekérdezés állítólag zárójelben lévő argumentumként adja vissza az adatokat a fő lekérdezéshez, míg a fő lekérdezés tovább kéri a végeredményt.

instagram viewer

Az allekérdezések be vannak ágyazva a Válassza ki nyilatkozatban vagy a Ahol kikötés. Egy ilyen struktúra lehetővé teszi, hogy az allekérdezés jól leírt adatszűrési feltételként viselkedjen. Sajnos az allekérdezések csak a Csoportosít parancsol és nem Rendezés parancsokat, mivel ezek csak a fő lekérdezésben engedélyezettek.

Összefüggő: Minden, amit az SQL GROUP BY nyilatkozatról tudnia kell

Általában minden egyes allekérdezés egyetlen oszlopot tartalmaz a Válassza ki kikötés. Vannak azonban olyan esetek, amikor a fő lekérdezés több oszlopot tartalmaz. Egy allekérdezés beágyazható egy másik allekérdezésbe, így beágyazó allekérdezéssé válik.

Egy részlekérdezés szigorítása a következő:

Válassza az oszlop_nevet a táblából, ahol a feltétel= 
(SELECT feltételes_oszlop FROM táblázatból) álnévként;

Tegyük fel például, hogy rendelkezik a következő táblázattal:

ID Keresztnév Második név Ügynöki díj
1 János Kanóc 5000
2 Robert Graham 4000
3 István Hicks 8000
4 Bob Marley 1000
5 Mary Ellen 9000

Ebben a táblázatban az átlagos ügynökségi díj felett kereső személyek nevének lekéréséhez írhat egy allekérdezést ahelyett, hogy több sornyi kódot írna.

Összefüggő: Hogyan készítsünk táblázatot SQL-ben

Így néz ki a lekérdezés:

Válassza a *-ot az agent_details listából
ahol Ügynökségi_díj > (válassza ki az átlagot (Ügynöki_díj) az ügynök_részletei közül);

A parancs előtt a > jel a külső lekérdezés, míg minden a > jel a belső lekérdezés.

A belső lekérdezés az allekérdezésen belüli átlagos ügynökségi díjat számítja ki, a külső lekérdezés pedig minden olyan értéket megjelenít, amely meghaladja a számított átlagértéket.

Hogyan használjunk allekérdezéseket az SQL-ben?

Az SQL-ben néhány különböző módon használhatja az allekérdezéseket.

Allekérdezések a Hol záradékkal

Az SQL-ben az allekérdezések egyik legalapvetőbb struktúrája a Where záradékban található. Ez a legegyszerűbb módja annak, hogy meghatározza, mit keres. A select utasítás az allekérdezési feltétel(ek)nek megfelelő értékeket ad vissza, és a fő lekérdezés paramétereként használja.

Lekérdezés szerkezete:

válassza ki a *-ot a táblázat_neve közül
ahol oszlop_neve = (válasszon oszlopnevet a táblázat_neve közül);

Magyarázzuk meg ezt egy példával.

Tegyük fel, hogy meg szeretné találni a második legmagasabb ügynökségi díjat az agency_details táblázatból. Ehhez az SQL-en belül vannak alternatív függvények; ennek ellenére a legjobb módszer egy részlekérdezés használata.

A következőképpen határozhatja meg az allekérdezést:

válasszon *, max (ügynökségi_díj)
from agent_details
ahol Ügynökségi_díj < (válasszon max (Ügynöki_díj) az ügynök_részletei közül);

A kapott nyilatkozat megmutatja 8000, ami a második legmagasabb díj az adott táblázatban. Amikor a lekérdezés fut, az allekérdezés a díjlistából számítja ki a maximális értéket. A legmagasabb díj összege (9000) tárolódik a memóriában.

Ennek a résznek a kiszámítása után a rendszer kiszámítja a lekérdezés második részét, amely megtalálja a második legmagasabb díjat a táblázatból (mivel a < jelet használunk). A végeredmény az 8000, ami a második legmagasabb díj a táblázatban.

Allekérdezések a From záradékon belül

Egy másik változat az allekérdezéseken belül a feltétel átadása a tól től kikötés. Hasonló koncepció szerint először a belső lekérdezés kerül feldolgozásra, majd a külső lekérdezés feldolgozása utána. A belső lekérdezés szűri az adatokat, és olyan eredményeket jelenít meg, ahol az ID = 3.

Íme a lekérdezés referenciaként:

válasszon a.* közül (
válassza ki az agency_fee elemet az agent_details listából
ahol ID=3) mint a;

Ez egy nagyon alapvető szerkezet; azonban minél összetettebbek az adattáblák, annál több adatsort kap, amelyek megfelelnek a feltételeknek.

Allekérdezések használata az Insert Into utasítással

Ha egy meglévő táblát szeretne frissíteni néhány új adatsorral, használhatja a Helyezze be nyilatkozat. Egy részlekérdezés igen hasznosnak bizonyulhat, ha egy adott feltétel(ek) alapján szeretne értékeket hozzáadni.

Lekérdezés szerkezete:

illessze be a tábla_nevébe 
válassza ki a *-ot a táblázat_neve közül
ahol oszlop_neve = feltételek;
válasszuk ki a *-ot a tábla_nevéből;

Íme egy példa arra, hogyan használhatja a beillesztést az utasításba az allekérdezéssel:

illessze be az agent_detailsbe
válassza a *-ot az agent_details listából
ahol ügynökségi_díj (1000, 5000);
válasszon *-ot a agent_details közül;

A lekérdezés lefutása után a feltételnek megfelelő értékek ismét bekerülnek a meglévő táblába. A válassz * A hivatkozás egyben felveszi az összes oszlopot, és beszúrja az agent_details táblába, ahogy van. A ban ben Az utasítás több szűrőfeltétel egyidejű meghatározására szolgál.

Allekérdezések használata frissítési nyilatkozattal

Vannak olyan helyzetek, amikor frissíteni szeretné a mögöttes táblákat a lekérdezések futtatása közben. Ehhez használhatja a frissítés utasítást a lekérdező parancsokkal együtt.

Így írja meg az allekérdezést a táblázat információinak egy példányban történő frissítéséhez:

frissítse a tábla_nevét 
állítsa be az oszlopnév = new_value
ahol oszlop_neve =
(válassza az oszlop_nevet a táblázat_neve közül ahol = );

Íme egy példa, amely bemutatja a frissítési utasítás használatát:

UPDATE agent_details 
SET ügynökségi_díj = 35000
WHERE ügynökségi_díj =
(SELECT agency_fee FROM agent_details WHERE First_name='János');
válasszon *-ot a agent_details közül;

Az allekérdezés az ügynökségi_díj oszlopra szűr, és kiemeli azokat a sor(oka)t, ahol a Keresztnév egyezik János. Ezután a külső lekérdezés kerül végrehajtásra, ahol az ügynökségi díj 35 000-re frissül John Wick esetében.

Átadhat a válassz * nyilatkozat a végeredmény ellenőrzésére; észre fogja venni, hogy a John Wick ügynökségi díja 35000-re módosult, mivel csak a lekérdezésben meghatározott feltételeknek megfelelő példány van.

Allekérdezések használata törlési utasítással

Csakúgy, mint a frissítési utasítás, amelyben egy meglévő tábla adatsorait frissíti, a töröl utasítás törli az adatsor(oka)t egy feltétel alapján.

A delete utasítás szerkezete a következő:

törlés innen: táblanév ahol változó/oszlopnév = 
(válassza ki az oszlop_nevet a tábla_nevéből ahol = feltétel);

Íme egy példa:

Törlés az agent_details mappából 
ahol Keresztnév IN
(Válassza ki a Keresztnév lehetőséget az ügynök_részletei közül, ahol ügynökségi_díj = 9000);
válasszon *-ot a agent_details közül;

Allekérdezések használata SQL-en belül

Az allekérdezések kiváló szolgáltatást jelentenek az SQL-ben, amely megóvhatja Önt attól, hogy végtelen sorokat írjon feleslegesen. Ha az allekérdezések alapvető funkcióit tudja használni az ajánlattételhez, soha nem kell aggódnia az SQL-kódolás bonyolultsága miatt.

Mindig az a legjobb, ha bővíti meglévő SQL-ismeretét, hogy mindig a legjobb tudása legyen. Biztos lehet benne, hogy az SQL csalólapok jó ötletet adhatnak arra vonatkozóan, hogyan ecsetelheti az alapokat egyetlen pillantással.

Az alapvető SQL-parancsok csalólapja kezdőknek

Szeretne többet megtudni az SQL-ről? A különféle SQL lekérdezési parancsok kezelése nagyszerű módja annak, hogy előrébb juss.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Programozás
  • Programozás
  • SQL
  • Programozási eszközök
A szerzőről
Gaurav Siyal (35 cikk megjelent)

Gaurav Siyal két éves írási tapasztalattal rendelkezik, számos digitális marketingcégnek ír és szoftver-életciklus-dokumentumokat írt.

Továbbiak Gaurav Siyaltól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez