5.gyak.
Lekérdezések
kifejezése kiterjeszett
relációs
algebrában, külső
összekapcsolások, csoportosítás
és
összesítések, alkérdések
Feladatok: Lekérdezések
kiterjesztett relációs
algebrával és SELECT utasítással.
Relációs műveletek multihalmazokon.
Kiterjesztett műveletek a relációs algebrában:
ismétlődések
megszüntetése (delta),
összesítési műveletek, a csoportosítási művelet
(gamma),
csoportkiválasztási művelet (szigma), rendezés (tau). Ö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.
E3.
Kiterjesztett
relációs algebra
Segédanyag:Lekerd
(nézzük meg SQL-ben is + a Külső
join
művelet példáit is!)
Az alábbi lekérdezéseket
fejezzük ki SQL SELECT-tel, majd írjuk
át a lekérdezést
kiterjesztett relációs algebrai
operátorokat
felhasználó kifejezéssé, majd
rajzoljuk fel
a kifejezésfát is.
- Adjuk meg foglalkozásonként az átlagfizetést, de csak azokra a foglalkozásokra,
ahol
az átlagfizetés nagyobb mint 1500.
- Adjuk meg
osztályonként az osztály
nevét és az adott osztályon dolgozók
számát
a dolgozók száma (létszám) szerint növekvő sorrendben.
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 jelenítsük
meg,
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:
A szeret táblára
vonatkozó
relációs algebrai
feladatait átírtuk
SQL SELECT-re a 2.gyakorlaton, ennek a folytatása a
hányados á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-4.fejezet
feladatai)
és a táblák
létrehozása cr_dept_emp