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

Adatbázisok gyakorlat

Hasonló előadás


Az előadások a következő témára: "Adatbázisok gyakorlat"— Előadás másolata:

1 Adatbázisok gyakorlat
SQL (alap) Adatbázisok gyakorlat

2 Relációs adatmodell Egy reláció sémája: Sör (név, ország).
Az adatbázis sémája: Sör (név, ország), Bár (név, város, tulaj), Felszolgál (sör, bár, ár). Sör Bár attribútumok név ország Soproni Magyar Kozel Cseh Dreher Német név város tulaj Makk 7-es Budapest Géza Lórúgás Győr Ica Felszolgál előfordulás sör bár ár Kozel Makk 7-es 320 Dreher 400 Soproni Lórúgás 280 sorok

3 SQL Structured Query Language Legfontosabb részei Deklaratív nyelv
SELECT FROM WHERE Deklaratív nyelv Multihalmaz szemantikát használ Azaz a relációkban (táblázatokban) ismétlődhetnek a sorok

4 SQL szintaktika Nem érzékeny a kis- és nagybetű különbségre
kivétel sztringek: "kakas" ≠ "Kakas" Minden lekérdezést ; zár. Egysoros megjegyzés --, többsoros megjegyzés /* */

5 Adatbázisunk Szeret (nev, gyumolcs)
Hajoosztalyok (osztaly, tipus, orszag, agyukSzama, kaliber, vizkiszoritas) Hajok (nev, osztaly, felavatva) Csatak (nev, datum) Kimenetelek (hajo, csata, eredmeny)

6 FROM záradék Megadása kötelező
A lekérdezésben használt táblákat adhatjuk meg itt A táblaneveket , választja el egymástól Az egyes táblák a lekérdezés erejéig átnevezhetők a tábla neve az adatbázisban nem változik meg, csak az adott lekérdezésben hivatkozhatunk rá a megadott névvel

7 SELECT záradék Megadása kötelező
Az eredményben szereplő attribútumokat sorolhatjuk itt fel Az attribútumokat , választja el egymástól Az attribútumok kifejezésben is szerepelhetnek aritmetikai műveletek sorfüggvények Az attribútumok és a kifejezések átnevezhetők

8 Példák SELECT nev FROM szeret; SelEct NeV FROm szereT; SELECT nev, gyumolcs SELECT * SELECT gyumolcs AS gyumi FROM szeret; SELECT gyumolcs gyumi SELECT gyumolcs FROM szeret sz; SELECT (3+2)/7 AS pelda FROM DUAL;

9 WHERE záradék A kiválasztandó sorokra fogalmazhatunk meg szűrő feltételt A megadható kifejezések: aritmetikai összehasonlítások (=, <, >, <>, !=, <=, >=) (sztringek és dátumok esetén is értelmezhetőek) AND, OR, NOT (logikai ÉS, VAGY, NEM) BETWEEN (egy érték beleesik-e egy zárt intervallumba) LIKE (lásd később) IS NULL (egy mező értéke NULL vagy sem, tagadása NOT IS NULL) IN (egy érték eleme-e egy halmaznak, tagadása NOT IN) stb.

10 Példák I. SELECT nev FROM szeret WHERE gyumolcs = 'ALMA'; WHERE gyumolcs = 'ALMA' OR gyumolcs = 'KORTE'; SELECT nev FROM szeret WHERE gyumolcs IN ('ALMA', 'KORTE'); WHERE nev > 'PETER';

11 Példák II. SELECT nev FROM szeret WHERE gyumolcs IS NULL; FROM csatak WHERE datum BETWEEN DATE ' ' AND DATE ' '; SELECT nev FROM szeret WHERE gyumolcs = 'alma'; Üres eredmény. Miért?

12 LIKE használata A LIKE segítségével mintát illeszthetünk
A minták két speciális karaktert tartalmazhatnak _ tetszőleges karaktert helyettesít % tetszőleges karaktersorozatot helyettesít (akár 0 hosszúságút is) SELECT nev FROM szeret WHERE nev LIKE 'E%E%' AND gyumolcs LIKE '_L_A';

13 Megjegyzés SELECT nev FROM szeret WHERE gyumolcs LIKE 'ALMA'; WHERE gyumolcs = 'ALMA'; A két lekérdezés eredménye mindig ugyanaz. Ám ha nem szeretnénk mintát illeszteni, ne a LIKE utasítást használjuk.

14 Összekapcsolás Érdemes megnézni mi lesz az alábbi lekérdezés eredménye
SELECT * FROM kimenetelek, hajok; Az eredményben a kimenetelek tábla minden sora "párban áll" a hajok tábla minden sorával A legtöbb lekérdezésben csak azok a sorpárok érdekesek számunkra, ahol a sorok ugyanarra a hajóra vonatkoznak.

15 Példa SELECT felavatva FROM hajok, kimenetelek WHERE nev = hajo AND eredmeny = 'elsullyedt'; SELECT h.nev, h.osztaly FROM hajok h, hajoosztalyok ho WHERE ho.osztaly = h.osztaly AND agyukszama >= 7;

16 Halmazműveletek A halmazműveletek a szokásosak
UNION (unió) INTERSECT (metszet) MINUS (különbség) Az eredményben az ismétlődő sorok kiküszöbölésre kerülnek A SELECT záradékokban az attribútumok típusa páronként meg kell, hogy feleljen egymásnak az első attribútumok típusa vagy megegyezik, vagy automatikus konverzióval egymásba alakítható, a második attribútumokra ugyanez teljesül stb. az attribútumnevek különbözhetnek

17 Példa SELECT nev FROM hajok MINUS SELECT hajo FROM kimenetelek WHERE eredmeny = 'elsullyedt';

18 Multihalmaz műveletek
UNION ALL, INTERSECT ALL, MINUS ALL Ha egy t sor k-szor szerepel R-ben és s-szer S-ben, akkor k+s-szer szerepel R UNION ALL S-ben, min(k, s)-szer R INTERSECT ALL S-ben és min(0, k-s)-szer R MINUS ALL S-ben. Az Oracle csak a UNION ALL-t implementálta.

19 Ismétlődések kiküszöbölése
Az eredményből az ismétlődő sorok a DISTINCT utasítással küszöbölhetők ki. DISTINCT utasítás csak a SELECT záradékban szerepelhet később látni fogjuk, hogy máshol is Példa: SELECT DISTINCT nev FROM szeret;

20 Sztring kezelése (alapok)
A szeret táblában minden érték csupa nagybetűvel szerepel, a többi táblában nem Ha ezzel nem szeretnénk foglalkozni, a sztringeket csupa nagy- vagy kisbetűssé alakíthatjuk át UPPER LOWER

21 Példák SELECT nev FROM szeret WHERE LOWER(gyumolcs) = 'alma';
WHERE gyumolcs = UPPER('alma'); Ez helyes lekérdezés, de vegyük észre: UPPER('alma') = 'ALMA'

22 Feladatok I. Milyen gyümölcsöket szeret Anna?
Milyen csaták voltak 1943-ban és 1944-ben? Mely hajók vettek részt 1944-es csatában? Az elsüllyed hajók hány ágyúval rendelkeztek (hajo_nev, agyuk_szama)? Milyen gyümölcsöket nem szeret Anna? Melyek azok a hajók, amelyeket nem Japánban gyártottak? Melyek azok a hajóosztályok, amelyből minden hajó épen maradt?

23 Feladatok II. Kik szeretnek legalább két gyümölcsöt?
Kik szeretnek legfeljebb egy gyümölcsöt? Mely csatában vett részt legalább két hajóosztályból való hajó?


Letölteni ppt "Adatbázisok gyakorlat"

Hasonló előadás


Google Hirdetések