4.gyak.
Lekérdezések
kifejezése SQL-ben: Csoportosítás
és
összesítések. Alkérdések,
korrelált
alkérdések.
Feladatok: Összesítő
(aggregáló)
függvények, csoportosítás
SQL-ben:
SELECT ... FROM ... [WHERE ...] [[GROUP BY ... [HAVING ...]]
[ORDER BY ... ] záradékok.
Alkérdések a FROM
záradékban. Alkérdések a WHERE
és HAVING
záradékokban, háromféle
eset:
a) az alkérdés egyetlen
skalár értékkel,
b)
skalár
értékek multihalmazával,
c) tetszőleges táblával tér
vissza. Korrelált
alkérdések kiértékelése.
1.5.2. WHERE záradékban:
(a) t IN (SFW)
(b) t
theta (SFW) -- ahol theta az aritmetikai
összehasonlítás jele
(c) t
theta ANY/ALL(SFW)
(d) EXISTS
(SFW)
Az alábbi típusú
alkérdések
közül melyeknél
használható (a), (b),
(c) ill.(d)?
1.)
skalárértéket
adó alkérdések
2.)
skalárértékekből
álló halmazt illetve multihalmazt adó
alkérdések
3.) teljes,
többdimenziós
tábla
4.) egy sort adó
többdimenziós tábla
2.)
Az
órai gyakorlatok
példái: Fejezd
ki a
lekérdezéseket SQL SELECT-tel!
A
gyakorlatok feladatai itt: table_dolgozo.txt
-- táblák
létrehozása: create_dolg
Feladatok
a 4.gyakorlatra összesítő
függvényekre,
csoportosításra,
alkérdésekre:
- Mekkora a minimális és a maximális
fizetés a
dolgozók között?
- Kinek a legkisebb a fizetése?
- Kinek a legnagyobb a fizetése?
- Mennyi a dolgozók összfizetése?
- Mennyi a 20-as osztályon az
átlagfizetés?
- Adjuk meg, hogy hány különböző
foglalkozás fordul elő a dolgozók
között!
- Kik azok a dolgozók, és milyen
munkakörben
dolgoznak, akiknek a legnagyobb
a fizetésük?
- Adjuk meg osztályonként az
átlagfizetést!
- Adjuk meg azokra az osztályokra az
átlagfizetést, ahol ez nagyobb mint 2000.
- Adjuk meg azokra az osztályokra az
átlagfizetést, ahol legalább
hárman
dolgoznak!
- Melyek azok az osztályok, ahol legalább
hárman
dolgoznak?
- 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.
- 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!
- Adjuk meg, hogy mely dolgozók fizetése jobb,
mint a saját osztályán (ahol dolgozik)
dolgozók
átlagfizetése!
- Kik azok a dolgozók, akiknek a fizetése
nagyobb,
mint 'ALLEN' fizetése?
- Kik azok a dolgozók, és milyen
munkakörben
dolgoznak, akiknek a legkisebb
a fizetésük?
(köv.héten lesz a min
csoportfüggvénnyel, ma theta ALL
alkérdéssel)
- Kik azok a dolgozók, és milyen
munkakörben
dolgoznak, akiknek a legnagyobb
a fizetésük?
(köv.héten lesz a max
csoportfüggvénnyel, ma theta ALL
alkérdéssel)
- Kik azok a dolgozók, akiknek a fizetése kisebb,
mint
valamelyik hivatalnok ('CLERK')
fizetése. (ugyanez a
kérdés, csak most
minden hivatalnok fizetésénél legyen
kisebb)
3.) A
példatár feladatai
önálló
gyakorlásra:
-- Lásd Feladatok.pdf
(2.fejezet
feladatai)
és a táblák
létrehozása cr_dept_emp