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
   
Előző 4.gyak                AB1gyak (főmenü)             Következő 6.gyak: I.ZH 
   
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.
   

A gépes gyakorlati rész áttekintése: 
> 1. Demo példák 
> 2. Órai gyakorló feladatok  
> 3. A példatár feladatai önálló gyakorlásra: 3.fejezet feladatai
   
1.Demo példák: HR séma tábláihoz (lásd Oracle-doksik)
 

1.6. Összekapcsolások az SQL-ben
     
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
 
Segédanyag: >> Halmazműveletek (en)
 

1.8. Alkérdések. Korrelált alkérdések.
 
Segédanyag: >> Alkérdések I. és Alkérdések II. (en)
 
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!
   
A gyakorlatok feladatai itt: table_dolgozo.txt  -- táblák létrehozása: create_dolg
Feladatok az 5.gyakorlatra
 
- 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 
   

Fel a lap tetejére                          Vissza az AB1gyak oldalára (főmenü)