4.GYAKORLAT (ADATBÁZISOK)
  

    
   Ismétlés: SQL egytáblás lekérdezések, vetítés és kiválasztás műveletei
   - Oracle segédanyagok: SQL02_select_lista.pdf;  SQL03_where_feltetel.pdf
     Az Oracle demo lekérdezésekhez elég szinonimát használni: createHRsyn.txt
   
   I.rész: Sorfüggvények: Az SQL SELECT utasítás SELECT és WHERE záradékaiban 
   az attribútumok különböző típusaira kifejezések és a sorfüggvények használhatók.
   - Oracle segédanyag: SQL05_fuggvenyek.pdf  példák beépített sorfüggvényekre
   - Oracle Példatár 1.fejezet Egyszerű lekérdezések Sorfüggvények 19.o-44.o.pdf
   - Oracle beépített adattípusok: Oracle_tipusok.txt (összefoglaló), részletesen:
     SQL Lang.Ref. -> 2 Basic Elements -> Data Types -> Oracle Data Types.html
   - A fontosabb sorfüggvények: Oracle_fv.pdf (összefoglaló), részletesen példákkal:
     SQL Lang.Ref. -> 7 Functions -> Single-Row Functions -> Oracle Functions.html
   
   - Az alábbi órai feladatokhoz a táblák, mint eddig createDolgozo.txt (volt)
       Osztaly (oazon, onev, telephely)
       Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon)      
       Fiz_Kategoria (kategoria, also, felso)
      
--- Numerikus függvények 
 1. Adjuk meg dolgozók nevét és az éves fizetését százasokra kerekítve, akik
     a 10-es osztályon dolgoznak. (SQL Lang.Ref. -> ROUND itt szereplő példák)
 2. Adjuk meg azon dolgozókat, akik fizetése osztható 15-tel.
 3. Adjuk meg a dolgozók fizetéseinek négyzetgyökét két tizedesre, és ennek egészrészét.
    
--- Karakterkezelő függvények
     (Megj.: 4.f. és 5.f. volt 2.gyak. where feltételben: LIKE feltétel, de itt most
      többféle megoldást is keressünk sorfüggvényekkel -> SUBSTRINSTR, stb)
 4. Adjuk meg azon dolgozókat, akik nevének második betűje 'A' 
 5. Adjuk meg azon dolgozókat, akik nevében van legalább két 'L' betű.
 6. Adjuk meg a dolgozók nevének utolsó három betűjét.
 7. Adjuk meg azon dolgozókat, akik nevének utolsó előtti betűje 'T'.
   
--- Konverziós függvények és dátumkezelő függvények
 8. Kik azok a dolgozók, akik '1982.01.01.' után léptek be? (TO_DATE-re példák)
 9. Adjuk meg, hogy hány hete dolgozik a cégnél ADAMS és milyen hónapban
     és milyen nap (hétfő, kedd, stb. magyar/angol) lépett be (dátum formátumok)
10. Adjuk meg azokat a dolgozókat, akik keddi napon léptek be.
     (Vigyázzunk a visszaadott értékkel!)
11.*Adjuk meg, hogy hány nap/hónap volt KING és JONES belépési dátuma között?
      (Tegyük fel, hogy pontosan egy KING és pontosan egy JONES nevű dolgozó van) 
      [* 5.gyak.visszatérünk: skalár helyett skalárérétékű (SFW) lekérdezés is lehet!]
12. Adjuk meg, hogy milyen napra esett KING belépési dátuma hónapjának utolsó napja.
13. Adjuk meg, hogy milyen napra esett KING belépési dátuma hónapjának első napja.
14. Számoljuk ki, egészekre kerekítve, hogy a mai nap hány naposak vagyunk,
      azt is, hogy hány hetesek, továbbá hány hónaposak vagyunk (DUAL tábla)
 
--- Nullértéket kezelő függvények és speciális függvények 
     SQL Lang.Ref. -> 7 Functions -> Single-Row Functions -> NULL-Related Functions
     -> NVL, NVL2, COALESCE  +Lásd még SQL Lang.Ref. -> 5. Expressions -> CASE kif.
15. Adjuk meg a dolgozók éves jövedelmét, ahol a havi 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).
+1.2.példa (Kende-Nagy) Adjuk meg a dolgozók nevét, foglalkozását és jutalékát
      oly módon, hogy akinek nincs jutaléke, annál azt írja ki, hogy "Nem jár jutalék".
      (DECODE függvénnyel és CASE kifejezéssel is)
+1.6.példa (Kende-Nagy) Listázza ki a dolgozók nevét és fizetését egy oszlopban,
      legyen a két oszlop között az elvásztójel a kettőspont, és a fizetésük szerint
      csökkenően írjuk ki, valamint jelenítsük meg a fizetést grafikusan úgy, hogy
      a fizetést 1000 Ft-ra kerekítve, minden 1000 Ft-ot egy '#' jel jelöl.
      (például 5000 -> #####, 800 -> #) (LPAD és RPAD függvények)
+1.8.példa (Kende-Nagy) Listázzuk ki azoknak a dolgozóknak a nevét, fizetését,
       jutalékát, és a jutalék/fizetés arányát két tizedesjegy pontosságig, akiknek
      a foglalkozása eladó (SALESMAN) vagy hivatalnok (CLERK), fizetés szerint
      csökkenően rendezve.
            

   
   II.rész: Összesítések és csoportosítás: Az SQL SELECT utasítás többi záradéka,
   GROUP BY, HAVING és ORDER BY záradékai, csoportosítás, összesítő függvények.
   - Adatbázisok-1 előadások tananyaga +Ullman-Widom Tankönyv 6.4. fejezet
   - Oracle segédanyag: SQL06_csoportok.pdf -- group by és having záradékok
   - Oracle Példatár 2.fejezet Egytáblás csoportosítás Csoportképzés 49.o-52.o.pdf
   
   FELADATSOR-3: dolgozo (egy táblára teljes select utasítás)
 1. Mennyi a legnagyobb fizetés a dolgozók között? (max) és a legkisebb? (min)
 2. Mennyi a dolgozók összfizetése? (sum)
 3. Adjuk meg, hogy hány különböző foglalkozás fordul elo a dolgozók között! (count)
 4. Mennyi a 20-as osztályon az átlagfizetés? (avg)
 5. Adjuk meg osztályonként az átlagfizetést! (csoportosítása: group by)
 6. Adjuk meg azokra az osztályokra az átlagfizetést, ahol ez nagyobb mint 2000.
 7. Melyek azok az osztályok, ahol legalább hárman dolgoznak és mennyi az itt
     dolgozók átlagfizetése?
 8. Adjuk meg osztályonként az ott dolgozó hivatalnokok (FOGLALKOZAS='CLERK')
     átlagfizetését, de csak azokon az osztályokon, ahol legalább két hivatalnok dolgozik!
 9. Adjuk meg osztályonként a minimális fizetést, de csak azokat az osztályokét, ahol
     a minimális fizetés nagyobb, mint a 30-as osztályon dolgozók minimális fizetése.
10. Adjuk meg a legmagasabb osztályonkénti átlagfizetést!
 

      
   H.F: Önálló gyakorlás: Oracle Példatár Feladatok.pdf 1. és 2.fejezetek feladatai
   [Megj.: 1.14.feladatban foglalkozás szerint rendezve, és nem-"csoportosítva"]