Bevezetés
* Adatbázis (DB),
Adatbázis-kezelő rendszer
(DBMS) felépítése
* Adatbázis-kezelő nyelvek, SQL részei: QL, DDL,
DML,
DCL
* SQL nyelv története, szabványok,
utasítások
áttekintése,
lásd wikipedia
* PÉLDÁK
relációsémákra,
relációkra, hiányos adatokra (NULL)
* Oracle kliens-szerver architektúra, kliens programok
használata
Feladatok
az Oracle rendszer
alaptábláival: dept,
emp,
salgrade táblák
- Írjuk át a jelszavunkat mind az oradb mind az
ablinux csatlakozásnál
lásd Adatbázisok
elérése és sqlplus
parancsok sqlPlus.pdfsqlplus.txt
- Hozzuk létre a dept, emp, salgrade
táblákat a scott.dept (sila.dept), stb.
táblákból: CREATE
TABLE dept AS SELECT * FROM sila.dept; stb.
- Vizsgáljuk meg a táblák
szerkezetét, az adatokat (és hiányos
adatokat)
- Egyszerű lekérdezések: SELECT, FROM, WHERE,
ORDER BY
- Sorok kiválasztása és
rendezése. Vetítés (oszlopok
kiválasztása).
1. SQL
utasítások
áttekintése
(1.gyak./A)
- QL Lekérdező nyelv
>> 1-4.gyak.(2-8.téma)
- DDL Adatdefiníciós nyelv >>
5.gyak. ( 9.téma)
- DCL Adatvezérlő nyelv
>> 6.gyak. (10.téma)
- Tranzakció
vezérlés >> 6.gyak.
(11.téma)
- DML Adatkezelő nyelv
>> 6.gyak. (12.téma)
1.1. Lekérdező nyelv (Query language)
SELECT
1.2. DDL. Adatdefiníciós nyelv (Data
definition language)
CREATE
ALTER
DROP
TRUNCATE
RENAME
COMMENT
Rel. algebrai alapműveletek
átírása SQL-be
1. feladat: Milyen tárgyakat vett fel Kiss Pál?
2. feladat: Milyen tárgyakat nem vett Kiss Pál?
3. feladat: Kinek a legnagyobb az ösztöndija?
lásd 02_sql.txt
(jelszóval)
Házi feladat
(Rel.alg.alapműveletek átírása
SQL-be) HF1. Kik
vettek fel legalább két
tárgyat?
HF2. Kik vettek fel legfeljebb két
tárgyat?
HF3. Kik vettek fel pontosan két
tárgyat?
SQL Developer
Oracle szoftvert
használjuk,
lásd Oracle
adatbázisok
ELTE-s elérése 4.pontját. Feladatok. Where
felt, Oracle függvények, csoportosítás
Új anyag: az SQL SELECT lekérdezési
lehetősége bővebb, mint
amit a relációs algebrában
láttunk. Erre végezzünk feladatokat:
SELECT WHERE feltétele, GROUP BY
csoportosítás,
és FÜGGVÉNYEK. (Az
alkérdések a köv.héten
lesznek.)
4. feladat: több tábla
összekapcsolásából sorok
kiválasztása minél
érdekesebb keresési feltételeket ill
SQL függvényeket beleírva ...
Kik azok a hallgatók (+függvények)
akiknek
- odija 10000 és 30000 között van (between
and)
- a neve K betűvel kezdődik (like),
- vagy PTM vagy MAT szakosok (in),
5. feladat: Dátumfüggvények: a fentit
folytatva:
- a 200_-es években íratkozott be (konv.fv, like)
- 2005.09.01 - 2006.12.31 között
vizsgázott valamiből
(between and)
6. feladat: Csoportfüggvények a hallgató
táblára készítsük
el
az odijra vonatkozó
statisztikákat:
hány sora van a táblának,
ebből hány sorban van kitöltve
a az odij oszlop,
mennyi a
legnagyobb és legkisebb odij, mennyi az
átlag
és összeg?
7. feladat: Group by, lásd az előző feladatot, csak most
szak
szerinti csoportositásban.
Egészítsük ki having
záradékkal,
csak azokon a szakokon nézzük
meg a
statisztikákat, ahol
kettőnél többen
járnak.
HF: A függvényeknek utána
nézhetünk az Oracle Online Docban.
Függvények, különös
tekintettel a dátum és
csoportfüggvényekre...
HF4. (dátum
függvények)
Hány naposak és hónaposak vagyunk?
HF5. (dátum
függvények)
Listázzuk ki hallgatókként, hogy
hány
napja ill.
hány hónapja íratkoztak be az
egyetemre?
HF6. (konverziós
függvények)
Listázzuk ki hallgatókként, hogy
hány
éve járnak egyetemre?
HF7. (csoport függvények)
Melyek azok a szakok,
amelyre 3-nál
kevesebb
hallgató jár?
HF8. (csoport függvények) Kik
azok a
hallgatók, akik 3-nál több
tárgyat vettek fel?
4. Oracle
függvények (3.gyak./A)
A leggyakrabban használt Oracle
függvényeket, lásd sql_anyag.txt
(elég sok függvény, ezeket nem kell
tudni, csak alkalmazni kell tudni)
5.
Csoportosítás (3.gyak./B)
SELECT column,] group_function(column), ...
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column]; _______________________________________________________ 4. gyak.
(III.5) - SELECT -->
join, hányados,
alkérdések
HF
beküldéséről
(így kell majd a géptermi Zh
megoldásait is küldeni)
ha nincs kész a múlt heti
HF, akkor küldj
üres fájlt, ha kész, akkor
a megoldást küld
el, lásd Zh
feladatok, beadandók beküldése
Feladatok.
SQL SELECT: WHERE-be
beágyazott
alkérdések: (a) t
in (SFW) (b) t
theta (SFW) (c) t
theta ANY/ALL(SFW) (d) EXISTS
(SFW)
valamint a relációs algebra
származtatott
műveletei, mint
- a metszet
- az
összekapcsolások (join, stb,
külső összekapcsolás)
- a
hányados kifejezése SQL-ben.
1.feladat: Relációs algebra
származtatott műveleteit fejezzük ki
SQL-ben, kezdjük a metszettel
(lásd múlt heti HF3)
Az SQL-ben a metszet: (SFW) intersect (SFW)
Kik vettek fel pontosan két
tárgyat?
2.feladat: Természetes összekapcsolás
kifejezése alkérdésekkel
(eddig where-ben adtuk meg az
összekapcsolási feltételeket)
majd megnézzük az
ANSI SQL kompatibilis JOIN szintaxissal,
de a mai
órán alkérdésekkel
lesz:
Alkérdések (a) t
in (SFW)
Kik vettek fel Adatbázisos tárgyat?
3.feladat: Alkérdések (b) t
theta (SFW),
ahol theta: = <> < <=
> >=
és
a (SFW) pontosan egy sort ad vissza.
Ki(k) a legkorábban beiratkozott
hallgatók?
4.feladat: Alkérdések (c) t
theta ANY/ALL(SFW),
Az előző kérdést oldjuk meg
így is...
Kik azok a hazon (hallgatók), akik MINDEN
tárgyat felvettek?
vagyis Kik azok a hazon (.. felv f1), akikhez nincs
olyan tárgy
(not exists .. f2) amit ne vettek volna fel (not exists f3)
6.feladat: Alkérdések (d) EXISTS
(SFW)
Kik azok a hazon (hallgatók),
akik LEGALÁBB azokat a
tárgyakat vették
fel, mint a HAZON='KOPLAAT' vagyis
átfogalmazva az előzőhöz
hasonlóra:
Kik azok, akik minden olyan tárgyat felvettek,
mint amit
a KOPLAAT felvett?
HF További feladatok beágyazott
alkérdésekkel
önálló
gyakorlásra!
HF: A JOIN szintaxisnak utána
nézhetünk az Oracle Online Docban.