Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

10. GYAKORLAT SQL SELECT. A Z SQL MATEMATIKAI ALAPJAI Relációs algebra: relációs adatbázistáblákon végzett műveletek Fő műveletek:  Direkt szorzat 

Hasonló előadás


Az előadások a következő témára: "10. GYAKORLAT SQL SELECT. A Z SQL MATEMATIKAI ALAPJAI Relációs algebra: relációs adatbázistáblákon végzett műveletek Fő műveletek:  Direkt szorzat "— Előadás másolata:

1 10. GYAKORLAT SQL SELECT

2 A Z SQL MATEMATIKAI ALAPJAI Relációs algebra: relációs adatbázistáblákon végzett műveletek Fő műveletek:  Direkt szorzat  Szelekció  sorok közt válogat б f (T) – „T” tábla, „f” logikai kifejezés  Projekció  oszlopok közt válogat π J (T) – „T” tábla, „J” attribútumlista

3 L EKÉRDEZÉS ÁLTALÁNOS ALAKJA SELECTFROM WHERE ORDER BYGROUP BY HAVING Mely oszlopok jelennek meg Mely táblákból legyen direkt szorzat Logikai kifejezés (mely sorok) Mi szerint rendezünk Mi szerint csoportosítunk Csoportok szűrése

4 SELECT * FROM dolgozo, fizetes;  direkt szorzat Dolgozók neveinek és fizetéseinek lekérdezése: SELECT dNev, osszeg FROM dolgozo, fizetes WHERE dolgozo.fizID = fizetes.fizID ORDER BY dNev ASC; E GYSZERŰ SQL LEKÉRDEZÉS dolgozoIDdNevfizID 1Péter1 2Anna1 3Ádám2 dolgozofizetes fizIDosszeg

5 1. F ELADAT Honlapom: gyak10_sql_sablon.php Előző órán használt adatbázis: áruk, forgalom táblák a) Kérdezd le az adatbázisban található árukat: csak a nevük jelenjen meg ABC szerint csökkenő sorrendben rendezve! b) Az előbbi lekérdezést hajtsd végre úgy, hogy ha több ugyanolyan nevű áru van, akkor ugyanaz a név már ne jelenjen meg még egyszer a listában!

6 Ö SSZESÍTŐ FÜGGVÉNYEK HASZNÁLATA Használatukkor csoportosítást kell alkalmazni minden olyan megjelenő oszlopra, mely nem szerepel az összesítő függvényben Csoportra vonatkozó feltétel a HAVING után adható meg Pl.: SELECT SUM(osszeg) FROM fizetes;

7 Ö SSZESÍTŐ FÜGGVÉNYEK AVG() – átlag COUNT() – sorok száma MIN() – legkisebb érték MAX() – legnagyobb érték SUM() – összeg Pl.: SELECT dNev, MIN(osszeg) FROM dolgozo, fizetes WHERE dolgozo.fizID = fizetes.fizID GROUP BY dNev;

8 2. F ELADAT a) Kérdezd le az áruk adatbázisból és jelenítsd meg egy listában az egyes árukat és a belőlük összesen eladott mennyiséget! b) Csak azokat az árukat kérdezd le az előbbi módon, amikből több mint 20-at eladtak már!

9 S PECIÁLIS LOGIKAI KIFEJEZÉSEK x IS NULL: akkor igaz, ha x értéke NULL x BETWEEN a AND b: akkor igaz, ha a<=x<=b x IN halmaz: akkor igaz, ha x a halmaz egy elemével megegyezik  Halmaz explicit megadása: pl. város IN (‘Szeged’, ‘Budapest’, ‘Pécs’)  Halmaz megadása allekérdezéssel X = NULL

10 S PECIÁLIS LOGIKAI KIFEJEZÉSEK ( FOLYT.) x relációjel ALL halmaz: igaz, ha x a halmaz minden elemével a megadott relációban van x relációjel ANY halmaz: igaz, ha x a halmaz valamely elemével a megadott relációban van  Pl. fizetés < ANY (10000, 20000, 30000) EXISTS halmaz: igaz, ha a halmaz nem üres  EXISTS(allekérdezés): igaz, ha az allekérdezés legalább 1 elemet visszaad

11 S PECIÁLIS LOGIKAI KIFEJEZÉSEK ( FOLYT.) x LIKE minta: igaz, ha x illeszkedik az adott mintára  %: tetszőleges karaktersorozat (%Vár u.%)  _: tetszőleges karakter (_él) NOT  x IS NOT NULL  x NOT IN halmaz  …

12 P ÉLDÁK SPECIÁLIS LOGIKAI KIFEJEZÉS HASZNÁLATÁRA Mennyi és közötti összegű fizetés van: SELECT COUNT(fizID) FROM fizetes WHERE osszeg BETWEEN AND 20000; Azon dolgozók nevei, amikben a név ‘Anna’-val kezdődik00000: SELECT dNev FROM dolgozo WHERE dNev LIKE ‘Anna%’;

13 A LLEKÉRDEZÉS dolgtorzs(dkod, dnev, atlagfiz) kifiz(dkod, osszeg, honap) Írassuk ki azon dolgozók neveit, akiknél az összes kifizetett pénz nagyobb, mint 5000! SELECT dnev FROM dolgtorzs WHERE _________ > 5000; Allekérdezés: mennyi az adott dolgozó eddigi összes kifizetése?

14 A LLEKÉRDEZÉS ( FOLYT.) Adott dolgozó eddigi kifizetésének lekérdezése: SELECT SUM(osszeg) FROM kifiz WHERE kifiz.dkod = _________ A végső megoldás tehát: SELECT dnev FROM dolgtorzs WHERE (SELECT SUM(osszeg) FROM kifiz WHERE kifiz.dkod = dolgtorzs.dkod) > 5000; Dolgozó kódja, akiről éppen szó van

15 T OVÁBBI ALLEKÉRDEZÉSES FELADATOK Írassuk ki azon dolgozók neveit, ahol volt nél nagyobb kifizetés valamelyik hónapban! SELECT dnev FROM dolgtorzs WHERE dolgtorzs.dkod IN ( SELECT kifiz.dkod FROM kifiz WHERE osszeg>50000 ); Megoldható allekérdezés nélkül? Ez az allekérdezés halmazt ad eredményül.

16 T OVÁBBI ALLEKÉRDEZÉSES FELADATOK Töröljük ahhoz a dolgozóhoz tartozó rekordot a dolgtorzs táblából, akihez nem tartozik kifizetés a kifiz táblában! DELETE FROM dolgtorzs WHERE NOT EXISTS ( SELECT kifiz.dkod FROM kifiz WHERE kifiz.dkod = dolgtorzs.dkod );

17 K ÖSZÖNÖM A FIGYELMET !


Letölteni ppt "10. GYAKORLAT SQL SELECT. A Z SQL MATEMATIKAI ALAPJAI Relációs algebra: relációs adatbázistáblákon végzett műveletek Fő műveletek:  Direkt szorzat "

Hasonló előadás


Google Hirdetések