Mintavételi adatokat több táblából (csatlakoznak)

Mintavételi adatokat több táblából (JOIN)

Elég gyakran van szükség, hogy kiválassza az adatokat több asztal. Megjelenítéséhez az azonos lekérdezési adatokat több táblából Oracle végrehajtását teszi lehetővé az úgynevezett összekötő táblázatok. Két összefüggő szabályok a keverék a táblázatokat, amelyeket el kell szem előtt tartani. Az adatok a két (vagy több) táblázatok lehet kombinálni az esetben, ha mind a táblázatok van egy megfelelő oszlop (azonos vagy más néven), és az oszlopot egy tábla elsődleges kulcsa (vagy annak egy része a kulcs).







SELECT ename, rszam FROM emp ORDER BY rszam;

SELECT rszam, rnev DEPT ORDER BY rszam;

Nézzünk egy példát a szolgáltató kapcsolat (csatlakoznak), az Oracle hagyományos szintaxis, ahol összevesd tartalmát EMP és osztályon táblákat egy listát az összes alkalmazottak és a részleg nevét, ahol működnek:

Ügyeljen arra, hogy a sok fontos összetevői a kapcsolatot asztalra. A felhasználásra FROM záradék a két tábla egyértelműen jelzi, hogy van egy sziámi asztal. Megjegyezzük továbbá, hogy mielőtt a nevét, minden asztal jelen levél: e az EMP tábla vagy d a mélység asztalra. Ez azt mutatja, egy érdekes koncepció - az oszlopok lehet álneveket ugyanúgy, ahogy asztalokat. Más nevek fontos célt szolgálnak - nem adnak Oracle téveszteni az asztalnál használni, ha a kimenetre az adatokat a rszam oszlopra. Ne feledje, hogy mind a két táblában (EMP és osztályon) oszlopai nevű rszam.







Kétértelműséget a kapcsolatot táblázatban is elkerülhető előtag neve előtt egy oszlop jelzi a tábla nevét.

Megjegyezzük, hogy a mi WHERE záradékot tartalmaz egy összehasonlítást a mező rszam összekötő az adatokat az adatok emp osztályon. Ennek hiányában e tekintetben a kimeneti már tartalmazza az összes adatot a emp és osztályon.

Szintaxisa vegyületek ANSI / ISO

Összhangban az ANSI / ISO szintaxis, annak érdekében, hogy csatlakoztassa a tartalma a két asztal, hogy készítsen egy eredmény, akkor tartalmaznia kell az SQL-operátor kifejezés REGISZTRÁCIÓ table_name ON join_condition. Ha szeretné, összhangban ez a szintaxis elérni ugyanazt a kapcsolatot asztalra, amit korábban, ügyintézőnk az alábbiak lesznek:

Megjegyzés: a különbség ez a szintaxis és szintaxis Oracle. Először is, a szintaxisa ANSI / ISO-összehasonlítás használt vegyületek, elválasztottuk az egyéb összehasonlítást egy speciális kulcsszó, jelezve, hogy az összehasonlításhoz használt vegyület. Továbbra is tartalmazza a megfelelő ANSI / ISO kapcsolódási kérelmeket mondatot, ahol. Az egyetlen különbség az, hogy a WHERE kifejezést most csak a következőket tartalmazhatja további összehasonlító operátorok használt további adatok szűréséhez. Ezen felül, akkor nem kell hívni a neveket a FROM záradék az összekapcsolt táblák. Ehelyett azonnal a FROM záradék, akkor kell használni a JOIN kifejezést, amelyet azonosítottak, és a nevét minden összekapcsolt táblák.

Természetes (természetes REGISZTRÁCIÓ)

Természetes csatlakozzon a kapcsolat két tábla között, ahol az Oracle csatlakozik táblákat az azonos nevű oszlopok (oszlop) mindkét asztal (természetesen!). A természetes vegyület végezzük abban az esetben, hogy a kulcsszó TERMÉSZETES.

Az egyetlen megfelelő oszlopok emp és osztályon táblák az oszlop depnto,

Ez könnyű kicserélni, hogy a természetes vegyületek lehetővé nagyban egyszerűsíti a kapcsolódási kérelmet megszüntetésével álnevek táblázatok és összehasonlítások a vegyületet.

A projekt kezdeti kódok vannak tárolva bitbucket.
Ha hajlandó felvenni a tudás, vagy javítsa ki a hibák, pontatlanságok, írja be a chat.




Kapcsolódó cikkek