Adatgyűjtés
Ha több adatbázistáblából származó adatokat szeretne lekérni, használja a relációs algebra által meghatározott csatlakozási műveletet. Az egyik táblázat sorai a másik oszlop soraihoz kapcsolódnak a megfelelő oszlopok közös értékei szerint - az elsődleges és az idegen kulcsok oszlopaiban.
Az Oracle7 adatbázis az alábbi kapcsolódási módokat támogatja:- egy equi-vegyület;
- nem equi-join;
- külső kapcsolat;
- csatlakozási táblázat önmagával (rekurzió).
A táblák közötti kapcsolatok.
Ha több asztal csatlakozik, lehetséges, hogy lekérdezés eredményeképpen megszerezhető egy Descartes-termék, amely akkor alakul ki, ha:
- a csatlakozási feltétel elmarad;
- a kapcsolat állapota érvénytelen;
- Az első táblázat minden sora a második táblázat összes sorához van kapcsolva.
Annak érdekében, hogy elkerüljük a karteziánus termék beszerzését, mindig szükség van egy érvényes csatlakozási feltételre a WHERE záradékban.
Egy egyszerű lekérdezés egy kapcsolattal.
Ez a fajta kapcsolat akkor fordul elő, ha a kapcsolat feltételei egy oszlop értékeinek egyenlőségét mutatják a másik értékéhez képest. Gyakran ezek az oszlopok az elsődleges és külföldi kulcsok alkotóelemei.
Példa: Csatlakozzon a munkavállalók és a szervezeti egységek tábláihoz, hogy megjelenítse a munkavállaló nevét, számát és az osztály nevét.
A két táblázat sorai kombinálva vannak, és csak az S_EMP.DEPT_ID és az S_DEPT.ID értékek sorai szerepelnek az eredményben.
Az asztalnevek formájában használt előtagokat arra használják, hogy megkülönböztessék az azonos nevű oszlopokat a különböző táblázatoktól. Az előtagok használata tábla nevek formájában növeli a lekérdezés teljesítményét. A különböző táblázatokból származó oszlopok megkülönböztethetők az álnevek segítségével. De mi van akkor, ha a táblák neve nehézkes vagy egybeesik?
A helyzet megoldásához használjon aliases táblákat. Ennek során a következő szabályokat kell követnie:
- Javasoljuk, hogy a táblázat álnevek előtagjai legyenek az oszlopnevek;
- a táblázat aliasok csak erre a SELECT-re érvényesek;
- ha létrehozza a táblázat alias-t, meg kell adnia az oszlop hivatkozás előtt, és nem az asztal nevét.
Példa: Megjeleníti a vásárló nevét, a régió számát és a régió nevét minden ügyfél számára. Az oszlop aliasokat használják, és a táblázatok az asztalokra vonatkozó hivatkozások egyszerűsítésére szolgálnak.
A táblázati álnevek legfeljebb harminc karaktert tartalmazhatnak, ám annál rövidebbek, annál jobb. A táblázat alias hatása csak az aktuális SELECT-re terjed ki. A táblázat aliasok használata csökkentheti az SQL kód mennyiségét, ami csökkenti a memóriafelhasználást.
További keresési kifejezések.
A WHERE klauzulán való csatlakozáson kívül más kritériumokat is megadhat a lekérdezésben kapott sorok korlátozásához. Mivel a kapcsolat szükséges a meccsegyezéshez, egy további feltétel hozzáadásra kerül az AND operátorral.
Példa: A vezetéknév, az osztály száma és a munkavállaló "Menchu" osztályának neve.
Külső kapcsolat szimbólum; használhatók a WHERE klauzula mindkét oldalán. (+) a táblázat nevének megadása után, amelyben nincsenek megfelelő sorok
A külső kapcsolat üzemeltetője csak a kifejezés egyik oldalán használható, ahol nincs elegendő információ. Táblázat sorokat ad vissza, amelyekhez nincs megfelelő sor a másik táblában.
Az a feltétel, amely külső kapcsolatot feltételez, nem használhatja az IN operátort, és a VAGY operátor használatával társulhat más feltételekhez.
Példa: A név minden egyes ügyféllel kapcsolatos következtetés, valamint az értékesítési képviselő neve és azonosítószáma. A lista olyan ügyfelek nevét is tartalmazza, akik nem rendelkeznek értékesítési képviselővel.