1.HETI GYAKORLAT (LEVELEZŐ INFO TANÁR - ADATBÁZISOK)
    
 
   Ismerkedés Oracle adatbázisok elérése, sqldeveloper használata
   > Bemutatkozás, tematika, követelmények 
   > Technikai kérdések megbeszélése
      ORACLE ADATBÁZIS szerverek elérése -->> adatbazis_eleres.html
      Példa-táblák létrehozására a szkriptek -->> adatbazis_scriptek.html
    

 
   1.rész: SQL SELECT utasítás select lista és where feltétel /dolgozo+osztaly/
   Témakör: Az SQL SELECT utasítás SELECT lés WHERE záradéka
   > SQL00_bevezetes.pdfSQL01_select_lista.pdf;  SQL02_where_feltetel.pdf
    
    Táblák előkészítése az SQL-ben: Dolgozo, Osztaly táblák: createDolg 

        Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon)      
        Osztaly (oazon, onev, telephely)
        Fiz_Kategoria (kategoria, also, felso)
    
--- Rel.algebra vetítés művelete (SQL-ben multihalmaz -> rel.alg.-ban halmaz!)
 1.  Adjuk meg a dolgozók között előforduló foglalkozások neveit! (select lista)
 2.  Adjuk meg a dolgozók között előforduló foglalkozások neveit (DISTINCT is),
     az eredmény halmaz legyen, vagyis minden foglalkozást csak egyszer írjuk ki!
 3. Adjuk meg a dolgozók kódját, nevét és az éves fizetését, amikor kifejezést
     használunk az oszlopnevek helyén, ott adjunk új oszlopnevet ("éves fizetés")
   
--- Rel.algebra kiválasztás művelete és azh SQL SELECT utasítás WHERE feltétele
 4. Kik azok a dolgozók, akiknek a fizetése > 2800? (kiválasztás, elemi feltétel)
 5. Írjuk ki a 'KING' nevű dolgozó(k) adatait! (kar.tip.konstans megadása 'KING')
 6. Kik azok a dolgozók, akiknek a fizetése 2000 és 4500 között van?
     (1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: intervallum)
 7. Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
     (1.mo: kiválasztás, összetett feltétel; 2.mo: where-ben: in értékek)
 8. Adjuk meg azon dolgozókat, akik nevének második betűje 'A' (where: like)
 9. Kik azok a dolgozók, akiknek a jutaléka nagyobb, mint 600?
10. Kik azok a dolgozók, akiknek a jutaléka kisebb-vagy-egyenlő, mint 600?
11. Kik azok a dolgozók, akiknek a jutaléka ismeretlen (hiányzó adat, nincs kitöltve)
12. Kik azok a dolgozók, akiknek a jutaléka ismert (vagyis nem NULL)
   
--- Az eredménytábla sorainak rendezése (SELECT utasítás ORDER BY záradéka)
     (Ez itt nem alap relációs algebrai művelet, de az SQL lekérdezésekben hasznos)
13. Listázzuk ki a dolgozókat foglalkozásonként, azon belül nevenként rendezve.
14. Listázzuk ki a dolgozókat fizetés szerint csökkenőleg rendezve.
     

 
    2.rész: SQL feladatsor - Sorfüggvények használata
    Témakör: Az SQL SELECT utasítás SELECT és WHERE záradékaiban szereplő
    attribútumok különböző típusaira kifejezések és a sorfüggvények használhatók.
      I. Az Oracle által ismert adattípusok, lásd OracleTipusok.html
     II. Beépített függvények használata: SQL03_fuggvenyek.pdf
   
--- Numerikus függvények   
 1. Adjuk meg dolgozók nevét és az éves fizetését, akik a 10-es osztályon dolgoznak.
 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, szövegkeresés, szöveg "grafikus" megjelenítése
 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ű.
    (Többféle megoldást is keressünk a lekérdezésre, LIKE, INSTR függvény)
 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'.
+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)
     
--- 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?
     (Aktuális dátumformátumot lásd -> SYSDATE fv.)
 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 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) 
      [* Itt kipróbálhatjuk, hogy 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 
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.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.
       
>> Önálló gyakorlás: Oracle Példatár Feladatok.pdf 1.fejezet 1.1.-1.18. feladatok
      [Megj.: 1.14.feladatban foglalkozás szerint rendezve, és nem-"csoportosítva",
       ugyanis a csoportosítást - összesítések és group by később lesz, itt: order by]