Táblák összekapcsolása,
adatok aggregálása

r

A gondolattérkép az Adatbázisok tárgy 3. előadásához készült.Az itt látható példák az előadáson látottak alapján lettek felépítve.

Fontos fogalmaink a múlból

Lekérdezések eddigi formái

Select, From

Union, Intersect, Minus, Disticnt, Where

Főbb megállapítások

Szabványos

r

Az SQL alapvetően egy túlságosan sok mindent megengedő ANSI+ISO szabványForrás: előadásdia

Angolszerű mondatok

r

Nyelvtanilag (majdnem) helyes mondatokat alkotunk lekérdezéskorForrás: előadásdia

Null értékek

r

Legfontosabb: A NULL nem egyenlő a zérussal!Jelentése: Nem ismert/értelmezett/hiányzó adatForrás: előadásdia

Saját példa

Saját példa

r

SELECT * FROM Hallgatók WHERE Neptun = NULL-Üres eredményhalmazt kapunkSELECT * FROM Hallgatók WHERE Neptun IS NULL-Ez már helyes, mert az ÉRTÉKE a nulla=semis

Összekapcsolások

Egyen-összekapcsolások

r

Equi-JoinForrás: előadásdia

Természetes összekapcsolás

r

A természetes összekapcsolásnál csupán a két, összekapcsolni kívánt tábla meghatározása szükséges, ebből az adatbáziskezelő megvizsgálja a táblákban lévő mezőket, majd ezek szerint végzi el az összekapcsolást.http://www.w3resource.com/sql/joins/natural-join.php

Saját példa

Saját példa

r

Fontos, hogy az azonos nevű oszlopokban azonos formátumú adatok legyenekON klauzula NEM használható természetes összekapcsolásbanForrás: előadásdia

USING klauzula

r

Ez annyiban különbözik a természetes összekapcsolástól, hogy a két táblán kívül az összekapcsolásra használt oszlopot is mi határozzuk meg.Forrás: előadásdia

Saját példa

Saját példa

r

Az ON klauzula helyett használhatjukForrás: előadásdia

Oracle szintaxis szerinti

r

Itt meghatározzuk, hogy a két táblázatból külön-külön mely oszlopok szerint hasonlítsa össze.Forrás: előadásdia

Saját példa

Saját példa

ON klauzula

r

Annyiban különbözik a Using klauzulától, hogy itt nem csak azonos nevű oszlopok segítségével tudjuk elvégezni az összevonástForrás: előadásdia

Saját példa

Saját példa

Nem egyen-összekapcsolások

r

Non equi-joinForrás: előadásdia

Saját példa

Saját példa

r

Ez a fajta összekapcsolás összehasonlító operátorokat használ a >, <, >=, <= jelek helyettesítésére.Forrás: http://www.w3resource.com/sql/joins/perform-a-non-equi-join.php

Külső összekapcsolások

r

Outer JoinForrás: előadásdia

Left

r

Megkapjuk a bal tábla teljes tartalmát, majd a jobb táblával egyező sorokat egyaránt.Forrás: https://www.w3schools.com/sql/sql_join.asp

Saját példa

Saját példa

Right

r

Megkapjuk a jobb tábla teljes tartalmát, majd a bal táblával egyező sorokat egyaránt.Forrás: https://www.w3schools.com/sql/sql_join.asp

Saját példa

Saját példa

Full

r

Valamely táblában való egyezés esetén visszaadja az összes sort.Forrás: https://www.w3schools.com/sql/sql_join.asp

Saját példa

Saját példa

Descartes szorzat

r

Cross joinForrás: előadásdia

Saját példa

Saját példa

r

A Descartes szorzatban az első táblánk sorait összeszorozzuk a második tábla soraival.Forrás: http://www.w3resource.com/sql/joins/cross-join.php , előadásdia

Lekérdezések

Hierarchikus lekérdezések

r

Fastruktúrájú adatokat helyezhetünk el relációs táblákban, majd ezt a hierarchiát hierarchikus lekérdezésekkel tudjuk rekonstruálni.Pl.: családfa, cég hiearchiája...Forrás: előadásdia

Saját példa

Saját példa

r

A "START WITH Főkategória = Alap"--pal jelölöm ki a fa gyökérpontjátA "CONNECT BY Főkategória = PRIOR Alkategória" --pedig a bejárás irányát jelöli.Forrás: előadásdia

Eredményei

r

A lekérdezések eredményei relációk mellett lehetnek értékek isForrás: előadásdia

Összetett lekérdezések

INLINE nézetek

Példa

Példa

r

Ebben a példában az első SELECT egy másik, a zárójelben lévő SELECT-ből szedi az adatait.Forrás: előadásdia

Többoszlopos allekérdezés

Példa

Példa

r

Forrás: előadásdia

Tárolt lekérdezések

Eredménytárolás

r

Egy lekérdezés eredményét tárolhatjuk el egy új táblában.CREATE TABLE Újtábla AS ( SELECT ...)Forrás: előadásdia

Nézet létrehozása

r

CREATE VIEW Újnézet AS SELECT...Forrás: előadásdia

Materializált nézet

r

Az előző kettő kombinációja.Forrás: előadásdia

Csoportok

GROUP BY klauzula

r

A GROUP BY segítségével tudjuk csoportosítani a táblánk sorait.Forrás: előadásdia

Példa

Példa

r

Forrás: előadásdia

HAVING klauzula

r

Csoportfüggvényt nem használunk WHERE klauzulában, ezen cél érdekében a HAVING opciót alkalmazzuk.Forrás: előadásdia

Lépései

r

3 lépés kell, hogy végbe menjen ezen klauzula használata során:A sorokat berendezzük csoportokbaEzen csoportokra csoporfüggvényeket alkalmazunkA szükséges csoportokat választjuk ki a HAVING opció segítségével.Forrás: előadásdia

Példa

Példa

r

Forrás: előadásdia

Csoportfüggvények

r

A csoportfüggvények több sor esetén is csak egy soros eredményt adnak.Forrás: előadásdia

Típusai

AVG

r

Paraméterbe írt mezők átlagát kapjuk vissza.Forrás: előadásdia

SUM

r

Paraméterben szereplő értékek összegét adja vissza.Forrás: előadásdia

Min/Max

r

Legkisebb/legnagyobb mező értékét adja vissza.Forrás: előadásdia

Count

r

Visszaadja a lekérdezés által kiválasztott sorok számátForrás: előadásdia

DISTINCT

r

A DISTINCT használatakor az azonos nevű mezőket nem veszi figyelembe.Forrás: előadásdia

Példa

Példa

r

Forrás: előadásdia

NULL

r

A csoportfüggvények a NULL-t figyelmen kívül hagyják, ez az NVL nevű függvény segítségével azonban elkerülhető.Forrás: előadásdia

Példa

Példa

r

Forrás: előadásdia

Egymásba való beágyazás

r

Maximum két szinten ágyazhatók egymásba.Forrás: előadásdia

Saját példa

Saját példa

Saját példa

Saját példa