Adatbázisok SQL
Az SQL tulajdonságai A műveletek fajtái Objektum-műveletek Témakörök Tulajdonságok és műveletek Az SQL tulajdonságai A műveletek fajtái Objektum-műveletek Lekérdezések Lekérdezések Relációs algebra
Az SQL tulajdonságai Tulajdonságok és műveletek SQL = Structured Query Language (= struktúrált lekérdező nyelv). 1976: SEQUEL (= Structured English QUEry Language) eredeti változata, IBM-nél 1986: szabvány SQL, az ANSI (= American National Standards Institute) definiálta. 1992: SQL2 Továbbfejlesztés: SQL3 (rekurzió, triggerek, objektum-relációs modell) Lekérdezések Relációs algebra
Az SQL tulajdonságai A SQL jellemzése: - a relációs algebrára épül Tulajdonságok és műveletek 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) - a műveleti lépéseket kell megadni - halmazorientált - magas szintű parancsok - bővülő nyelv - lehet interaktív és beépülő Lekérdezések Relációs algebra Az SQL nem adatbázis-kezelő rendszer!
Tipikus műveleti sorrend: - objektumok, táblák létrehozása Műveletek Tulajdonságok és műveletek Lekérdezések Tipikus műveleti sorrend: - objektumok, táblák létrehozása - adatok felvitele - adatok lekérdezése - adatok módosítása - szerkezetek módosítása - működési környezet beállítása Relációs algebra
Adattípusok CHAR(n) n hosszúságú karaktersorozat Tulajdonságok és műveletek CHAR(n) n hosszúságú karaktersorozat VARCHAR(n) legfeljebb n hosszúságú karaktersorozat INTEGER egész szám (röviden INT) REAL valós (lebegőpontos) szám FLOAT DECIMAL(n[,d]) DATE dátum TIME idő Lekérdezések Relációs algebra
Alapértelmezett értékek Tulajdonságok és műveletek Lekérdezések NULL – nem ismert DEFAULT Típus definiálása után vagy lehet később módosítani Relációs algebra
Utasítások csoportosítása Tulajdonságok és műveletek DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER DML: - rekord felvitel INSERT - rekord törlés DELETE - rekord módosítás UPDATE DQL: - lekérdezés SELECT DCL: - védelem GRANT,.. - tranzakció kezelés COMMIT,.. Lekérdezések Relációs algebra
Objektum-műveletek Objektum létrehozása: Tulajdonságok és műveletek Objektum létrehozása: CREATE objektumtípus azonosító paraméterek; CREATE TABLE tnév (mnev1 tipus1 intfelt1, …,intfelt) ... ; Lekérdezések Relációs algebra 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);
Indexek létrehozása Tulajdonságok és műveletek CREATE [UNIQUE] INDEX indexnév ON tábla(oszloplista); DROP INDEX indexnév; Lekérdezések Relációs algebra Nem része az SQL2 szabványnak
Megszorítások SQL -ben Tulajdonságok és műveletek Elsődleges kulcs, kulcsok Külső kulcs – hivatkozási épség Attribútum-értékekre vonatkozó megszorítások Globális megszorítások Lekérdezések Relációs algebra
Kulcsok megadása SQL-ben Tulajdonságok és műveletek 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ó) Lekérdezések Relációs algebra
Hivatkozási épség – idegen kulcs Tulajdonságok és műveletek CREATE TABLE utasításon belül REFERENCES tábla(attribútum) FOREIGN KEY (oszloplista) REFERENCES tábla(oszloplista) [ON-feltételek] Lekérdezések Relációs algebra
Táblába új sor felvétele Sor(ok) módosítása Sor(ok) törlése Adattábla aktualizálása (DML) Tulajdonságok és műveletek Lekérdezések Táblába új sor felvétele Sor(ok) módosítása Sor(ok) törlése Relációs algebra
Objektum-műveletek Rekord felvitele: Tulajdonságok és műveletek Rekord felvitele: INSERT INTO tabla VALUES (ert1, ert2, …,ertn); INSERT INTO tabla SELECT …; INSERT INTO tabla VALUES (mezo=ertek,…); Lekérdezések Példa: INSERT INTO AUTO VALUES (RendSZ=“bju564”,...); Relációs algebra Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltétel szerinti rekordok törlődnek Ha nincs a WHERE tag, minden rekord törlődik Példa: DELETE FROM AUTO WHERE AR<1200000; Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel;
Lekérdezési műveletek Tulajdonságok és műveletek SELECT [DISTINCT] oszloplista projekció FROM táblanévlista Descartes-szorzat [WHERE feltétel] szelekció [GROUP BY oszloplista] csoportosítás [HAVING feltétel] csoport-feltétel [ORDER BY oszloplista]; rendezés Lekérdezések Relációs algebra
1. FROM Descartes-szorzat 2. WHERE szelekció 3. GROUP BY csoportosítás Végrehajtási sorrend Tulajdonságok és műveletek 1. FROM Descartes-szorzat 2. WHERE szelekció 3. GROUP BY csoportosítás 4. HAVING csoport-szelekció 5. SELECT projekció 6. ORDER BY rendezés Lekérdezések Relációs algebra
Lekérdezési műveletek Tulajdonságok és műveletek SELECT - a projekció megadása: SELECT mezőlista FROM tábla; Lekérdezések Példa: SELECT Diakok.Nev, Diakok.Osztaly FROM Diakok; Relációs algebra A mezőlista helyén * =minden mező
Lekérdezési műveletek Tulajdonságok és műveletek SELECT - a szelekció megadása Lekérdezések SELECT mlsita FROM tábla WHERE feltétel; Relációs algebra SELECT * FROM AUTÓ WHERE szín = ”kék” OR tipus = ”Mazda”;
A relációs algebra műveleteinek megvalósítása Tulajdonságok és műveletek Descartes-szorzat: T1 x T2 SELECT * FROM T1,T2; Théta join: SELECT * FROM T1,T2 WHERE feltétel; Lekérdezések Relációs algebra
A relációs algebra műveleteinek megvalósítása Tulajdonságok és műveletek Unió: (SELECT * FROM T1) UNION (SELECT * FROM T2); Metszet: (SELECT * FROM T1) INTERSECT Különbség: (SELECT * FROM T1) EXCEPT Lekérdezések Relációs algebra
Összesítő függvények függvénynév ( [DISTINCT] oszlopnév ) Tulajdonságok és műveletek 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. Lekérdezések Relációs algebra
Csoportosítás GROUP BY oszloplista HAVING feltétel Tulajdonságok és műveletek GROUP BY oszloplista csoportba azok a sorok melyeknél oszloplista értéke azonos. eredménytáblában egy csoportból egy rekord Lekérdezések Relációs algebra HAVING feltétel a feltételnek eleget tevő csoportok kerülnek összesítésre az eredménytáblába.
Eredménytábla rendezése Tulajdonságok és műveletek ORDER BY oszlopnév [DESC], ..., oszlopnév [DESC] Alapértelmezésben növekvő [ASC] Lekérdezések Relációs algebra
Lekérdezési műveletek Példa Tulajdonságok és műveletek SELECT Diakok.Nev, Diakok.Osztaly, Hianyzas.Datumtol, Hianyzas.Datumig FROM Diakok INNER JOIN Hianyzas ON Diakok.[Diak_ azonosito] = Hianyzas.[Diak_ azonosito]; Lekérdezések Relációs algebra Az utasítás eredménye:
JOIN műveletek INNER JOIN: egyesíti a két tábla rekordjait, ha azok közös mezőjében azonos érték szerepel LEFT JOIN: bal oldali laza illesztés, az első tábla (bal oldali) minden rekordja megjelenik, akkor is, ha nem illeszkedik hozzájuk érték a második (jobb oldali) táblában.
RIGHT JOIN: jobb oldali laza illesztés, a második (jobb oldali) tábla minden rekordja megjelenik, akkor is, ha nem illeszkedik hozzájuk érték az első táblában (bal oldali)