Feladatok: Lekérdezések
kiterjesztett relációs
algebrával és SELECT
utasítással. Összekapcsolások
különböző fajtái, külső
összekapcsolások (outer join)
A hányados (minden-típusú
kérdések)
kifejezése relációs
algebrában, kiértékelő fát
átírva SQL-be, illetve SQL
korrelált
alkérdésekkel felírva.
Összefoglalás.
A táblás gyakorlati rész
áttekintése:
Az 1.gyak.
feladatait felírtuk relációs
algebrában
lineáris jelöléssel,
kifejezőfával,
majd ezt átírtuk SQL
SELECT utasításra. Nézzük meg a bonyolultabb lekérdezéset
(például maximum érték
kifejezése vagy a hányados) a relációs algebrában, majd
a
kifejezőfát átírva SQL-be
és ezt hasonlítsuk össze többféle más SQL SELECT
megoldással. Vizsgáljuk meg a SELECT
utasításokhoz tartozó kiterjesztett
relációs
algebrai
kiértékelő fát, elemezzük ki,
hogy mikor melyik megoldás lehet hatékonyabb.
Segédanyag: >> Összekapcsolások
(hu)
>> nézzük meg a Példákat
joinra és a Külső
join
művelet példáit is! Feladat külső joinra: Adjuk
meg
osztályonként a
dolgozók összfizetését
(department_name,
sum(salary)) formában hr.employees és
hr.departments
táblák adatai alapján
1. Azok az osztályok is jelenjenek meg ahol nem dolgozik
senki, ott az összfizetés 0 legyen.
2. Ha van olyan dolgozó, akinek nincs osztálya,
azokat egy 'FIKTIV' nevű osztályon
gyűjtsük
össze.
3. Csak azokat az osztályokat írjuk ki,
amelyek nevében van 'B' betű, plusz a
FIKTIV
osztályt.
-- Megoldás/ellenőrzésként:
lásd itt 1.7.
Halmazműveletek
Feladat:
Az első gyakorlat tábláira
vonatkozó
relációs algebrai
feladatokat
átírtuk SQL SELECT-re, ennek a
folytatása a HÁNYADOS művelet
átírása
relációs algebrai alapműveletekkel, majd az ehhez
tartozó kiértékelő fát
írjuk át SQL-be, illetve SQL
korrelált
alkérdésekkel felírva is
nézzük meg.
-- Megoldás/ellenőrzésként:
lásd itt 2.)
Az
órai gyakorlatok
példái: Fejezd
ki a
lekérdezéseket SQL SELECT-tel!
- Adjuk meg, hogy mely dolgozók fizetése jobb,
mint a saját osztályán (ahol dolgozik)
dolgozók
átlagfizetése (korrelált
alkérdéssel)
- Adjuk meg, hogy mely dolgozók
átlagjövedelme jobb,
mint a saját
osztályának az
átlagjövedelme,
ahol a jövedelem a fizetés és
jutalék összege, ahol nincs
jutalék
megadva, ott a 0
helyettesítő értékkel
számoljunk (NVL függvény
alkalmazása).
- Adjuk meg, hogy az egyes osztályokon hány ember
dolgozik (azt is, ahol 0=senki).
- Adjuk
meg
osztályonként a
dolgozók összfizetését
az osztály
nevét megjelenítve
ONEV, SUM(FIZETES) formában,
és azok az osztályok is jelenjenek meg
ahol
nem dolgozik
senki, ott az összfizetés 0 legyen.
Valamint ha van olyan dolgozó,
akinek nincs megadva, hogy mely
osztályon dolgozik, azokat a dolgozókat
egy 'FIKTIV' nevű osztályon
gyűjtsük
össze. Minden osztályt a nevével
plusz
ezt a 'FIKTIV' osztályt is
jelenítsük meg az itt dolgozók
összfizetésével
együtt. 3.) A
példatár feladatai
önálló
gyakorlásra:
-- Lásd Feladatok.pdf
(3.fejezet
feladatai)
és a táblák
létrehozása cr_dept_emp