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ázis rendszerek I Az SQL nyelv elemei I Általános Informatikai Tsz. Dr. Kovács László.

Hasonló előadás


Az előadások a következő témára: "Adatbázis rendszerek I Az SQL nyelv elemei I Általános Informatikai Tsz. Dr. Kovács László."— Előadás másolata:

1 Adatbázis rendszerek I Az SQL nyelv elemei I Általános Informatikai Tsz. Dr. Kovács László

2 SQL KL ‘autók és tulajdonosok’ A T create table A (R char(6) primary key,.. SQL DB Az elkészített RDBMS rendszerek igényelnek egy parancsnyelvet SEQUEL SQL (86,89,99,3)

3 SQL KL A SQL jellemzése: - a relációs algebrára épül - kiterjed az adatkezelő tevékenységekre: - adatdefiniáló (DDL) - adatkezelő (DML) - lekérdező (DQL) - vezérlő (DCL) - descriptiv, a műveleti lépéseket kell megadni - magasszintű parancsok - nem tartalmaz vezérlési, IO elemeket - halmazorientált - bővülő nyelv - van interaktív és beépülő változata Az SQL nem DBMS

4 SQL KL Tipikus műveleti sorrend: - objektumok, táblák létrehozása - adatok felvitele - adatok lekérdezése - adatok módosítása - szerkeztek módosítása - működési környezet beállítása Alma Dió Mogyi Bab V.3 01.I.8 97.II X.2 kódnévárdátum Termék 1233 Alma 2398.V.3 Termék

5 SQL KL Utasítások csoportosítása DDL:- objektum létrehozásCREATE - objektum megszüntetésDROP - objektum módosításALTER DML:- rekord felvitelINSERT - rekord törlésDELETE - rekord módosításUPDATE DQL: - lekérdezésSELECT DCL:- védelemGRANT,.. - tranzakció kezelés COMMIT,..

6 SQL KL Objektum létrehozása: CREATE objektumtípus azonosító paraméterek; CREATE TABLE tnév (mnev1 tipus1 intfelt1, …,intfelt)... ; CHAR(n) NUMBER(n,m) DATE PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla PRIMARY KEY(m1,m2) FOREIGN KEY(m1,m2) REFERENCING tabla CHECK felt CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY, AR NUMBER(9) NOT NULL, IDO DATE);

7 SQL KL Objektum megszüntetése: DROP objektumtípus azonosító paraméterek; DROP TABLE tnév ; Objektum séma módosítás: ALTER objektumtípus azonosító paraméterek; ALTER TABLE tnév ADD | MODIFY (mnev tip intfelt | intfelt); DROP TABLE AUTO; ALTER TABLE AUTO ADD (TULAJ REFERENCING EMBER); A műveletek nem tranzakció hatáskörben futnak le! Séma lekérdezése lsd. SELECT

8 SQL KL Rekord felvitele: INSERT INTO tabla VALUES (ert1, ert2, …,ertn); INSERT INTO tabla SELECT …; INSERT INTO tabla VALUES (mezo=ertek,…); Az érték lehet NULL is. Nem maradhat ki mező. Fontos a mezősorrend INSERT INTO AUTO VALUES (“bju564”,234,”FIAT”); INSERT INTO AUTO VALUES (“bju564”,234,NULL); INSERT INTO AUTO VALUES (RSZ=“bju564”,...); Dátumok felvitele konverziós függvénnyel: INSERT INTO AUTO VALUES(DATUM = TO_DATE(“ ”,”YYYY.MM.DD”),…);

9 SQL KL Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltételnek eleget tevő rekordok törlődnek Ha elmarad a WHERE tag, minden rekord törlődik A feltétel rész részletesen a SELECT-nél jön DELETE FROM AUTO WHERE AR< ; Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel; A feltételnek eleget tevő rekordok módosulnak Ha elmarad a WHERE tag, minden rekord módosul UPDATE AUTO SET AR = AR * 1.2 WHERE AR< ;

10 SQL KL Adatok lekérdezése: SELECT mezőlista FROM tabla1,tabla2,...OUTER JOIN... WHERE feltétel …(SELECT…)... GROUP BY cskif HAVING feltétel UNION | INTERSECT | MINUS … SELECT … … ORDER BY INTO... az SQL ereje igen összetett is lehet sokkal hatékonyabb, mint algoritmust irni

11 SQL KL SELECT - a projekció megadása jele:  mlista (r) SELECT RSZ, TIPUS FROM AUTO; SELECT mlista FROM tábla; Az mlista helyén * áll, ha minden mező kell

12 SQL KL jele:  felt (r) SELECT - a szelekció megadása SELECT mlsita FROM tábla WHERE feltétel; SELECT * FROM AUTO WHERE SZIN = ”PIROS” OR TIPUS = ”MAZDA”;

13 SQL KL Műveletek kombinálása: SELECT RSZ FROM AUTO WHERE SZIN = ”PIROS” OR SZIN=”KEK”;

14 SQL KL jele: r 1  r 2 SELECT - a join megadása SELECT mlista FROM tabla1, tabla2,.. WHERE feltétel; Ha a feltétel elmarad Descartes szorzatot kapunk Kettőnél több tábla is összekapcsolható

15 SQL KL Szelekciós join: SELECT * FROM AUTO, EMBER WHERE TULAJ = IGSZ; Ha több táblában is azonos elnevezésű mező van, akkor a kibővitett mezőnevet használjuk:tábla.mező SELECT * FROM AUTO, EMBER WHERE AUTO.TULAJ = EMBER.IGSZ; Ha hosszú a táblanév, alias nevet használhatunk: tábla alias SELECT * FROM AUTO A, EMBER E WHERE A.TULAJ = E.IGSZ;

16 SQL KL AB C G U AC L T P T1 +  T1.A = T2.A T2 T1T2 AC 1 3 T L AB C G U SELECT - az outer-join megadása SELECT mlista FROM tábla1 LEFT RIGTH | FULL | OUTER JOIN tábla2 ON feltétel WHERE felt; SELECT * FROM AUTO A RIGHT OUTER JOIN EMBER E ON A.TULAJ = E.IGSZ WHERE A.AR > ; SELECT.. FROM tabla1,tabla2 WHERE t1.m1 (+)= t1.m2;

17 SQL KL jele:  mlista (r) SELECT - a kiterjesztés megadása SELECT kif név,... FROM …; SELECT AR/100 UJAR FROM AUTO; A mezőkhöz új nevet is rendelhetünk Az előállító kifejezés

18 SQL KL jele:  aggregációs-lista ( r) SUM(mez.kif) AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif) MIN(mez.kif) SELECT COUNT(*) FROM AUTO; SELECT - az aggregáció megadása SELECT aggregációs-lista FROM tábla;

19 SQL KL jele:  csoport képzési kifejezés aggregációs-lista ( r) SELECT - az aggregáció és csoportképzés megadása SELECT aggregációs-lista FROM tábla GROUP BY csopképzkif; SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS;

20 SQL KL SELECT - szűrés az elkészült csoportokból SELECT agg-lista FROM tábla GROUP BY cskif HAVING feltétel; SELECT TIPUS FROM AUTO GROUP BY TIPUS HAVING AVG(AR) > ; A csoportképzés előtti és utáni szelekció együttesen is szerepelhet: SELECT TIPUS FROM AUTO WHERE SZIN=”PIROS” GROUP BY TIPUS HAVING AVG(AR) > ; WHEREHAVING

21 SQL KL SELECT - eredmény rekordok rendezése SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2...; ASC DESC Nem része a relációs algebrának A második mező szerinti szempont csak az első egyezősége esetén lényeges SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY AR DESC, TIPUS; Lehet sorszámmal is hivatkozni a mezőkre SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY 3 DESC, 2;

22 SQL KL SELECT - speciális szelekciós operátorok kif LIKE minta sztring kifejezés illeszkedése egy mintára Speciális karaketerek a mintában: %több karaktert helyettesít _ egy karaktert helyettesít … WHERE NEV LIKE ”%PETER%”... kif IS [NOT] NULLüres-e a kifejezés kif BETWEEN kif2 AND kif3köztes érték vizsgálat

23 SQL KL Mintapélda BOROK(kod, nev, gyarto, fajta, ar) VEVO(vkod, nev, cim) RENDELES(vevo, bor, mennyiseg,datum) 1. azon vevők, akik rendeltek Bikavért 2. Melyik gyártó termel 5-nél több vörös bort  gyarto (  count(*)>5 (  gyarto gyarto,count(*) (  fajta=‘voros’ (BOROK)))) SELECT V.NEV FROM VEVO V, RENDELES R, BOROK B WHERE V.VKOD = R.VEVO AND R.BOR = B.KOD AND B.NEV LIKE ”BIKAVER%”; SELECT GYARTO FROM BOROK WHERE FAJTA = ”VOROS” GROUP BY GYARTO HAVING COUNT(*) > 5;

24 SQL KL Gyakorlati eszköz: Oracle RDBMS Felület: interaktív SQL: sqlplus Gép: ekrazit Név/jelszó: Fontosabb, nem szabvány parancsok: - exit - describe tnev - ALTER USER unev IDENTIFIED BY jelszo - SPOOL fnev - SPOOL OFF - SET PAGESIZE sor - SET PAUSE ON


Letölteni ppt "Adatbázis rendszerek I Az SQL nyelv elemei I Általános Informatikai Tsz. Dr. Kovács László."

Hasonló előadás


Google Hirdetések