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

Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.

Hasonló előadás


Az előadások a következő témára: "Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data."— Előadás másolata:

1 Az SQL nyelv

2 SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data Manipulation Language): adatokon műveletet végző utasítások. alábbi csoportokban tárgyaljuk az SQL utasításokat: - adatbázisséma definiálása (DDL), - adatok aktualizálása (DML), - lekérdezési lehetőségek (DML).

3 Szintaxis Kisbetű és nagybetű a nyelv alapszavaiban egyenértékű. Utasítások sorfolytonosan írhatók, lezárás pontosvesszővel. Szövegkonstans: 'szöveg' Változó nincs, csak tábla- és oszlopnevekre lehet hivatkozni. Kifejezésben hivatkozás egy tábla adott oszlopára: tábla.oszlop (ha a tábla egyértelmű, akkor elhagyható). Logikai műveletek: AND, OR, NOT Az utasítások szintaxisának leírásánál az elhagyható részleteket szögletes zárójellel jelöljük.

4 Relációsémák definiálása - DDL CREATE TABLE táblanév ( oszlopnév adattípus [feltétel],......, oszlopnév adattípus [feltétel] [, táblaFeltételek] );

5 Adattípusok CHAR(n)n hosszúságú karaktersorozat VARCHAR(n)legfeljebb n hosszúságú karaktersorozat INTEGERegész szám (röviden INT) REALvalós (lebegőpontos) szám, másnéven FLOAT DECIMAL(n[,d])n jegyű decimális szám, ebből d tizedesjegy DATEdátum TIMEidő

6 Táblák, relációsémák változtatása Táblák megszüntetése DROP Tábla;

7 Táblák, relációsémák változtatása Relációsémák módosítása ALTER TABLE táblanév [ADD (újelem,..., újelem)] [MODIFY (módosítás,..., módosítás)] [DROP (oszlop,..., oszlop)]; újelem: egy "oszlopnév adattípus [feltétel]” módosítás: "oszlopnév adattípus [feltétel]”

8 Indexek létrehozása nem része az SQL2 szabványnak CREATE [UNIQUE] INDEX indexnév ON tábla(oszloplista); DROP INDEX indexnév;

9 Megszorítások SQL -ben Elsődleges kulcs, kulcsok Külső kulcs – hivatkozási épség Attribútumértékekre vonatkozó megszorítások Globális megszorítások

10 Kulcsok megadása SQL -ben PRIMARY KEY - elsődleges kulcs CREATE TABLE utasításon belül kétféle módon: – Attribútum megadásakor – Egy újabb deklarációs sorral UNIQUE – kulcs (több is megadható)

11 Hivatkozási épség – idegen kulcs CREATE TABLE utasításon belül kétféle módon: – Attribútum megadásakor REFERENCES tábla(attribútum) – Egy újabb deklarációs sorral FOREIGN KEY (oszloplista) REFERENCES tábla(oszloplista) [ON-feltételek]

12 Hivatkozási épség fenntartása Ha a feltétel megsérülne visszautasítjuk a módosítást Továbbgyűrűző eljárás NULL értékre állítás módszere

13 Hivatkozási épség fenntartása ON UPDATE CASCADE: ha S egy sorában változik a kulcs értéke, akkor a rá való T-beli hivatkozások is módosulnak ON DELETE CASCADE: Ha S-ben törlünk egy sort, akkor T-ben is törlődnek a rá hivatkozó sorok ON UPDATE SET NULL: ha S egy sorában változik a kulcs értéke, akkor T-ben a rá való külső kulcs hivatkozások értéke NULL lesz. ON DELETE SET NULL: ha S-ben törlünk egy sort, akkor T-ben a rá való külső kulcs hivatkozások értéke NULL lesz.

14 Attribútumértékekre vonatkozó megszorítások Attribútumra vonatkozó megszorítás CREATE TABLE utasításban Értéktartományra vonatkozó megszorítás CREATE DOMAIN attribútum típus AS CHECK (VALUE IN (kifejezés)) CHECK (VALUE (kifejezés))

15 Globális meszorítások Sorokra vonatkozó CREATE TABLE utasításban Önálló megszorítások CREATE név ASSERTION CHECK feltétel

16 Megszorítások módosítása Megszorítások elnevezése CONSTRAINT kulcsszóval név CHAR(30) CONSTRAINT NévKulcs UNIQUE ALTER TABLE Dolgozó DROP CONSTRAINT NévKulcs ALTER TABLE Dolgozó ADD CONSTRAINT NévKulcs UNIQUE (név);

17 Adattábla aktualizálása (DML) táblába új sor felvétele Sor(ok) módosítása Sor(ok) törlése

18 táblába új sor felvétele INSERT INTO táblanév [(oszloplista)] VALUES (értéklista); Oszloplista megadása nélkül is lehet

19 Sor(ok) módosítása UPDATE táblanév SET oszlop = kifejezés,..., oszlop = kifejezés [ WHERE feltétel ]; Where feltétel nélkül minden sorra

20 Sor(ok) törlése DELETE FROM táblanév [ WHERE feltétel ]; Where feltétel nélkül minden sorra

21 Lekérdezés (DML) Egy vagy több adattáblából egy eredménytábla előállítása, amely a képernyőn listázásra kerül, vagy más módon használható fel. Egyetlen SELECT utasítás akár egy komplex felhasználói programot helyettesíthet

22 Lekérdezés (DML) SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel];

23 Lekérdezés (DML) "SELECT A1,...,An FROM T1,...,Tm WHERE feltétel" utasítás egyenértékű a következő relációs algebrai kifejezéssel: E =  A1,...,An(  feltétel(T1 x...x Tn))

24 A relációs algebra műveleteinek megvalósítása Projekció: SELECT [DISTINCT] A1,...,An FROM T; Szelekció: SELECT * FROM T WHERE feltétel;

25 A relációs algebra műveleteinek megvalósítása Descartes-szorzat: T1 x T2 SELECT * FROM T1,T2; Théta join: SELECT * FROM T1,T2 WHERE feltétel;

26 A relációs algebra műveleteinek megvalósítása Unió: (SELECT * FROM T1) UNION (SELECT * FROM T2); Metszet: (SELECT * FROM T1) INTERSECT (SELECT * FROM T2); Különbség: (SELECT * FROM T1) EXCEPT (SELECT * FROM T2);

27 Alias nevek SELECT után megadott oszloplista tetszőleges kifejezéseket is tartalmazhat az eredménytábla oszlopainak elnevezésére alias neveket adhatunk meg: FROM után megadott táblák esetében is használhatók, pl. ha egy táblára többször is haivatkozunk

28 Összesítő függvények függvénynév ( [DISTINCT] oszlopnév ) AVG: átlagérték. SUM: összeg. MAX: maximális érték. MIN: minimális érték. COUNT: elemek száma.

29 Csoportosítás GROUP BY oszloplista – csoportba azok a sorok melyeknél oszloplista értéke azonos. – eredménytáblában egy csoportból egy rekord – Az összesítő függvények csoportonként hajtódnak végre.

30 Csoportosítás HAVING feltétel – a feltételnek eleget tevő csoportok kerülnek összesítésre az eredménytáblába.

31 Eredménytábla rendezése ORDER BY oszlopnév [DESC],..., oszlopnév [DESC] Alapértelmezésben növekvő, ha fordítva akarjuk akkor DESC = descending

32 A SELECT utasítás általános alakja SELECT [DISTINCT] oszloplistaprojekció FROM táblanévlistaDescartes-szorzat [WHERE feltétel]szelekció [GROUP BY oszloplista]csoportosítás [HAVING feltétel]csoport-feltétel [ORDER BY oszloplista];rendezés

33 Végrehajtási sorrend 1. FROMDescartes-szorzat 2. WHERE szelekció 3. GROUP BYcsoportosítás 4. HAVING csoport-szelekció 5. SELECT projekció 6. ORDER BYrendezés

34 Alkérdések valamely SQL utasítás belsejében szereplő SELECT utasítás amely egy relációt vagy skalárt eredményez Halmazelméleti metszet művelet megvalósítása SELECT * FROM T1 WHERE EXISTS ( SELECT * FROM T2 WHERE T1.A1=T2.A1 AND... T1.An=T2.An );

35 Alkérdések INSERT utasítás is tartalmazhat alkérdést: INSERT INTO táblanév [(oszloplista)] SELECT... ; A SELECT annyi oszlopot kell hogy kiválasszon, amennyit oszloplista tartalmaz

36 Virtuális táblák A virtuális tábla (nézettábla, view) nem tárol adatokat Nézettáblák alkalmazási lehetőségei: - Származtatott adattáblák létrehozása, amelyek a törzsadatok módosításakor automatikusan módosulnak (pl. összegzőtáblák). - Bizonyos adatok elrejtése egyes felhasználók elől (adatbiztonság vagy egyszerűsítés céljából).

37 Virtuális táblák CREATE VIEW táblanév [(oszloplista)] AS alkérdés; SELECT utasítás eredménytáblája alkotja a nézettáblát ugyanúgy használhatók, mint a tárolt adattáblák

38 Virtuális táblák Nézettábla módosítása lehetséges kivéve: ha definíciója - DISTINCT opciót, - FROM után egynél több táblanevet (join művelet), - GROUP BY alparancsot tartalmaz.


Letölteni ppt "Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data."

Hasonló előadás


Google Hirdetések