Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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ó?
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.