II.
Témakör: SQL DDL, DML, DCL
Az előző I.Témakör Lekérdezések
kifejezése
>> Relációs
nyelvek és SQL SELECT (1-4.gyak)
Relációs tervezés
és SQL DDL, DML, DCL
>> 9.
DDL Adatdefiníciós nyelv (5.gyak.)
>> 10. DCL
Adatvezérlő nyelv (6.gyak./A)
>> 11.
Tranzakció
vezérlés (6.gyak./B)
>> 12. DML
Adatkezelő nyelv (6.gyak./C)
_______________________________________________________
5. gyak. (III.12)
- SQL DDL: CREATE TABLE, CREATE VIEW
- Lásd Az
órai
példa-adatbázissémák
4.1.példáját,
részletesen:
E/K modell,
és leképezése
relációsémákra.
SQL DDL.
Táblák
és megszorítások
(constraints) létrehozása.
SQL DML. A
megszorításoknak eleget tevő adatsorok felvitele.
- Segédanyagok (Márton
Ágnes) SQL
DDL (PDF)
- Oracle
Online
DocLibrary SQL
Reference HTML
PDF
- A gépes feladatokhoz lásd Oracle
adatbázisok
ELTE-s elérése 1.pontja
most az sqlplus
kliens programot használjuk
a panda.inf.elte.hu
gépen.
-- HF.: A tavaszi szünet utánra, a 6.gyak.-ra,
márc.26-ra beküldendő HF:
lásd Az
órai mintapélda
adatbázissémák 4.2.
példa Egyszerűsített egyetemi
hallgatói rendszer E/K modell
"felülvizsgálata", esetleges
javítgatása,
és leképezése
relációs
sémákra, hasonlóan,
mint az
1.Példában volt.
Segítségként a
2.Példa E/K
diagramjában nagybetűvel amiből
tábla lesz,
és kicsivel, ami beolvad
más táblába.
-- A
megvalósításhoz az 1.Példa SQL
script
alapján készítsük
el a 2.Példára
drop
table, create table, insert
utasításokból
álló beküldendő HF
scripttet,
amely egy egyszerű
szövegfájl legyen, a neve: ehakod_datum.txt legyen,
ahol az
ehakod helyére a saját ETR
azonosító .ELTE
nélkül, a dátumhoz
pedig a hhnn, vagyis a hónap
számokban és a nap, pl. abckaat.0326.txt,
vagyis .txt szövegfájl (nem
.doc) és kérem, hogy ftp-vel
(nem e-mailben).
-- HF beküldéséről a
részleteket,
lásd Zh
feladatok, beadandók beküldése
-- A 5.gyak.HF is a
ZH része, ezekben a táblákban
lesznek a ZH feladatok:
zömében
lekérdezések (select), de
lesz nézetek
létrehozása (create view),
és adatok
karbantartása nézeten keresztül
(insert, delete, update) feladatok.
"Súgó" a HF megoldáshoz:
1. A create table tanrend ... utasításban
összetett elsődleges kulcsot
kell definiálni, de egy táblában csak
egyetlen primary key lehet,
ezért mivel a kulcsmegszorítás
több oszlopra vonatkozik, azt nem
az oszlopdefinicióknál kell megadni, hanem
táblamegszorításként:
PRIMARY KEY ( <column expression> {, <column
expression>}... )
a szintaxis, amibe be kell helyettesíteni a megfelelő
oszlopneveket.
2. A másik create table eindex ...
utasításban a külső kulcs az lehet,
ami a hivatkozott táblában kulcs volt, pl. a
hallgato tábla eazon kulcsa,
de a másik tanrend táblanak az összetett
kulcsára való hivatkozás
megint több oszlopra vonatkozik, vagyis megint nem oszlop-,
hanem
táblamegszorításként kell
megadni:
FOREIGN KEY ( <column expression> {, <column
expression>}... )
REFERENCES <table identifier> [ ( <column
expr> {, <column expr>}... ) ]
a szintaxis, be kell helyettesíteni a megfelelő
tábla- és oszlopneveket.
3. Az insert... utasításnál arra kell
figyelni, hogy olyan adatsorokat
vigyünk fel a táblákba, amelyek eleget
tesznek a create table ...
utasításban megadott
megszorításoknak.
_______________________________________________________
6. gyak. (III.26) -
SQL DDL, DML, DCL
- Segédanyagok (Márton
Ágnes)
SQL
SELECT (PDF)
SQL
DDL (PDF)
SQL
DML (PDF)
SQL
DCL (PDF)
- A ZH-n csak az alábbi SQL
összefoglaló segédlet
használható:
sql_anyag.txt
(Hajas Csilla)
Témakörök:
SQL DDL
-- folyt. nézettáblák
létrehozása, egyszerű és
összetett nézetek
SQL SELECT
-- ismétlés -
alkérdések használata a WHERE
és HAVING
utasításrészben,
korrelált
alkérdések egymásba
ágyazása
-- INLINE nézet (alkérdések a FROM
utasításrészben)
SQL DCL
-- táblákhoz és a
nézetekhez jogok
kiadása/átadása: GRANT
és
visszavonása: REVOKE
-- tranzakciókezelés alapjai,
érvényesítés: COMMIT,
és visszagörgetés:
ROLLBACK
és mentési
pontok: SAVEPOINT
SQL DML
-- adatok karbantartása INSERT, DELETE, UPDATE
(mentési pontok
alkalmazásával, később
visszagörgetés)
-- adatok karbantartása nézeteken
keresztül
SQL SELECT
-- hierarchikus lekérdezések, a PRIOR művelet,
CONNECT BY
Feladatok:
1.feladat: Azoknak a hallgatóknak az adatai, akik
legalább azokat
az
'adatbázis' tárgyat vették
fel,
amelyet 'Kovács Pál'
is felvett (minden, vagyis a
hányados kifejezése).
2.feladat: Mennyi hallgató van és
hány különböző
városból jöttek?
3.feladat: Adjuk meg az
ösztöndíjak
átlagát és
összegét, de az
összegbe
számoljuk
bele azokat is, akinek ismeretlen az
ösztöndíja
(valamilyen
értékkel, ill. H.F. az
átlagösztöndíjjal) (NVL)
4.feladat: A tárgyak adatai és az, hogy
kik vették fel az adott tárgyat,
melyek azok
a tárgyak, melyeket nem vettek fel
hallgatók
(NOT IN helyett KÜLSŐ JOIN)
5.feladat: Melyek
azok a tárgyak, amelyet a legtöbben vettek fel?
a.) NÉZET-tel vagy
b.) FROM alkérdés
-- INLINE
nézettel
6.feladat: Egyszerű és összetett
nézettáblák
létrehozása
és használata.
Adatok
karbantartása (INSERT, DELETE, UPDATE)
adattáblán ill. nézeten
keresztül,
és nézni ezek egymásra
hatását,
közben
mentési pontokat adjunk meg,
ahova visszagörgetjük.
7.feladat: Hierarchikus lekérdezések, a
PRIOR művelet, CONNECT BY
Megoldásokat lásd 05_sql.txt
(jelszóval)
_______________________________________________________
7. gyak. (IV.02) - I.
ZH (géptermi SQL)
-- A 5.gyak.HF is a ZH
része, ezekben a táblákban
lesznek a ZH feladatok:
zömében
lekérdezések (select), de
lesz nézetek
létrehozása (create view),
és adatok
karbantartása nézeten keresztül
(insert, delete, update) feladatok.
Segédlet: sql_anyag.txt