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

SQL (alap) Adatbázisok gyakorlat. Relációs adatmodell névország SoproniMagyar KozelCseh DreherNémet névvárostulaj Makk 7-esBudapestGéza LórúgásGyőrIca.

Hasonló előadás


Az előadások a következő témára: "SQL (alap) Adatbázisok gyakorlat. Relációs adatmodell névország SoproniMagyar KozelCseh DreherNémet névvárostulaj Makk 7-esBudapestGéza LórúgásGyőrIca."— Előadás másolata:

1 SQL (alap) Adatbázisok gyakorlat

2 Relációs adatmodell névország SoproniMagyar KozelCseh DreherNémet névvárostulaj Makk 7-esBudapestGéza LórúgásGyőrIca sörbárár KozelMakk 7-es320 DreherMakk 7-es400 SoproniLórúgás280 SörBár Felszolgál attribútumok sorok 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). előfordulás

3 SQL Structured Query Language Legfontosabb részei 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 FROM szeret; SELECT * FROM szeret; SELECT gyumolcs AS gyumi FROM szeret; SELECT gyumolcs gyumi FROM szeret; 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'; SELECT nev FROM szeret WHERE gyumolcs = 'ALMA' OR gyumolcs = 'KORTE'; SELECT nev FROM szeret WHERE gyumolcs IN ('ALMA', 'KORTE'); SELECT nev FROM szeret WHERE nev > 'PETER';

11 Példák II. SELECT nev FROM szeret WHERE gyumolcs IS NULL; SELECT nev 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'; SELECT nev FROM szeret 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'; SELECT nev FROM szeret WHERE gyumolcs = UPPER('alma'); Ez helyes lekérdezés, de vegyük észre: UPPER('alma') = 'ALMA'

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

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


Letölteni ppt "SQL (alap) Adatbázisok gyakorlat. Relációs adatmodell névország SoproniMagyar KozelCseh DreherNémet névvárostulaj Makk 7-esBudapestGéza LórúgásGyőrIca."

Hasonló előadás


Google Hirdetések