Beágyazott és a kapcsolódó al-lekérdezések SQL, létezik állítmány

1) Beágyazott subqueries

SQL lekérdezések lehetővé teszi, hogy fektessenek be egymással. Általában a allekérdezés egyetlen érték, amely be van jelölve az igazság állítmány.

Típusú keresési feltételek:
• Összehasonlítás az eredménye a beágyazott lekérdezés (=, <>.> =)
• Ellenőrizze tagsági eredményeit segédlekérdezésként (IN)
• Ellenőrizze, hogy létezik (van)
• Több (mennyiségi) összehasonlítjuk (bármilyen, ALL)

Megjegyzés beágyazott lekérdezések:
• A segédlekérdezés kell választani csak egy oszlopot (kivéve a allekérdezés állítmány van), és az adatok típusát az eredményt meg kell egyeznie az adatok típusát a megadott értéket az állítmány.
• Bizonyos esetekben, akkor KÜLÖNÁLLÓ kulcsszó átvételének biztosításához egyetlen érték.
• A segédlekérdezés nem tartozik bele az ORDER BY és UNION.
• A segédlekérdezés lehet, és a bal és jobb a keresési feltételeket.
• Az al-lekérdezések nélkül is használható összesítés funkció fejezetet GROUP BY, ami automatikusan ad egy speciális jelentése tetszőleges számú vonalak, különleges predikátum, valamint a kifejezés alapján oszlopokat.
• Ha lehetséges, használjon vegyület helyett segédlekérdezésként táblákat.

Példák beágyazott lekérdezések:

2) Kapcsolódó subqueries

Az SQL létrehozhat subqueries hivatkozva a táblázat a külső kereslet. Ebben az esetben a segédlekérdezés ismételten végrehajtott, egyszer minden sorban a táblázat külső kérést. Ezért fontos, hogy segédlekérdezésként index. A segédlekérdezés utalhat ugyanannál az asztalnál, és a szabadba. Ha a külső lekérdezés viszonylag kis számú sor, a kapcsolódó al-lekérdezés gyorsabban fog futni kötetlen. Ha a allekérdezés kis sorok száma, a hozzá tartozó lekérdezés lefut lassan megszűntek.

Példák kapcsolódó al-lekérdezések:

SELECT * FROM értékesítők Main ahol 1 (SELECT AVG (AMT) megrendelésekből O2 WHERE O2.CNum = O1.CNum) // visszaadja az összes megrendelést, amelynek értéke meghaladja az átlagos értéket, hogy a megbízást a vevő

3) A predikátum EXISTS

A szintaktikai forma: [NOT] EXISTS ()

Az állítmány használ segédlekérdezésként érvként és értékeli azt igaz, ha a segédlekérdezés, a kimenő adatok, egyébként hamis. Segédlekérdezés végre egyszer és tartalmazhat több oszlopokat, mert az értékük nem ellenőrzik, és az eredmény egyszerűen fix húrok elérhetőségét.

Megjegyzések az állítmány EXISTS
• LÉTEZIK - állítmány visszaadja igaz vagy hamis, és fel lehet használni önmagában vagy más logikai kifejezések.
• LÉTEZIK nem használhatja aggregált funkciók segédlekérdezésként.
• A korrelált (kapcsolódó függő - korrelált) subqueries predikátum létezik végezni minden külső sor.
• Lehet kombinálni EXISTS állítmány a kapcsolatot asztalra.

Példák a predikátum EXISTS:

SELECT * FROM ügyfél, ahol létezik (SELECT * FROM ügyfél, ahol Város = 'San Jose) - visszaadja az összes ügyfél, ha az egyikük él San Jose.
SELECT DISTINCT SNUM FROM ügyfél az első, ha ez nem áll fenn (SELECT * FROM Ügyfél küldés WHERE Send.SNum = First.SNum ÉS Send.CNum<>First.CNum) - visszaadja az eladók, megfeleljenek csak egy ügyfél.
SELECT DISTINCT F.SNum, SNAME, F.City FROM értékesítők F, az Ügyfél S hol van erre (SELECT * FROM Ügyfél T WHERE S.SNum = T.SNum ÉS S.CNum<>T.CNum ÉS F.SNum = S.SNum) - visszaadja a számát, nevét és a városok tartózkodási összes gyártó megfeleljenek több ügyfél számára.
SELECT * FROM értékesítők Frst hol van erre (SELECT * FROM Ügyfél küldés WHERE Frst.SNum = Send.SNum AND 1

4) a mennyiségi összehasonlítást Predikátumok

A szintaktikai forma: [NOT] | = |> MINDEGY | ALL ()

Ezek a predikátumok érvként a allekérdezés, összehasonlítva azonban a EXISTS állítmány, használják őket egy együtt predikátumokkal arány (=<>.> =). Ebben az értelemben ezek hasonlóak az állítmány, de csak a subqueries. A szabvány lehetővé teszi a használatát, hanem bármely kulcsszó néhány, de nem az összes DBMS támogatja őt.

Megjegyzések összehasonlítás predikátumok:
• ALL állítmány TRUE, ha minden értéket választotta ki a allekérdezés megfelel a meghatározott feltétel az állítmány a külső kérésre. Leggyakrabban ez használható az egyenlőtlenségeket.
• Minden állítmány TRUE, ha legalább az egyik kiválasztott érték a folyamat a allekérdezés megfelel a meghatározott feltétel az állítmány a külső kérésre. Leggyakrabban ez használható az egyenlőtlenségeket.
• Ha a allekérdezés sorokat, majd automatikusan elfogadja ALL IGAZ (úgy tekinthető, hogy az összehasonlítás a feltétel teljesül), és bármilyen - HAMIS.
• Ha az összehasonlítás nem számít TRUE egy sort, és van egy vagy több sorban NULL értéket, majd visszatér az ismeretlen.
• Ha az összehasonlítás nem HAMIS értéket sem egyetlen sort, és egy vagy több sort NULL értéket, majd visszatér az összes ismeretlen.

Példák a mennyiségi összehasonlítást predikátum:

SELECT * FROM WHERE értékesítők Város = bármilyen (SELECT FROM Város Ügyfél)
SELECT * FROM megbízásokat, ahol AmtALL (SELECT minősítése ügyfél, ahol Város = 'Róma')

5) A predikátum egyediségét

Az állítmányt ellenőrzésére használt egyediségét (hiánya ismétlődések) a subqueries kimenet. Sőt, összhangban az állítmány UNIQUT NULL értékeket tekintettük egyedi, és az állítmány KÜLÖNÁLLÓ két definiált értékek tartják egyenlő egymással.

6) A predikátum egybeesések

MATCH állítmány ellenőrzi, hogy a lekérdezési karakterlánc értéke minden sorban egybeessen kapott értéket eredményeként a segédlekérdezés. Tól állítmány és minden ilyen segédlekérdezés jellemezve, hogy az eljárás lehetővé teszi a „részleges» (részleges) mérkőzés, amely előfordulnak vonalakra részét NULL értékeket.

7) kéri a FROM záradék

SELECT CName, Tot_Amt az ügyféltől, (SELECT CNum, SUM (AMT) AS Tot_Amt megrendelésekből GROUP BY CNum) WHERE Város = 'London' AND Customer.CNum = Orders.CNum
// allekérdezés összértéke megrendelések egyes ügyfelek által Londonból.

8) rekurzív lekérdezések

rekurzív
Q1 AS SELECT ... FROM ... WHERE ...
Q2 AS SELECT ... FROM ... WHERE ...