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.
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.
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
- Programozás
- Programozás
- SQL
- Programozási eszközök
Gaurav Siyal két éves írási tapasztalattal rendelkezik, számos digitális marketingcégnek ír és szoftver-életciklus-dokumentumokat írt.
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