Categorias: Todos

por Attila Mülhauser 7 anos atrás

424

Előadás_3_Mindmap_MülhauserAttila_AN40E0

A gondolattérkép bemutatja az Adatbázisok tárgy harmadik előadásának főbb témáit és fogalmait. Az előadás az SQL lekérdezések különböző formáit tárgyalja, mint például a SELECT, FROM, UNION, INTERSECT, MINUS és WHERE parancsok használatát.

Előadás_3_Mindmap_MülhauserAttila_AN40E0

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

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.

Csoportfüggvények

A csoportfüggvények több sor esetén is csak egy soros eredményt adnak.


Forrás: előadásdia

Egymásba való beágyazás

Maximum két szinten ágyazhatók egymásba.


Forrás: előadásdia

NULL

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

DISTINCT

A DISTINCT használatakor az azonos nevű mezőket nem veszi figyelembe.


Forrás: előadásdia

Típusai
Count

Visszaadja a lekérdezés által kiválasztott sorok számát


Forrás: előadásdia

Min/Max

Legkisebb/legnagyobb mező értékét adja vissza.


Forrás: előadásdia

SUM

Paraméterben szereplő értékek összegét adja vissza.


Forrás: előadásdia

AVG

Paraméterbe írt mezők átlagát kapjuk vissza.


Forrás: előadásdia

Csoportok

HAVING klauzula

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

3 lépés kell, hogy végbe menjen ezen klauzula használata során:

  1. A sorokat berendezzük csoportokba
  2. Ezen csoportokra csoporfüggvényeket alkalmazunk
  3. A szükséges csoportokat választjuk ki a HAVING opció segítségével.


Forrás: előadásdia

GROUP BY klauzula

A GROUP BY segítségével tudjuk csoportosítani a táblánk sorait.


Forrás: előadásdia

Lekérdezések

Tárolt lekérdezések
Materializált nézet

Az előző kettő kombinációja.


Forrás: előadásdia

Nézet létrehozása

CREATE VIEW Újnézet AS SELECT...


Forrás: előadásdia

Eredménytárolás

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

Összetett lekérdezések
Többoszlopos allekérdezés

Forrás: előadásdia

INLINE nézetek

Példa

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

Eredményei

A lekérdezések eredményei relációk mellett lehetnek értékek is


Forrás: előadásdia

Hierarchikus lekérdezések

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

A "START WITH Főkategória = Alap"--pal jelölöm ki a fa gyökérpontját

A "CONNECT BY Főkategória = PRIOR Alkategória" --pedig a bejárás irányát jelöli.


Forrás: előadásdia

Összekapcsolások

Descartes szorzat

Cross join


Forrás: előadásdia

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

Külső összekapcsolások

Outer Join


Forrás: előadásdia

Full

Valamely táblában való egyezés esetén visszaadja az összes sort.


Forrás: https://www.w3schools.com/sql/sql_join.asp

Right

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

Left

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

Nem egyen-összekapcsolások

Non equi-join


Forrás: előadásdia

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

Egyen-összekapcsolások

Equi-Join


Forrás: előadásdia

ON klauzula

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ást


Forrás: előadásdia

Oracle szintaxis szerinti

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

USING klauzula

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

Az ON klauzula helyett használhatjuk


Forrás: előadásdia

Természetes összekapcsolás

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

Fontos, hogy az azonos nevű oszlopokban azonos formátumú adatok legyenek

ON klauzula NEM használható természetes összekapcsolásban


Forrás: előadásdia

Fontos fogalmaink a múlból

Főbb megállapítások
Null értékek

Legfontosabb: A NULL nem egyenlő a zérussal!

Jelentése: Nem ismert/értelmezett/hiányzó adat


Forrás: előadásdia

Saját példa

SELECT * FROM Hallgatók WHERE Neptun = NULL

-Üres eredményhalmazt kapunk

SELECT * FROM Hallgatók WHERE Neptun IS NULL

-Ez már helyes, mert az ÉRTÉKE a nulla=semis

Angolszerű mondatok

Nyelvtanilag (majdnem) helyes mondatokat alkotunk lekérdezéskor


Forrás: előadásdia

Szabványos

Az SQL alapvetően egy túlságosan sok mindent megengedő ANSI+ISO szabvány


Forrás: előadásdia

Lekérdezések eddigi formái

Union, Intersect, Minus, Disticnt, Where
Select, From