SQL lekérdezések; több asztalon át

Táblák összekapcsolása - csatlakozás

A relációs adatbázisok általában nagyszámú táblából állnak. SQL-lekérdezéshez gyakran olyan adatokat szeretne, amelyek különböző táblákból származnak. Ehhez a táblákat össze kell kapcsolni. Az ilyen kapcsolatokat ún Csatlakozik.

asztalon

A táblák összekapcsolódnak a FROM záradékban szereplő táblák megadásával. A különböző táblák attribútumai gyakran azonos nevekkel rendelkeznek. Ha ilyen attribútumot használnak az SQL lekérdezésben, akkor meg kell adni a tábla nevét is. Az egyik azt írja: tábla neve.attribútum neve.

A Name attribútum neve nem egyértelmű. Leírja egyrészt a tanár nevét, másrészt az osztályt. Példánkban az osztály nevét a Class.Name és a tanár nevét a Teacher.Name címmel kell megcímezni.

megjegyzés Ha az oszlop neve egyedi, akkor nem kell a táblázat nevét elé tenni.

A következő lekérdezés bemutatja az elvet. A WHERE záradék jelentését az alábbiakban részletezzük.

A táblák nevei átnevezhetők a FROM záradékon belül. Ehhez az SQL adja meg a kulcsszót MINT elérhető, de nem feltétlenül használják. Például a fenti kérelem következő megfogalmazása lehetséges:

SELECT l.name, k.name
TÓL TŐL Tanár MINT l, osztály MINT k
HOL l.PersNr = k.osztálykezelés;

SELECT l.name, k.name
TÓL TŐL Tanár l, k osztály
HOL l.PersNr = k.osztálykezelés;

Mivel a PersNr és az osztálykezelés egyedi attribútumnevek, a WHERE záradék a következő lehet:

HOL PersNr = osztályvezető

A táblák nevei átnevezhetők a FROM záradékban. Ehhez az SQL adja meg a kulcsszót MINT elérhető, de nem feltétlenül használják. Például a fenti kérelem következő megfogalmazása lehetséges:

SELECT p. helyiség neve
TÓL TŐL Egyetemi tanár MINT p, ügyeleti helyiség MINT d
HOL p.PersNr = d.PersNr;

SELECT o. Név, azaz sz
TÓL TŐL professzor p, iroda d
HOL p.PersNr = d.PersNr;

Mivel a név és a RaumNr egyedi attribútumnevek, a SELECT záradék lehet:

SELECT név, teremszám

A WHERE záradék jelentése

A WHERE záradék elhagyása a fenti példában a következő eredményhez vezet:

Ennek az eredménynek a létrehozása a következőképpen képzelhető el. Csatlakozáskor az egyik táblázat minden adatrekordja összekapcsolódik a másik táblázat minden adatrekordjával. Az eredmény egy virtuális táblában van "tárolva", amely az egyik és a másik táblázat oszlopát is tartalmazza.

A WHERE záradék segítségével megadhatók az egyenlőség feltételei, amelyek kizárják az értelmetlen vagy értelmetlen kombinációkat.

Öncsatlakozás

Néha egy tábla önmagához kapcsolódik. Ezt a bizonyos csatlakozást hívják Öncsatlakozás.

SELECT Név, tárgy
TÓL TŐL Tanár, tanári képesítéssel rendelkezik
HOL PersNr = tanár;
Gyakorlási adatbázis

SELECT Vezetéknév
TÓL TŐL Tanár, szakfelügyelete van
HOL PersNr = tanár ÉS Tárgy = 'német';
Gyakorlási adatbázis

SELECT l.name
TÓL TŐL Tanár l, tanuló s, is_Fachlehrkraft_von i
HOL osztályban = s.gehoert_zu ÉS i.tanár = 1. személy sz ÉS s.Név = 'Falbala';
Gyakorlási adatbázis

SELECT tanár
TÓL TŐL ist_fachlehrkraft_von a, ist_fachlehrkraft_von b
HOL a.tanár = b.tanár ÉS a.osztály = b.osztály ÉS NEM (a.Fach = b.Fach);
Gyakorlási adatbázis


Ez egy öncsatlakozás, mert az is_teacher_of tábla össze van kapcsolva önmagával.

Elrejt