Upload
keelia
View
54
Download
4
Embed Size (px)
DESCRIPTION
Adatbázis rendszerek I. Kovács László. Az SQL nyelv elemei. 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). - PowerPoint PPT Presentation
Citation preview
Adatbázis rendszerek I
Az SQL nyelv elemei
Kovács László
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
(Gartner Group)
Számos feladat specifikus SQL DBMSlétezik a piacon
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 csakkésőbb derülnek ki. Látszólag működik a rendszer, …de nem mindig helyesen vagy nem hatékonyan !!
zsiráf-mozaikok
„Aki nem mestere, az hóhéra” (Nagymamám)
SQL használata
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 szinte végtelen kombinációs, bővítési lehetőséggel rendelkezik
A SELECT parancs több alakban is megjelenhet
ide kaméleonSELECT … FROM …SELECT … INTO … FROM …CURSOR … AS SELECT …
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-SQLE-SQLSQL
PL-SQLT-SQL
Oracle SQL referencia: www-db.iit.uni-miskolc.hu/…
SQL használata
Az SQL szabvány és az egyes SQL implementációkszoros kölcsönhatásban állnak egymással
- ismerni kell a szabványt- ismerni kell a konkrét SQL felületet
- 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- …
FROM T1 OUTER JOIN T2 ON fFROM T1 = (+) T2 WHERE f
WHERE CTOD(‘2003.02.10’)…WHERE TO_DATE(‘2003.02.10’,…)WHERE CONVERT(‘2003.02.10’,…)WHERE {2003.02.0}…
ANSI SQL kompatibilitás
matyusa babaegymásba ágyazott
SQL használata
Könyvekben és on-line módon számos SQL oktató forrás áll rendelkezésreAki keres, az talál
www.w3schools.com/sql www.1keydata.com/sql/ www.sqlcourse.com www.geocities.com/SiliconValley /Vista/2207/sql1.html www.firstsql.com/tutor.htm www.sql-tutorial.net
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
kép
Mészöly Géza (1844-1887): Homokbánya (1872)
SQL SELECT funkciói
Algebrai jele: r1 r2 illetve r1 feltétel r2
AUTÓ
EMBER
rsz tulaj
r1
r4
r6
3
1
4
id név
1
2
3
4
Laci
Ágota
János
Zoltán
összekapcsolás
rsz tulaj id név
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
r1
r4
r6
3
1
4
1 Laci
1 Laci
1 Laci
2 Ágota
2 Ágota
2 Ágota
3 János
3 János
3 János
4 Zoltán
4 Zoltán
4 Zoltán
Táblák összekapcsolása
SELECT mlista FROM r1, r2,.. WHERE feltétel;
Ha a feltétel elmaradDescartes szorzatotkapunk
Kettőnél több táblais összekapcsolható
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 dON f.kod = d.fonok WHERE d.beosztas = ‘raktáros’
A B
1
2
3
C
G
U
A C
3
1
5
L
T
P
T1 +T1.A = T2.A T2T1 T2
A C
1
3
T
L
A B
1
2
3
C
G
U
Az outer-join megadása
SELECT mlista FROM r1 LEFT | RIGTH | FULL OUTER JOIN r2 ON feltétel WHERE felt …;
SELECT * FROM AUTO A RIGHT OUTER JOIN EMBER EON A.TULAJ = E.IGSZ WHERE A.AR > 6000000;
Algebrai jele: r1 +feltétel + r2
SQL SELECT funkciói
Algebrai jele: aggregációs-lista (r)
SUM(mez.kif) AVG(mez.kif)COUNT(mez.kif) MAX(mez.kif)MIN(mez.kif)
AUTÓ
rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
ár csoportképzés
kifejezés:
kiírandó: COUNT()
r7 Opel 2570
r11 Fiat 850
r8 Opel 1000
Count()
8
SELECT COUNT(*) FROM AUTO;
Az aggregáció megadása
SELECT aggregációs-lista FROM r;
SQL SELECT funkciói
SQL SELECT funkciói
Algebrai jele: csopképkifaggregációs-lista (r)
AUTÓ
rsz tipus
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
ár csoportképzés
kifejezés: tipus
kiírandó: tipus, AVG(ár)
r7 Opel 2570
r11 Fiat 850
r8 Opel 1000
tipus
Fiat 1025
Opel
Mazda 870
Skoda 1500
Suzuki 1400
AVG(ár)
1500
Az aggregáció és csoportképzés megadása
SELECT aggregációs-lista FROM r GROUP BY csopképkif;
SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS;
Szűrés az elkészült csoportokból
SELECT agg-lista FROM tábla GROUP BY cskif HAVING feltétel;
SELECT TIPUS FROM AUTO GROUP BY TIPUS HAVING AVG(AR) > 10000000;
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) > 10000000;
WHERE HAVING
SQL SELECT funkciói
Algebrai jele: feltétel(cskifagg-lista (r))
Az eredmény rekordok rendezése
SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2 ...;
ASCDESCNem 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 BYAR DESC, TIPUS;
Lehet sorszámmal is hivatkozni a mezőkre
SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY3 DESC, 2;
SQL SELECT funkciói
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 ALLSELECT nev FROM HALLGATOK WHERE varos = ‘EGER’ ORDER BY 1;
SQL SELECT funkciói
Al-SELECT használata
A szelekciós feltételben számított érték is szerepelhetA 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);
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
SQL SELECT funkciói
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
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
Mészöly Géza: Balatoni halásztanya (1877)
kép
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
Mészöly Géza: Chioggia (1883)
kép