Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Adatbázis rendszerek I
Kovács László Az SQL nyelv elemei
2
SQL jelentősége Az SQL ez egyik legfontosabb alaptechnológia az informatikában. Az SQL fejlődése során egyre több funkciót integrál magába, globális adatkezelés felé halad (Vikram Vaswani) A legkeresettebb ismeretek egyike az IT álláshirdetésekben az SQL,amely stabilan tartja magát (mellette a C++, Java, PHP, UNIX váltakoznak) (CWJobs.UK) Kb. évi 10%-os piacnövekedés az adatbáziskezelőknél, kb. 8 billió $ 2005-ben képek: wikipedia (Gartner Group) Számos feladat specifikus SQL DBMS létezik a piacon
3
SQL jelentősége Meg kell tanulni SQL-ben gondolkodni!
Az alap építőelemekből a szükséges elemeket a helyes sorrendben kell bevonni. Csak biztos alapra szabad építeni, a rejtett hibák csak később derülnek ki. Látszólag működik a rendszer, … de nem mindig helyesen vagy nem hatékonyan !! „Aki nem mestere, az hóhéra” (Nagymamám) zsiráf-mozaikok
4
SQL használata A SELECT parancs szinte végtelen kombinációs, bővítési
lehetőséggel rendelkezik SELECT mezőlista FROM tábla , (SELECT …) WHERE mezőfeltétel AND (SELECT …)-feltétel GROUP BY csoport-kif. HAVING csoportfeltétel AND (SELECT..) UNION | INTERSECT | … (SELECT …) A SELECT parancs több alakban is megjelenhet besimul a környezetébe SELECT … FROM … SELECT … INTO … FROM … CURSOR … AS SELECT … ide kaméleon
5
SQL használata Az SQL több, mint a SELECT parancs - view - domain
- snapshot - trigger - job - tárolt eljárás - tárolt függvény - felhasználó - profile - role - schema - database link - replication - cluster - lock ... interaktív program CLI-SQL E-SQL SQL több ezer oldalas SQL referenciák PL-SQL T-SQL Oracle SQL referencia: www-db.iit.uni-miskolc.hu/…
6
SQL használata Az SQL szabvány és az egyes SQL implementációk
szoros kölcsönhatásban állnak egymással - ismerni kell a szabványt - ismerni kell a konkrét SQL felületet FROM T1 OUTER JOIN T2 ON f FROM T1 = (+) T2 WHERE f egyedi objektumok egyedi operátorok egyedi függvények egyedi kapcsolók egyedi paraméterek egyedi adattípusok eltérő operátorok hiányzó operátorok … WHERE CTOD(‘ ’)… WHERE TO_DATE(‘ ’,…) WHERE CONVERT(‘ ’,…) WHERE { }… matyusa baba egymásba ágyazott ANSI SQL kompatibilitás
7
SQL használata Könyvekben és on-line módon számos SQL oktató forrás
áll rendelkezésre Aki keres, az talál /Vista/2207/sql1.html select name, count(aid) from author, ( ( select author from wrote, book where publication=pubid ) union all ( select author from wrote, article where publication=pubid ) ) ba where aid=author11 group by name,aid
8
kép Mészöly Géza ( ): Homokbánya (1872)
9
SQL SELECT funkciói Táblák összekapcsolása
Algebrai jele: r1 r2 illetve r1 feltétel r2 SELECT mlista FROM r1, r2,.. WHERE feltétel; Ha a feltétel elmarad Descartes szorzatot kapunk Kettőnél több tábla is összekapcsolható
10
SQL SELECT funkciói Táblák összekapcsolása
SELECT mlista FROM r1 INNER JOIN r2 ON feltétel …; Illesztési és normál feltételek szétválasztása Ha több táblában is azonos elnevezésű mező van, akkor a kibővitett mezőnevet használjuk: tábla.mező Ha hosszú a táblanév alias nevet használhatunk: tábla alias - Tábla szerepkört is alias névvel jelöljük DOLGOZO (kod PK, nev, beosztas, fonok REF DOLGOZO, fizetes) SELECT f.nev, d.nev FROM dolgozo f INNER JOIN dolgozo d ON f.kod = d.fonok WHERE d.beosztas = ‘raktáros’
11
SQL SELECT funkciói Az outer-join megadása
Algebrai jele: r1 +feltétel + r2 SELECT mlista FROM r1 LEFT | RIGTH | FULL OUTER JOIN r2 ON feltétel WHERE felt …; SELECT * FROM AUTO A RIGHT OUTER JOIN EMBER E ON A.TULAJ = E.IGSZ WHERE A.AR > ; T1 +T1.A = T2.A T2 T1 T2 A B A C A B A C 1 C 3 L 1 C 1 T 2 G 1 T 2 G 3 U 5 P 3 U 3 L
12
SQL SELECT funkciói Az aggregáció megadása
Algebrai jele: aggregációs-lista (r) SELECT aggregációs-lista FROM r; SUM(mez.kif) AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif) MIN(mez.kif) SELECT COUNT(*) FROM AUTO;
13
SQL SELECT funkciói Az aggregáció és csoportképzés megadása
Algebrai jele: csopképkifaggregációs-lista (r) SELECT aggregációs-lista FROM r GROUP BY csopképkif; SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS;
14
SQL SELECT funkciói Szűrés az elkészült csoportokból
Algebrai jele: feltétel(cskifagg-lista (r)) SELECT agg-lista FROM tábla GROUP BY cskif HAVING feltétel; SELECT TIPUS FROM AUTO GROUP BY TIPUS HAVING AVG(AR) > ; A csoportképzés előtti és utáni szelekció együttesen is szerepelhet: SELECT TIPUS FROM AUTO WHERE SZIN=”PIROS” GROUP BY TIPUS HAVING AVG(AR) > ; WHERE HAVING
15
SQL SELECT funkciói Az eredmény rekordok rendezése
SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2 ...; ASC DESC Nem része a relációs algebrának A második mező szerinti szempont csak az első egyezősége esetén lényeges SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY AR DESC, TIPUS; Lehet sorszámmal is hivatkozni a mezőkre SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY 3 DESC, 2;
16
SQL SELECT funkciói Táblák halmaz műveletei
Algebrai jele: r1 r2 , r1 r2 , r1 \ r2 SELECT … FROM r1 … UNION SELECT … FROM r2 …; SELECT … FROM r1 … UNION ALL SELECT … FROM r2 …; SELECT … FROM r1 … INTERSECT SELECT … FROM r2 …; SELECT … FROM r1 … MINUS SELECT … FROM r2 …; csak kompatíbilis szerkezetű táblák vonhatók össze a rendezés csak a legvégén szerepelhet egyszer SELECT nev FROM OKTATOK WHERE varos = ‘EGER’ UNION ALL SELECT nev FROM HALLGATOK WHERE varos = ‘EGER’ ORDER BY 1;
17
SQL SELECT funkciói Al-SELECT használata
A szelekciós feltételben számított érték is szerepelhet A számított értéket az előállító SELECT paranccsal adjuk meg SELECT … FROM … WHERE … (SELECT …) GROUP BY … HAVING (SELECT…) A SELECT kifejezések többszörösen egymásba ágyazhatók SELECT nev FROM DOLGOZOK WHERE fizetes > (SELECT AVG(fiz) FROM DOLGOZOK);
18
SQL SELECT funkciói Speciális szelekciós operátorok
kif LIKE minta sztring illeszkedése egy mintára (%,_) kif IS [NOT] NULL üres-e a kifejezés kif BETWEEN kif2 AND kif3 köztes érték vizsgálat EXISTS (al_SELECT) eredménytábla létezése kif IN lista | (al_SELECT) tartalmazás kif op ALL lista | (al_SELECT) minden kvantor kif op ANY lista | (al_SELECT) létezés kvantor
19
SQL VIEW objektum Származtatott táblák haszna: - parancs egyszerűsítés
- egyszerűbb végrehajtás - védelemv CREATE VIEW vnév (mnév1, …) AS SELECT … ; CREATE VIEW BETEGSZAB AS SELECT nev, beosztas, reszleg FROM dolgozok WHERE status = 2; Csak az előállító SQL parancs tárolódik, az adattábla nem Hivatkozáskor áll elő a tartalom - aktuális - lassú lehet
20
kép Mészöly Géza: Balatoni halásztanya (1877)
21
A relációs adatmodell Egyedi elemek - VIEW a kétszeres aggregációban
- DISTINCT - UNION ALL - self-join - CROSS JOIN - INNER JOIN - NATURAL JOIN .. USING - több táblás join - SNAPSHOT
22
kép Mészöly Géza: Chioggia (1883)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.