Többrelációs
lekérdezések
kifejezése a relációs
algebrában
és SQL SELECT-tel valamint ekvivalens
átírások egymásba
A 3-4. gyakorlatokon 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,
valamint a gépnél is
kipróbálni az
Oracle 11g adatbázis környezetben.
Emlékeztető az előző gépes
gyakorlatról,
csatlakozás az Oracle
adatbázishoz: Gépes gyakorlathoz:Oracle
adatbázis elérhetősége
A lekérdezési feldatatok
megoldásához előbb
az alaptáblákat kell létrehoznunk
(aki volt az előző gyakorlaton, azoknak megvan, aki nem volt,
most
hozza létre) 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 (3.1-3.4.fej.
feladatai)
és a táblák
létrehozása cr_dept_emp Többrelációs
lekérdezések:
Összekapcsolások és
halmazműveletek
1.3.
FROM záradék: Összekapcsolások az SQL-ben
1.3.1. Descartes szorzat
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table [, table, ...]
[WHERE condition(s)]
[ORDER BY column(s) [DESC]];
SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2];
1.3.2. JOIN - Természetes összekapcsolás
SELECT table1.column, table2.column
FROM table1
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2
ON (table1.column_name = table2.column_name)]
Fejezd
ki a
lekérdezéseket SQL SELECT-tel és
relációs algebrában,
a relációs algebrai
kidefejézes
átírása SQL SELECT-re, és
vissza. 2.)
A gyakorlatok feladatai itt: table_dolgozo.txt
Feladatok a 4.gyakorlatra
- Kik azok a dolgozók, akiknek a főnöke KING?
(CROSS JOIN)
- Kik azok a dolgozók, akik
osztályának telephelye
BOSTON vagy CHICAGO?
(Keressünk több megoldást: JOIN, NATURAL JOIN,
alkérdéssel is fejezzük ki!)
- Kik azok a dolgozók, akik
osztályának telephelye
nem BOSTON vagy CHICAGO? (MINUS)
- Adjuk meg azoknak a nevét, akiknek a fizetése
> 2000
vagy a 30-as osztályon dolgoznak (UNION)
Végül nézzük
meg az 1-2. gyakorlat
Termékek és Csatahajós
példáit
is!