TECHNIKAI KÉRDÉSEK Oracle adatbázisok elérése, sqldeveloper
- Ezen a héten az a célunk, hogy előkészítsük az SQL gyakorláshoz a környezetet,
megbeszéljük hogyan csatlakozzunk az ELTE szervereken az adatbázisokhoz.
- ELTE-s ORACLE ADATBÁZIS szerverek elérése -->> adatbazis_eleres.html
Témakör: Egy táblára vonatkozó Oracle SQL lekérdezések
- Az ABKR-felépítése, SQL főbb utasításai: SQL01_bevezetes.pdf
- Oracle demo példa HR séma: Schema Diagrams -> ehhez hasonló az órai példa.
- Lekérdezésekkel kezdünk, de ahhoz, hogy az SQL lekérdezéseket kipróbáljuk
létre kell hoznunk a táblákat, a scriptben szereplő utasításokat később tanuljuk:
create table táblanév (oszlopnév típus, stb, megszorítások) részletesen 7.gyak.
lesz az Oracle alapvető adattípusai: Oracle_tipusok.txt (varchar2, number, date)
- Gyakorlatok példáihoz a táblák létrehozása Oracle SQL-ben:
>> createSzeret -- Szeret(nev, gyumolcs)
>> createDolgozo -- Osztaly, Dolgozo, Fiz_kategoria

Relációsémák:
Osztaly (oazon, onev, telephely)
Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon)
Fiz_Kategoria (kategoria, also, felso) -- táblázat a fizetési sávokat adja meg
FELADATOK: Egy tábla lekérdezése (oszlopok vetítése és sorok kiválasztása)
- 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 az SQL SELECT utasítás WHERE feltétele
- NULL hiányzó érték, lásd SQL Lang.Ref. Nulls, 3 értékű logika, lásd igazságtábla
4. Kik azok a dolgozók, akiknek a fizetése > 2800? (kiválasztás: elemi feltételek)
5. Adjuk meg azokat a dolgozókat, akiknek a foglalkozása 'MANAGER' (kar.tip.érték)
6. Kik azok a dolgozók, akiknek a fizetése 2000 és 4500 között van? (dkod, dnev)
(1.mo: where-ben: intervallum); (HF 2.mo: rel.alg.kiválasztás: összetett feltétel)
7. Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
(1.mo: where-ben: in feltétel); (HF 2.mo: rel.alg.kiválasztás: összetett feltétel)
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. (NULL felt)
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.
15. Rendezés segítségével az első N sor elérése Oracle 12.2 adatbázisban,
lásd Row Limiting Examples.html (forrás: Oracle Database SQL Lang. Ref. html)
Összefoglalás: SQL SELECT utasítás egytáblás lekérdezések
- 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