Professional Documents
Culture Documents
Műveletek, SQL
2 Kiegészítések a múlt héthez
Gyakorlat: a feladatokhoz forrás: az előadás fóliák,
esetleg az adott gyakorlat fóliái, a dokumentáció
BCE 2018
3 Ismétlő kérdések – kahoot.it
Bal oldal a jobb oldal ellen
Állítsanak össze 5-5
tesztkérdést: 1 jó, 1-3 rossz
válasz
A kész kahoot-ot osszák
meg velem
A bal oldal kérdéssorát a
jobb, a jobb oldal
kérdéssorát a bal oldalnak
kell megválaszolni
Két fődíj van
BCE 2018
4 Miről lesz ma szó?
•Minden
adatmodell
Műveletek műveletei
•Relációs
műveletek
•A nyelv részei
•Select
SQL •Adattípusok
műveletei,
függvényei
BCE 2018
5 Miről lesz ma szó?
•Minden
adatmodell
Műveletek műveletei
•Relációs
műveletek
•A nyelv részei
•Select
SQL •Adattípusok
műveletei,
függvényei
BCE 2018
6 Adatbázis, adatmodell
Adatbázisnak a valós világ egy részhalmazának leírásához
használt adatok összefüggő, rendezett halmazát nevezzük.
(Gajdos Sándor)
Modellezés
BCE 2018
7 Minden adatbázisra jellemző műveletek
(érték) Beszúrás
(érték) Törlés
(érték) Módosítás (= Törlés + Beszúrás)
(jellemző) Átnevezés
(jellemző) Törlés
(jellemző) Létrehozás
(adatszerkezet) Létrehozás
(adatszerkezet) Törlés
… stb.
BCE 2018
8 Relációs műveletek
A rendszer zárt a műveletekre: a műveletek 1 vagy 2
relációt alakítanak át egy relációvá
Művelet Reláció3
BCE 2018
9 Egyoperandusú műveletek
Szokásos műveletek:
Kiválasztás, vagy korlátozás (SELECT v. RESTRICT)
Vetület, vagy projekció (PROJECT)
Átnevezés (RENAME)
Kibővített műveletek
Beszúrás (INSERT): új sor
Bővítés (EXTEND), vagy kibővített vetület: új oszlop
Csoportfüggvény képzés (GROUPING)
BCE 2018
10 Műveletek vizuálisan
RENAME EXTEND
O1 O2 O3 O4 O5 O1 O2_2 O3 O6
a1 a1
a2 SELECT a3
a3 a4
a4 a7
a5 a8
a6 a10
a7 INSERT
a8
a9
BCE 2018
PROJECT
11 Kiválasztás és vetület
Kiválasztás Vetület
Csak a megadott feltételnek Csak a kiválasztott
megfelelő rekordok attribútumok szerepelnek az új
szerepelnek az új relációban relációban
Az új reláció attribútumai Mivel a halmaz elemei nem
ismétlődhetnek, előfordulhat,
ugyanazok, mint az eredeti hogy a rekordok száma is
reláció attribútumai kevesebb lesz
BCE 2018
13 Halmazműveletek
Az unió, kivonás és metszet csak unió-kompatibilis relációkra
működik:
A két relációban az attribútumok száma és fő adattípusa megegyezik
(gyakorlatban az attribútumok sorrendjének is meg kell egyeznie)
Az uniónál az eredményhalmaz elemeinek száma lehet, hogy
kevesebb lesz a két halmaz elemszámának összegénél (az
ismétlődések kimaradnak)
A kivonás művelete nem felcserélhető
A metszet levezethető a kivonásból, de külön műveletként is
szerepel
A keresztszorzat bármilyen két reláció között működik
Az attribútumok száma a két forrás reláció attribútumszámának összege (ha
voltak azonos nevű attribútumok, akkor azokat át kell nevezni)
A rekordok száma a két forrás reláció rekordszámának szorzata
BCE 2018
14 Halmazműveletek - UNION
R1
O1 O2 O3 O4 R1 UNION R2
a1 R3
a2 O1 O2 O3 O4
a3 a1
R2 a2
O1 O2 O3 O4 a3
a2 a4
a4 a6
a6 a8
a8
BCE 2018
15 Halmazműveletek - MINUS
R1
O1 O2 O3 O4 R1 MINUS R2
a1 R3
a2 O1 O2 O3 O4
a3 a1
R2 a3
O1 O2 O3 O4 R2 MINUS R1
a2 R4
a4 a4
a6 a6
a8 a8
BCE 2018
16 Halmazműveletek - INTERSECT
R1
O1 O2 O3 O4 R1 INTERSECT R2
a1 R3
a2 O1 O2 O3 O4
a3 a2
R2
O1 O2 O3 O4
R1 MINUS (R1 MINUS R2)
a2
a4
a6
a8
BCE 2018
17 Halmazműveletek – KERESZTSZORZAT
R1 R1 X R2
O1 O2 O3 R3
a1 O1 O2 R1.O3 R2.O3 O4 O5 O6
a2 a1 x1
a3 a2 x1
R2 a3 x1
O3 O4 O5 O6 a1 x2
x1 a2 x2
x2 a3 x2
OSZLOPOK SZÁMA: 3 + 4 = 7
SOROK SZÁMA: 3 * 2 = 6
BCE 2018
18 Komplex művelet – JOIN
R1 R1 JOIN R2 (O3)
O1 O2 O3 R3
a1 x2 O1 O2 O3 O4 O5 O6
a2 x2 a1 x2
a3 x4 a2 x2
R2
O3 O4 O5 O6
x1
x2
BCE 2018
19 Miről lesz ma szó?
•Minden
adatmodell
Műveletek műveletei
•Relációs
műveletek
•A nyelv részei
•Select
SQL •Adattípusok
műveletei,
függvényei
BCE 2018
20 Structured Query Language
ANSI és ISO standard, de nagyon megengedő eltérő nyelvjárások
is megfelelnek a szabványnak
Nem procedurális, hanem deklaratív nyelv
A végrehajtás módját az adatbáziskezelő rendszer részeként a lekérdezés
optimalizáló határozza meg
Strukturált lekérdező nyelv, de nem csak lekérdezésre alkalmas:
DDL: data definition language (CREATE, ALTER, DROP)
DML: data manipulation language (INSERT, UPDATE, DELETE)
DQL: data query language (SELECT)
TCL: transaction control language (COMMIT, ROLLBACK, SAVEPOINT)
DCL: data control language (GRANT, REWOKE)
További típusok: pl. procedurális nyelvi elemek, stb.
BCE 2018
21 Szintaktikai elemek
Nem case-sensitive, kis és nagybetűk szabadon használhatóak
Az utasítás bárhol (két szó között) több sorba törhető, indentálható
;
Az utasítás végét mindig pontosvessző ( ) zárja le
Az objektumok neve nem tartalmazhat különleges karaktert, szóköz
helyett alulvonást használunk (_)
Különleges karakterek esetén kötelező az idézőjelek használata (idézőjelben
a kis-nagybetű is megmarad, alapból nagybetűsen kerül minden a
katalógusba)
.
A megadás pontosítása: séma objektumnév oszlopnév .
Szöveg megadása egyszeres aposztrófok között lehetséges
Számokban tizedes pont van
BCE 2018
22 Relációs műveletek SQL-ben
Egyoperandusú műveletek Kétoperandusú műveletek
Szokásos műveletek: Halmazműveletek
Átnevezés (RENAME) – SELECT Unió (UNION) – UNION
lista (AS)
Különbség (MINUS) – MINUS
Kiválasztás, vagy korlátozás
(SELECT v. RESTRICT) – WHERE Metszet (INTERSECT) – INTERSECT
BCE 2018
23 Lekérdezés példa I.
Select lista: Select lista: Select lista:
vetület átnevezés bővítés
BCE 2018
24 Segédletek
Tábla szerkezetének lekérése sql plus utasítással
DESCRIBE táblanév (rövidítve: DESC táblanév)
desc minta.alkalmazott
Segédtábla teszteléshez
DUAL: publikus szinonima, nem kell elé sémanév
Egyetlen oszlopa van: DUMMY
Egyetlen rekordja van
Konstansok, rendszerváltozók lekérdezésére, konstans feltételek
tesztelésére szoktuk használni
BCE 2018
25 Matematika v. valóság
NULL érték
Halmaz és zsák szemantika
A zsákban lehet ismétlődés
SELECT: alapból zsák szemantika
SELECT DISTINCT: halmaz szemantika
A DISTINCT kulcsszót csak egyszer kell kiírni a select lista elejére
Halmazműveletek (UNION, MINUS, INTERSECT)
Alapból halmaz szemantika
UNION ALL: zsák szemantika
BCE 2018
26 Lekérdezések példa II.
ZSÁK
HALMAZ
HALMAZ
HALMAZ
ZSÁK
BCE 2018
27 Where feltétel
Nem kötelező elem
Ha van, akkor csak egy van, lehet egyszerű, vagy
összetett
Összetett feltétel: logikai műveletekkel, használjunk zárójeleket!
Kiértékelés:
A FROM után álló reláció minden rekordjára el kell dönteni, hogy
a feltétel igaz-e
TRUE: a rekord része az eredmény relációnak
FALSE: a rekord nem része az eredményrelációnak
UNKNOWN: a rekord nem része az eredményrelációnak
BCE 2018
28 Where példa
SELECT 'Lefutott' AS eredmény FROM dual
WHERE NULL + 3 IS NULL OR (NULL + 3 = 3 AND NULL = NULL);
Run script:
BCE 2018
29 Néhány függvény
A dokumentációban külön fejezet (7 Functions)
Az oszlopfüggvények (Single-Row functions)
csoportosítása elsősorban adattípus szerint van
Szám függvények, pl. ABS, ROUND
NULL kezelő függvények:
NVL
Ha az első érték NULL, akkor a másodikat adja eredményül
A két érték adattípusának egyformának kell lennie
COALESCE
Kiterjesztett NVL függvény
Az első nem null értéket fogja eredményül adni
BCE 2018
30 NVL függvény kiváltása
BCE 2018
31 Rendezés
Nem relációs művelet
A SELECT utolsó lépése írásban és kiértékelésben is
Megadása több módon lehet (akár vegyesen is)
Kifejezéssel (oszlopnév vagy függvény)
Aliassal
Az eredményreláció oszlopszámával
Lehet növekvő vagy csökkenő
ASC (alapértelmezett), DESC
Lehet többszintű
A rendezési szempontokat vesszővel elválasztva kell megadni
BCE 2018
32 Rendezés példák
BCE 2018
33 Források
Quittner Pál, Kardkovács Zsolt és Kerepes Tamás
előadásai
Oracle Academy anyagai
Elmasri, Navathe: Fundamentals of Database Systems
(6th edition)
Gajdos Sándor: Adatbázisok. Műegyetemi jegyzet.
Oracle dokumentáció
BCE 2018