SQL segédlekérdezés Csatlakozás külső lekérdezéshez

Sql Segedlekerdezes Csatlakozas Kulso Lekerdezeshez



A relációs adatbázisokkal való munka során el kell sajátítania, hogyan kezelheti és kombinálhatja a lekérdezéseket a kívánt feladatok végrehajtásához. Ez az oka annak, hogy minden relációs adatbázis-motor úgy valósítja meg az SQL nyelv sajátosságait, hogy kivételes szolgáltatásokat, hatékonyságot és könnyű használatot biztosít a felhasználók számára.

Az SQL egyik leghatékonyabb funkciója az allekérdezések. Az allekérdezések egy nagyobb és összetettebb lekérdezésbe ágyazott lekérdezések halmaza. Az allekérdezések lehetővé teszik az adatok lekérését vagy összetettebb műveletek végrehajtását egyetlen entitásként.







Az allekérdezések segítségével adatszűrést, rendezést, összesítést végezhetünk több táblán stb.



Egy másik, az SQL-allekérdezések alatt elrejtett szolgáltatás azonban az allekérdezés összekapcsolása. Ezek hasonlóak az allekérdezésekhez; ehelyett olyan összekapcsolások, amelyek lehetővé teszik a külső lekérdezéseken belüli allekérdezések használatát a táblák összekapcsolásához.



Ha forog a feje, ne aggódjon, mert az allekérdezések összekapcsolása kihívást jelenthet, különösen az elején. Ez az oktatóanyag azonban megpróbálja elemi lépésekben lebontani a részlekérdezések csatlakozásait anélkül, hogy túl sokat bízna a véletlenre.





Ne feledje, hogy feltételezzük, hogy Ön nem ismeri az SQL-t, az SQL-csatlakozásokat, az SQL-allekérdezéseket vagy hasonlókat. Ha azonban igen, tekintse meg oktatóanyagainkat a témákról, hogy többet megtudjon.

Sajátítsa el az SQL külső csatlakozásait

Ha meg akarja érteni, hogyan kell dolgozni az allekérdezési illesztésekkel, kulcsfontosságú a külső illesztések kezelésének megtanulása.



Ha nem ismeri, az SQL külső összekapcsolása lehetővé teszi az összes sor lekérését az egyik táblából és a megfelelő sorokat a második táblából. Ez egy kicsit bonyolultabb ennél, beleértve a bal külső csatlakozást, a jobb külső csatlakozást, a teljes külső csatlakozást stb.

Az SQL bal külső összekapcsolásakor a lekérdezés a bal oldali tábla összes sorát és a megfelelő sorokat a jobb oldali táblából adja vissza. A lekérdezés a NULL értékeket tartalmazza az eredményül kapott oszlopokban, ha a jobb oldali táblázatban nincsenek egyező sorok.

Jobb oldali külső összekapcsolás esetén a lekérdezés a jobb oldali tábla összes sorát visszaadja, de csak a megfelelő sorokat a bal oldali táblából. Hasonlóképpen, a lekérdezés tartalmazza a NULL értékeket, ha a bal oldali táblában nincsenek egyező sorok.

Végül megvan a teljes külső csatlakozás. Ez az összekapcsolás visszaadja a jobb és bal táblák összes sorát, valamint a NULL értékeket a nem egyező rekordokhoz.

SQL Subquery Joins

Most, hogy megértettük az SQL-allekérdezéseket, beszéljünk az allekérdezések összekapcsolásáról. Az allekérdezések összekapcsolása lehetővé teszi számunkra, hogy a külső lekérdezéseken belüli részlekérdezéseket használjuk a táblák összekapcsolásához.

Ha kérdezed, ez az? Igen, ez minden, amit a subquery csatlakozások tesznek.

Ennek jobb bemutatása érdekében vegyük a következő szintaktikai példát, amelyet az alábbiakban mutatunk be:

KIVÁLASZTÁS *
táblázatból1
BAL KÜLSŐ CSATLAKOZÁS (
SELECT oszlop1, oszlop2
2. táblázatból
) AS segédlekérdezés
ON tábla1.oszlop3 = allekérdezés.oszlop1;


Az előző szintaxisban az első tábla összes oszlopát bal oldali külső összekapcsolással jelöljük ki, hogy egy részlekérdezéssel kapcsoljuk össze. Az allekérdezés szerepe az, hogy lekérje a definiált oszlopokat a 2. táblázatból. Ezután összekapcsoljuk az 1. táblázattal az 1. tábla 2. oszlopának és az 1. oszlopnak az allekérdezés feltételével.

Gyakorlati példa:

Elméletileg kevésbé tűnik intuitívnak, de vegyünk egy valós forgatókönyvet a Sakila adatbázis segítségével.

Tegyük fel, hogy le akarjuk kérni az adatbázisban található összes film listáját és a hozzájuk tartozó nyelveket. A filmek nyelveit a nyelvi táblázat, a filmneveket pedig a filmtáblázatban tárolja.

A filmtáblázatnak azonban van egy idegen kulcsa, amelyet a nyelvi táblázat „language_id” oszlopának neveznek. Ezért használhatunk egy allekérdezés összekapcsolást egy bal külső összekapcsolással a két tábla összekapcsolásához, amint azt a következő lekérdezés mutatja:

SELECT f.title, l.name AS nyelv
filmből f
BAL KÜLSŐ CSATLAKOZÁS (
SELECT language_id, name
nyelvből
) AS l
ON f.nyelvazonosító = l.nyelvazonosító;


Az előző példalekérdezésnél a filmtáblázatból a cím oszlopot, a nyelvi táblázatból a név oszlopot választjuk ki.

Ezután egy segédlekérdezés segítségével kiválasztjuk a language_id és a name oszlopot a nyelvek táblából. A következő lépés az, hogy összekapcsoljuk a filmtáblázattal, azzal a feltétellel, hogy a filmtáblázat nyelv_azonosítója megegyezik a nyelvi tábla nyelv_azonosítójával.

Annak biztosítására, hogy az összes film szerepeljen az eredményben, a bal oldali külső illesztést kell használnunk, amely a bal oldali táblázat összes eredményét tartalmazza, amely ebben az esetben a filmtábla.

Egy példa kimenet a következő:


Ugyanezt megtehetjük jobb oldali külső csatlakozással is. A szintaxis a következő:

KIVÁLASZTÁS *
táblázatból1
JOBB KÜLSŐ CSATLAKOZÁS (
SELECT oszlop1, oszlop2
2. táblázatból
) AS segédlekérdezés
ON tábla1.oszlop3 = allekérdezés.oszlop1;


Ez hasonlóan viselkedik, de a megfelelő táblázatban lévő összes rekordot tartalmazza, még akkor is, ha nincsenek egyező rekordok.

Hasznos tudnivalók

Jó megérteni, hogy bár az allekérdezés összekapcsolása hihetetlenül hasznos, és optimalizálhatja a munkafolyamatot, óvatosan használja őket.

Kerülje például az allekérdezés összekapcsolását nagy adatkészlettel. Ennek az az oka, hogy visszaadhatják azokat a kiterjedt rekordokat, amelyek befolyásolhatják az adatbázis teljesítményét.

Fontolja meg a lekérdezéselemző eszközök használatát, mielőtt bármilyen segédlekérdezés-illesztést végrehajtana.

Következtetés

Ez az oktatóanyag feltárta az SQL-ben az allekérdezésekkel és az alákérdezés-illesztésekkel való munka alapjait. Ennek az oktatóanyagnak a végén megtudhatja, hogyan kell dolgozni az allekérdezés-illesztésekkel, miért lehet szüksége ezek használatára, valamint egy gyakorlati példa arra, hogyan segíthetnek a munkafolyamatban.