3.gyak.Lekérdezések kifejezése relációs algebrában és SQL-ben
Egyszerű lekérdezések: SELECT ... FROM ... WHERE ...
   
Feladatok: A 3-4. gyakorlaton az 1-2. gyakorlatok feladatait oldjuk meg SQL-ben,
célszerű ezeket az SQL megoldásokat táblánál is felírni és megbeszélni,  majd gépnél
is kipróbálni az Oracle adatbázis környezetben, lásd Oracle adatbázis elérhetősége 
      

Ez az első gépes gyakorlatunk, csatlakozás az Oracle adatbázishoz: 
Gépes gyakorlathoz: Oracle adatbázis elérhetősége
   
A gyakorlat áttekintése:
A lekérdezési feldatatok megoldásához előbb az alaptáblákat kell létrehoznunk:
1.) Oracle segédanyag példáinak kipróbálása:
- Ehhez előkészítés: HR séma tábláihoz készítsük el a szinonimákat create_synonym
   
2.) Az órai gyakorlatok példái:
- Dolgozo és Osztaly táblák és kérdések: table_dolgozo.txt
   és a táblák létrehozása (scriptként futtatva le) create_dolgozo
- Termékek, lásd table_termekek.txt és a táblák létrehozása:  create_termekek
       Termék(gyártó, modell, típus)
       PC(modell, sebesség, memória, merevlemez, ár)
       Laptop(modell, sebesség, memória, merevlemez, képernyő, ár)
       Nyomtató(modell, színes, típus, ár)
- Csatahajók, lásd table_csatahajok.txt és a táblák létrehozása create_csatahajok
       Hajóosztályok(osztály, típus, ország, ágyúkSzáma, kaliber, vízkiszorítás)
       Hajók(név, osztály, felavatva)
       Csaták(név, dátum)
       Kimenetelek(hajó, csata, eredmény)
   
3.) A példatár feladatai önálló gyakorlásra:
-- 
Lásd Feladatok.pdf (1.1-1.18.feladatok)  és a táblák létrehozása  cr_dept_emp 
   

1.1. SELECT záradék: Vetítés, projekció
   
SELECT *|{[DISTINCT] oszlopnév|kifejezés [alias],...}
FROM táblanév [...];
   
Segédanyag: >> SELECT lista példáit próbáljuk ki!
   
SELECT és FROM kötelező záradékok, a többi nem kötelező.
SELECT .. FROM .. [WHERE .. ] alapértelmezése:
A FROM záradékban levő relációkhoz egy-egy sorváltozót
rendelünk, amelyek a megfelelő reláció minden sorát bejárják,
(ha van WHERE záradék, akkor azt az aktuális sorokra 
kiértékeljük és ha helyes, vagyis a feltétel igazat ad, akkor)
képezzük a SELECT záradékban szereplő kifejezéseknek
megfelelő eredménysort. Így SQL-ben egy sor az eredményben
többször is előfordulhat, vagyis az eredménytábla multihalmaz,
ha halmazt szeretnénk kapni, azt külön kérni kell: DISTINCT
   

1.2. WHERE záradék: Kiválasztás, szelekció
 
SELECT *|{[DISTINCT] oszlopnév|kifejezés [alias],...}
FROM táblanév [...];
[WHERE feltétel];
 
Segédanyag: >> WHERE feltétel példáit próbáljuk ki!
 
1.2.1. aritmetikai összehasonlítás: =, >, >=, <, <=, <>
Hasonlóan, mint a relációs algebra kiválasztás (szelekció)
feltételében elemi feltételekből építkezünk. Elemi feltételen
két kifejezés aritmetikai összehasonlítását értjük, pl. A<B
 
1.2.2. logikai műveletekkel AND, OR, NOT és zárójelekkel
az elemi feltételekből tudjuk felépíteni az összetett feltételeket,
úgy, mint a relációs algebrában. Itt is ugyanúgy érvényesek 
a precedencia szabályok és zárójelezés.
 
1.2.3. egyszerű értékvizsgálat: LIKE, IS NULL
(SQL-ben speciális és ez nem írható át relációs algebrára)
 
- LIKE '_ %'  (ez csak sztring típusú kifejezésekre)
- IS NULL | IS NOT NULL
 
1.2.4. egyszerű értékek listája: BETWEEN, IN 
(SQL-ben speciális, de mind a kettő átírható relációs algebrába)
 
- BETWEEN...AND...
- IN (értékhalmaz) | NOT IN (értékhalmaz)
- Feladat: átírni relációs algebrai kifejezésekké
   (aritmetikai összehasonlítással és logikai kifejezésekkel)
 
1.2.5. Alkérdések használata WHERE-ben (jön köv.héten)
   

1.2.6. ORDER BY záradék: Kiválasztott sorok rendezése
 
SELECT *|{[DISTINCT] oszlopnév|kifejezés [alias],...}
FROM táblanév [...];
[WHERE feltétel];
[ORDER BY {oszlopnév [DESC], ...}];
   
Segédanyag: >>  WHERE feltétel 21.oldal példáit próbáljuk ki!
   
-- Megj.: Klasszikus relációs algebrában nem fejezhető ki,
    mert az eredmény lista (nem halmaz, nem is multihalmaz),
    később erre a kiterjesztett relációs algebránál visszatérünk.
   

Fejezd ki a lekérdezéseket SQL SELECT-tel és relációs algebrában!
2.) A gyakorlatok feladatai itt: table_dolgozo.txt
Feladatok a 3.gyakorlatra
- Adjuk meg a dolgozók között előforduló foglalkozások neveit.
- Kik azok a dolgozók, akiknek a fizetése > 2800?
- Kik azok a dolgozók, akik a 10-es vagy a 20-as osztályon dolgoznak?
- Adjuk meg azon dolgozókat, akik nevének második betűje 'A'.
- Kik azok a dolgozók, akiknek a jutaléka ismert? (vagyis nem NULL)
   

3.) További gyakorló feladatok: Oracle példatár Feladatok.pdf
a 3.gyakorlathoz: 1.fejezet: Egyszerű lekérdezések (1.1-1.18.feladatok)
Az önálló gyakorlást nem-kötelező beadandóként egy "<ehakod>_3gy.txt" nevű  
szöveges fájlban legkésőbb a köv.gyakorlat előtt, kedd 10h-ig küldjék el emailben.
A beadandó célja az önálló gyakorlás, lásd Gyakorlati követelmények #Beadandó
     
Vissza az AB1 gyakorlat oldalára             Vissza a Kezdőlapra