Utolsó frissítés 2020. február 26., 08:07:42 (UTC / GMT +8 óra)
Mi az subquery az SQL-ben?
Az allekérdezés egy nagyobb lekérdezésbe beágyazott SQL-lekérdezés.
- Allekérdezés fordulhat elő:
- – A SELECT záradék
- – A FROM záradék
- – WHERE záradék
- Az allekérdezés beágyazható egy SELECT, INSERT, UPDATE vagy DELETE utasításba, vagy egy másikba allekérdezés.
- Allekérdezés általában egy másik SQL SELECT utasítás WHERE záradékába kerül.
- Használhatja az összehasonlító operátorokat, például a >, <, vagy =. Az összehasonlító operátor lehet többsoros operátor is, például IN, ANY vagy ALL.
- Az allekérdezést belső lekérdezésnek vagy belső választásnak is nevezik, míg az allekérdezést tartalmazó utasítást egy külső lekérdezés vagy külső kiválasztás.
- A belső lekérdezés először a szülő lekérdezése előtt hajt végre, hogy a belső lekérdezés eredményei átadhatók legyenek a külső lekérdezésnek.
Ön a SELECT, INSERT, DELETE vagy UPDATE utasításban használhat egy lekérdezést a következő feladatok végrehajtására:
- hasonlítson össze egy kifejezést a lekérdezés eredményével.
- Határozza meg, hogy egy kifejezés szerepel a lekérdezés eredményeiben.
- Ellenőrizze, hogy a lekérdezés választ-e sorokat.
Szintaxis:
- Az allekérdezés (belső lekérdezés) egyszer végrehajtódik, mielőtt a fő lekérdezés (külső lekérdezés) végrehajtásra kerülne.
- A fő lekérdezés (külső lekérdezés) az allekérdezés eredményét használja.
SQL-lekérdezések példa:
Ebben a szakaszban megismerheti az alkérdezések használatának követelményeit. A következő két “student” és “marks” táblázat van a “StudentID” közös mezővel.
hallgatói jegyek
Most egy olyan lekérdezést szeretnénk írni, hogy azonosítsuk azokat a hallgatókat, akik jobb pontszámot kapnak, mint az a diák, aki “StudentID” V002 “, de nem ismerjük a” V002 “jegyeit.
– A probléma megoldásához két lekérdezésre van szükségünk. Az egyik lekérdezés a “V002” jelzéseit adja vissza (a Total_marks mezőben tárolva), a második pedig azokat a tanulókat azonosítja, akik jobb pontszámot kapnak, mint az első lekérdezés eredménye.
Első lekérdezés:
Lekérdezés eredménye:
A lekérdezés eredménye 80.
-A lekérdezés eredményének felhasználásával itt egy újabb lekérdezést írtunk, hogy azonosítsuk azokat a tanulókat, akik 80-nál jobb pontszámot kapnak. Itt van a lekérdezés:
Második lekérdezés:
Lekérdezés eredménye:
Két lekérdezés felett azonosított hallgatók, akik t jobb szám, mint az a diák, aki “StudentID” a “V002” (Abhay).
A fenti két lekérdezést úgy kombinálhatja, hogy az egyik lekérdezést a másikba helyezi. Az allekérdezés (más néven “belső lekérdezés”) a zárójelben lévő lekérdezés. Lásd a következő kódot és a lekérdezés eredményét:
SQL-kód:
Lekérdezés eredménye:
Az SQL subquery képi bemutatása:
Subquery: Általános szabályok
Az subquery SELECT utasítás szinte hasonló a SELECT utasításhoz, és egy szokásos vagy külső lekérdezés indítására szolgál. Itt található az allekérdezés szintaxisa:
Szintaxis:
Allekérdezések: Irányelvek
Vannak irányelvek, amelyeket figyelembe kell venni az allekérdezések használatakor:
- Zárójelbe kell foglalni egy allekérdezést.
- Az összehasonlító operátor jobb oldalán kell elhelyezni egy allekérdezést.
- Az al lekérdezések nem manipulálhatják az eredményeiket belsőleg, ezért az ORDER BY záradék nem adható hozzá az al lekérdezéshez. Használhat egy ORDER BY záradékot a SELECT fő utasításban (külső lekérdezés), amely az utolsó záradék lesz.
- Használjon egysoros operátorokat egysoros allekérdezésekkel.
- Ha egy részlekérdezés (belső lekérdezés) null értéket ad vissza a külső lekérdezéshez, akkor a külső lekérdezés nem ad vissza sorokat, ha bizonyos összehasonlító operátorokat használ a WHERE záradékban.
Alkérdezések típusa
- Egysoros allekérdezés: nulla vagy egy sort ad vissza.
- Többsoros lekérdezés: Egy vagy több sort ad vissza.
- Több oszlop-lekérdezés: Egy vagy több oszlopot ad vissza.
- Összefüggő alkérdezések: Hivatkozás egy vagy több oszlopra a külső SQL utasításban. Az allekérdezést korrelált részlekérdezésnek nevezik, mivel az allekérdezés a külső SQL utasításhoz kapcsolódik.
- Beágyazott lekérdezések: Az al lekérdezéseket egy másik lekérdezésbe kell helyezni.
A következő foglalkozáson alaposan megvitattuk a fenti témákat. A fenti típusú lekérdezéseken kívül használhat allekérdezést az INSERT, UPDATE és DELETE utasításokban. Itt egy rövid beszélgetés:
Az INSERT utasítással rendelkező lekérdezések
Az INSERT utasítás használható az alkérdezésekhez.Itt található az INSERT utasítást használó alkérdezések szintaxisa és egy példa.
Szintaxis:
INSERT INTO table_name ) ]SELECT FROM table1 ;
Ha ezeket a megrendeléseket be akarjuk illeszteni a ” megrendelések “tábla, amelynek az előleg_összege 2000 vagy 5000 van az” újrendelés “táblába, a következő SQL használható:
Mintatábla: rendelések
SQL kód:
Kimenet:
További részletekért az INSERT utasítással rendelkező lekérdezések száma kattintson ide
UPDATE utasítással rendelkező lekérdezések
Az UPDATE utasításban új oszlopértéket állíthat be, amely megegyezik az egyetlen soros lekérdezés által visszaadott eredménnyel. Itt található a szintaxis és egy példa az UPDATE utasítást használó alkérdezésekre.
Szintaxis:
UPDATE table SET column_name = new_value(SELECT COLUMN_NAMEFROM TABLE_NAME)
Ha azt az ord_date-et szeretnénk frissíteni ” neworder “tábla” 15-JAN-10 “-vel, amelyek különbsége az ord_amount és a forward_amount értéke kisebb, mint a” order “tábla minimális ord_amount értéke, a következő SQL használható:
Minta táblázat: neworder
SQL-kód:
Kimenet:
Az UPDATE utasítással rendelkező részlekérdezések részleteinek megtekintéséhez kattintson ide.
DELETE utasítással rendelkező lekérdezések
A DELETE utasítás használható az alkérdezésekhez. Itt található a szintaxis és egy példa a DELETE utasítást használó részlekérdezésekre.
Szintaxis:
DELETE FROM TABLE_NAME(SELECT COLUMN_NAME FROM TABLE_NAME)
Ha törölni akarjuk azokat a megrendeléseket az “neworder” táblából, amelyek az előleg_összeg kisebbek, mint a maximális előleg_összeg ” megrendelések “tábla, a következő SQL használható:
Mintatábla: neworder
SQL kód:
Kimenet:
Kattintson ide a DELETE utasítással az alkérdezések további részleteinek megtekintéséhez.
Mi a következő lépés?
- SQL-lekérdezések – Diabemutató
- Egysoros lekérdezések
- Többsoros és oszlopos lekérdezések
- Álneveket használó korrelált alkérdezések
- Beágyazott lekérdezések
Megjegyzés: Az SQL utasítás itt látható kimeneteit az Oracle Database 10g Express Edition használatával készítjük el.
Gyakorolja az SQL gyakorlatokat
- SQL gyakorlatok, gyakorlat, megoldás
- SQL Adatok lekérése a táblákból
- SQL logikai és relációs operátorok
- SQL helyettesítő és speciális operátorok
- SQL összesített Funkciók
- SQL Lekérdezés kimenetének formázása
- SQL lekérdezés több táblán
- SZŰRÉS és SOROLÁS a HR adatbázisban
- SQL JOINS
- SQL JOINS
- SQL CSATLAKOZIK a HR adatbázison
- SQL ALKÉRDÉSEK
- SQL ALKÉRDÉSEK
- SQL ALKÉRDÉSEK a HR adatbázisban
- SQL Union
- SQL nézet
- SQL felhasználói fiók kezelése
- filmadatbázis
- ALAPKÉRDÉSEK a filmadatbázisról
- ALKERETEK a filmadatbázisról
- CSATLAKOZÁS a filmadatbázisról
- foci adatbázis
- Bevezetés
- ALAPKérdések a futballadatbázisról
- ALKÉRDÉSEK a futballadatbázisról
- CSATLAKOZIK foci adatbázis
- Kórházi adatbázis
- Bevezetés
- BASIC, SUBQUERIES és JOINS
- Munkavállalói adatbázis
- ALAPKÉRDÉSEK a munkavállalói adatbázisról
- ALKÉRDÉSEK a munkavállalói adatbázisról
- További részletek!