Az adatbázis-lekérdezések konkrét információkat kérnek le az adatbázisból.
Az allekérdezés egy másik lekérdezésben található lekérdezés. Egy segédlekérdezés egy másik segédlekérdezést is tartalmazhat. Ezek "beágyazott" segédlekérdezések. Egyesítésről akkor beszélünk, ha két vagy több táblára hivatkozunk a lekérdezés „From” részében. A különböző adatbázismotorok eltérően optimalizálhatják az allekérdezéseket és a csatlakozásokat. Például a DB2 optimalizálója egy részlekérdezést alakít át összekapcsolássá, ha bizonyos feltételek teljesülnek. Egyes esetekben az összekapcsolás jobb teljesítményt nyújt, mint egy segédlekérdezés.
Mitől lesz egy segédlekérdezés
Az allekérdezés egy „SELECT” utasítás egy külső „INSERT”, „UPDATE”, „MERGE” vagy „DELETE” utasítás „WHERE” vagy „HAVING” záradékán belül. Az allekérdezést "belső lekérdezésnek" vagy "belső kiválasztásnak" is nevezik. Az allekérdezés tartalmazhat egy „FROM” záradékot egy vagy több táblával, és opcionálisan tartalmazhat „WHERE”, „GROUP BY” vagy „HAVING” záradékot. Mindig zárójelben van.
A nap videója
Az allekérdezések előnyei és hátrányai
Az allekérdezések előnyösek, mert úgy strukturálják a lekérdezést, hogy elkülönítsék az utasítás minden részét, ugyanazt a műveletet hajtsa végre, amely általában bonyolult illesztéseket és egyesítéseket igényel, és könnyebben elvégezhető olvas. Az allekérdezések még a "Structured Query Language" (SQL) elnevezés alapját is képezték könnyen olvasható szerkezetük miatt. Hátránya, hogy nem módosíthat egy táblát és nem választhat ugyanabból a táblából egy részlekérdezésben ugyanabban az SQL utasításban. Az adatbázis-optimalizáló által feldolgozott részlekérdezések végrehajtása tovább tarthat, mint egy összekapcsolás.
Mi tesz egy csatlakozást
A legtöbb részlekérdezés átírható csatlakozásként, és a legtöbb csatlakozás átírható részlekérdezésként. Az összekapcsolás két vagy több táblát határoz meg egy kapcsolódó oszlop által. A táblákat általában elsődleges és idegen kulcsokkal kapcsolják össze. Például egy alkalmazotti tábla tartalmazhat egy alkalmazotti azonosító oszlop elsődleges kulcsát, míg egy munkaidő-nyilvántartási tábla egy alkalmazotti azonosító oszlopot is tartalmazhat, amely az alkalmazotti tábla idegen kulcsa. Az SQL-csatlakozás a következőképpen írható: "WHERE munkavállaló.empid = timeheet.empid" vagy "FROM munkavállaló JOIN munkaidőlap BE (alkalmazott.empid = timeheet.empid)."
A csatlakozások előnyei és hátrányai
Az összekapcsolás fő előnye, hogy gyorsabban hajtódik végre. Előfordulhat, hogy a végfelhasználó nem fogja észrevenni a teljesítménynövekedést. Mivel azonban az oszlopokat az adatbázis-motor kifejezetten elnevezte, indexeli és optimalizálja, a lekérdezési idő szinte mindig gyorsabb lesz, mint egy segédlekérdezésé. Vannak még belső és külső illesztések, bal és jobb csatlakozások, teljes illesztések és keresztkötések. A csatlakozások használatának hátránya, hogy nem olyan könnyen olvashatóak, mint az allekérdezések. Egy másik hátránya, hogy zavaró lehet, hogy melyik illesztés a megfelelő típusú összekapcsolás a megfelelő kívánt eredményhalmaz eléréséhez.