A JOIN operátor megjelenésének előfeltételei
Ahogy a táblázatokban lévő adatok mennyisége növekszik, gyakran duplikált értékek jelennek meg bennük. Például a terméktáblázat márkaneveket tartalmaz. amelyek néha ismétlődnek. Hasznos lenne külön márkatáblázatot készíteni számukra, amely például ilyen adatokat tartalmazna:
- id - márkaazonosító;
- név – márkanév;
- company_owner - a márka tulajdonosának neve;
- company_contacts - a márkatulajdonos cégének elérhetőségei.
Ezután szeretnénk létrehozni egy címtáblázatot, amelybe az összes címet elhelyezhetjük:
- id – id-címek;
- ország;
- vidék;
- város;
- utca;
- ház;
- postai irányítószám.
Sőt, ebben a táblázatban nem csak a márkatulajdonos cégek, hanem a vásárlók, alkalmazottak címeit is el lehetne tárolni. Ez a megközelítés pedig egyszerűen az adatmennyiség (a táblázatok sorainak számának) növekedésének a következménye. Ez megkönnyíti a táblázatokban lévő adatok kezelését és integritásának megőrzését.
Ha 5 alkalmazottja van, egyszerűen beírhatja a foglalkozásukat a foglalkozás oszlopba . Ha 5 ezer alkalmazott van a cégedben, akkor szükséged van egy táblázatra, amelyen x szakmák listája és azok feladatai vannak.
A Java nyelvben egyébként van valami hasonló. Ha egy metódusban sok kód van, akkor azt kívánjuk több metódusra bontani. Ha egy osztályban sok metódus van, akkor több osztályra szeretném bontani.
Ez az oka annak, hogy a nagy adatbázisok több ezer táblát tartalmaznak. És szinte minden lekérdezés egyszerre több táblán is végrehajtódik. És a három tábla sorainak derékszögű szorzata, amelyek mindegyikében ezer rekord van, már egymilliárd sor.
De csak egymilliárd sor szűrése a WHERE használatával órákig tarthat. Ezért az SQL nyelv alkotói felajánlották megoldásukat - a JOIN operátort.
A JOIN operátor bemutatása
A JOIN operátor kifejezetten megmondja az SQL szervernek, hogy nem az összes táblázatsor derékszögű szorzatára van szükségünk, hanem a különböző táblázatok sorainak intelligens ragasztására, amelyek azonosítóval (vagy más módon) hivatkoznak egymásra. . A szervernek külön algoritmusa van a tábla-illesztések feldolgozására a JOIN operátor segítségével, amely lehetővé teszi az ilyen műveletek sokkal gyorsabb végrehajtását. A JOIN operátor általános formája a következő:
table 1 JOIN table 2 ON condition
Itt azt írja ki, hogy a tábla1 és tábla2 táblákat egy táblába kell egyesíteni , és a feltételt kell használni összekapcsolási feltételként .
Vegyük a régi példánkat:
SELECT * FROM employee, task WHERE emploee.id = task.emploee_id
És írja át a JOIN operátor segítségével:
SELECT * FROM employee JOIN task ON emploee.id = task.emploee_id
Mindkét lekérdezés ugyanazt az eredményt adja a mi esetünkben, de ez csak azért van, mert a lekérdezések nagyon egyszerűek. A jövőben a WHERE lehetővé teszi pontosan a sorszűrő felépítését, az ON után megadott pedig összetett szkriptek írását teszi lehetővé a táblák összekapcsolásához. A JOIN utasítás használatakor álneveket (táblaálneveket) is használhat. Példa:
SELECT * FROM employee e JOIN task t ON e.id = t.emploee_id
GO TO FULL VERSION