- 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 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
- 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
Budapest,
2008. február 11. Utolsó
módosítás: 2008.
márc.18.