Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

Tananyag: konzultáció
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
1 Informatikai Szakképzési Portál Adatbázis kezelés Az SQL nyelv elemei.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
Microsoft Access Lekérdezések.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
SQL – DQL (Data Query Language ) adat lekérdezések
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Nézettáblák létrehozása, módosítása és törlése
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
DDL – Adatdefiníciós nyelv
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
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.
DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 10. gyakorlat SQL SELECT, Összekapcsolás, Nézettáblák.
SQL.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázisok gyakorlat
Ma az un. Relációs adatmodelleket használjuk.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
2. AB gyakorlat Egytáblás csoportosító lekérdezések.
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

Adatbázis kezelés SQL

Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány : alaputasítások 1986SQL – szabvány : alaputasítások 1989SQL – szabvány : dinamikus SQL 1989SQL – szabvány : dinamikus SQL 1990-től OOP hatás 1990-től OOP hatás SYBASE:hálózati munkára alkalmas adatbázis, metaadatbázis SYBASE:hálózati munkára alkalmas adatbázis, metaadatbázis Programozó által def. Adattípus Programozó által def. Adattípus Kulcsdefiníció Kulcsdefiníció Tárolt eljárások és triggerek Tárolt eljárások és triggerek

Történeti áttekintés 4GL hatás 4GL hatás INFORMIX: képernyőtervező és nyomatatási fejlesztőeszkőz INFORMIX: képernyőtervező és nyomatatási fejlesztőeszkőz Ügyfél-kiszolgálói felépítés hatása: Ügyfél-kiszolgálói felépítés hatása: Adatbázis-gép programozása SQL alapon Adatbázis-gép programozása SQL alapon SQL változatok: SQL változatok: dBase IV SQL, DB2, Ingres, Gupta SQL, MS SQL Server, Transact SQL, InterBase, … dBase IV SQL, DB2, Ingres, Gupta SQL, MS SQL Server, Transact SQL, InterBase, …

Igények az adatbázis kezelő rendszer felé Metaadatok Metaadatok Tárkezelő Tárkezelő Lekérdezés feldolgozó Lekérdezés feldolgozó Tranzakció-kezelő Tranzakció-kezelő Szerkezeti módosítások Szerkezeti módosítások Lekérdezések Lekérdezések Adatmódosítások Adatmódosítások Kapcsolat teremtés Kapcsolat teremtés

A szabvány SQL nyelv elemei

Alapelemek Az SQL táblákat (relációkat kezel) Az SQL táblákat (relációkat kezel) Elnevezésük: TABLE Elnevezésük: TABLE A tábla azonosítója (neve) betűvel kezdődik (max 8 karakter) A tábla azonosítója (neve) betűvel kezdődik (max 8 karakter) A tábla attributumait oszlopoknak nevezzük, melyek típusát a tábla definiálásakor adjuk meg A tábla attributumait oszlopoknak nevezzük, melyek típusát a tábla definiálásakor adjuk meg Oszlopazonosító: max 10 karakter Oszlopazonosító: max 10 karakter A táblák névvel ellátott együttese az adatbázis A táblák névvel ellátott együttese az adatbázis Neve: DATABASE Neve: DATABASE

Táblák fajtái Adattábla Adattábla Eredménytábla Eredménytábla Virtuális tábla – nincs adattartalom fizikailag Virtuális tábla – nincs adattartalom fizikailag Index tábla – kereséshez kell Index tábla – kereséshez kell Szinoníma tábla Szinoníma tábla

Oszloptípusok SMALLINT SMALLINT INTEGER INTEGER DECIMAL(x,y) DECIMAL(x,y) NUMERIC(x,y) NUMERIC(x,y) FLOAT(x,y) FLOAT(x,y) Char(n) Char(n) DATE DATE LOGICAL LOGICAL

Kifejezések Aritmetikai Aritmetikai Oszlopneveket, konstansokat, függvényeket és aritmetikai müveleti jeleket tartalmazhat Oszlopneveket, konstansokat, függvényeket és aritmetikai müveleti jeleket tartalmazhat Függvények: Függvények: Aggregáló függvények: Aggregáló függvények: COUNT, SUM, AVG, MAX, MIN COUNT, SUM, AVG, MAX, MIN A behívó nyelv függvényei A behívó nyelv függvényei

Kifejezések Karakteres Karakteres Karaktertípusú oszlopokat, szövegkonstansokat és a konkatenáció műveleti jelét tartalmazhatja. Karaktertípusú oszlopokat, szövegkonstansokat és a konkatenáció műveleti jelét tartalmazhatja. Függvények Függvények MIN,MAX kivételével nincsenek, de a behívó nyelv függvényeit elfogadja MIN,MAX kivételével nincsenek, de a behívó nyelv függvényeit elfogadja

Kifejezések Logikai Logikai Logikai típusú oszlopokat, logikai műveleteket, valamint az előbbi típusok közti összehasonlításokat tartalmazhatja Logikai típusú oszlopokat, logikai műveleteket, valamint az előbbi típusok közti összehasonlításokat tartalmazhatja Függvények Függvények Nincsenek, de a behívó nyelv függvényeit elfogadja Nincsenek, de a behívó nyelv függvényeit elfogadja

Az adatbázis létrehozása, törlése CREATE DATABASE adatbázisnév; CREATE DATABASE adatbázisnév; Létrejön az adatbázis az aktuális könyvtár adott nevű alkönyvtárában Létrejön az adatbázis az aktuális könyvtár adott nevű alkönyvtárában DROP DATABASE adatbázisnév; DROP DATABASE adatbázisnév; Törli a lezárt adatbázist Törli a lezárt adatbázist

Információ a létező adatbázisokról SHOW DATABASE, SHOW DATABASE, Megjeleníti az összes adatbázis nevét, az egyes adatbázisok alkönyvtárához vezető utat, annak az alkalmazónak az azonosítóját, aki az adatbázist létrehozta, és a létrehozás dátumát Megjeleníti az összes adatbázis nevét, az egyes adatbázisok alkönyvtárához vezető utat, annak az alkalmazónak az azonosítóját, aki az adatbázist létrehozta, és a létrehozás dátumát

Adatbázis megnyítása, lezárása START DATABASE adatbázisnév; START DATABASE adatbázisnév; Megnyitja az adatbázist (egyszerre csak egy aktív) Megnyitja az adatbázist (egyszerre csak egy aktív) STOP DATABASE; STOP DATABASE; Lezárja az aktív adatbázist Lezárja az aktív adatbázist

ISKOLA TANULO TAGSAGSEGELYETKEZES KORJOGCIMNAPIDIJ

Adattábla definiálása CREATE TABLE táblanév (oszlopnév adattípus (adathossz)[,oszlopnév adattípus (adathossz)]…) CREATE TABLE táblanév (oszlopnév adattípus (adathossz)[,oszlopnév adattípus (adathossz)]…) A felsorolt oszlopokkal létrehoz egy táblát A felsorolt oszlopokkal létrehoz egy táblát Neve legfeljebb 8 karakter Neve legfeljebb 8 karakter Egy adatbázison belül a nevek különböznek Egy adatbázison belül a nevek különböznek Max 255 oszlop Max 255 oszlop Max 4000 byte széles Max 4000 byte széles

SZEMELY{kod,nev,nem,anya,apa} CREATE TABLE szemely(kod char(3), nev char(12), nem logical, anya char(3), apa char(3)); CREATE TABLE szemely(kod char(3), nev char(12), nem logical, anya char(3), apa char(3));

A tábla módosítása, törlése ALTER TABLE táblanév ADD (oszlopnév adattípus (adathossz)); ALTER TABLE táblanév ADD (oszlopnév adattípus (adathossz)); Táblához hozzáadni új oszlopkat Táblához hozzáadni új oszlopkat DROP TABLE táblanév; DROP TABLE táblanév; A tábla kitörlése az adatbázisból A tábla kitörlése az adatbázisból

Új sorok elhelyezése az adattáblába INSERT INTO táblanév [(oszlopnév-lista)] VALUES (értéklista INSERT INTO táblanév [(oszlopnév-lista)] VALUES (értéklista A tábla felsorolt oszlopaiba az értéklista elemeit helyezi el A tábla felsorolt oszlopaiba az értéklista elemeit helyezi el Alapértelmezés: minden oszlop Alapértelmezés: minden oszlop

Sorok beszúrása a SZEMELY –be: INSERT INTO szemely VALUES (‘351’,’xxx’,.t.,’333’,’555’); INSERT INTO szemely VALUES (‘351’,’xxx’,.t.,’333’,’555’); INSERT INTO szemely VALUES (‘352’,’xxy’,.t.,’333’,’555’); INSERT INTO szemely VALUES (‘352’,’xxy’,.t.,’333’,’555’); INSERT INTO szemely VALUES (‘741’,’zzz’,.t.,’777’,’444’); INSERT INTO szemely VALUES (‘741’,’zzz’,.t.,’777’,’444’); INSERT INTO szemely VALUES (‘742’,’zzs’,.f.,’777’,’444’); INSERT INTO szemely VALUES (‘742’,’zzs’,.f.,’777’,’444’);

Sorok beillesztése másik táblából INSERT INTO táblanév [oszloplista] SELECT * FROM régitábla; INSERT INTO táblanév [oszloplista] SELECT * FROM régitábla; Ahol SELECT * FROM régitábla a régitábla Eredmény táblája minden oszlopával Ahol SELECT * FROM régitábla a régitábla Eredmény táblája minden oszlopával

Adatsor módosítása a táblában UPDATE táblanév UPDATE táblanév SET oszlop1 = újérték1,... [WHERE feltétel] WHERE nélkül minden sorra végrehajtódik WHERE nélkül minden sorra végrehajtódik

Sorok törlése a tábálból DELETE FROM táblanév [WHERE feltétel] DELETE FROM táblanév [WHERE feltétel] WHERE nélkül minden sort töröl WHERE nélkül minden sort töröl

Lekérdezés adattáblákból A lekérdezés során egy úgynevezett eredménytábla (E-tábla) jön létre A lekérdezés során egy úgynevezett eredménytábla (E-tábla) jön létre A SELECT paranccsal az E-tábla a végrehajtás során lépésenként alakul ki A SELECT paranccsal az E-tábla a végrehajtás során lépésenként alakul ki

A SELECT parancs szerkezete SELECT … oszlop kiválasztása= pojekció SELECT … oszlop kiválasztása= pojekció FROM … tábla-nevek megadása = Descartes-szorzat [WHERE …] sorok kiválasztása = szelekció [GROUP BY …] csoportosítás [HAVING …] csoportok közötti választás [UNION…] E-táblák összefűzése = unió [ORDER BY …] E-tábla rendezése [SAVE TO TEMP …]; E-tábla megőrzése

A select utasítás részei részletesen SELECT [ALL|DISTINCT] oszlopnév-lista|* FROM táblanév lista; SELECT [ALL|DISTINCT] oszlopnév-lista|* FROM táblanév lista; A FROM mögé írt táblákból a SELECT mögé írt paraméterek szerint oszlopokat emel ki A FROM mögé írt táblákból a SELECT mögé írt paraméterek szerint oszlopokat emel ki Ezekből eredmény táblát hoz létre Ezekből eredmény táblát hoz létre

Az opciók A * hatása: A * hatása: A tábla, vagy táblák minden oszlopa bekerül az E- táblába A tábla, vagy táblák minden oszlopa bekerül az E- táblába Az oszlopnév-lista hatása: Az oszlopnév-lista hatása: A lista elemei lesznek oszlopai az E-táblának A lista elemei lesznek oszlopai az E-táblának Az ALL hatása: Az ALL hatása: Az E-tábla duplikált sorokat is tartalmazhat Az E-tábla duplikált sorokat is tartalmazhat A DISTINCT hatása: A DISTINCT hatása: A duplikált sorokat csak egyszer tartalmazza A duplikált sorokat csak egyszer tartalmazza

A lista elemei lehetnek: A tábla oszlopnevei; ha több táblában is szerepel ugyanaz az oszlopnév, akkor táblanév.oszlopnév alakban írjuk A tábla oszlopnevei; ha több táblában is szerepel ugyanaz az oszlopnév, akkor táblanév.oszlopnév alakban írjuk A FROM által kijelölt tábla oszlopneveiből képzett kifejezés A FROM által kijelölt tábla oszlopneveiből képzett kifejezés Az aggregáló függvények valamelyike Az aggregáló függvények valamelyike Egyéb kifejezés Egyéb kifejezés

Példák származtatott oszlopokra Aritmetikai kifejezés Aritmetikai kifejezés SELECT joved+2000 FROM tanulo; SELECT joved+2000 FROM tanulo; Karakteres kifejezés Karakteres kifejezés SELECT left(osztaly,1),upper(nev) FROM tanulo; SELECT left(osztaly,1),upper(nev) FROM tanulo; Aggregáló függvény Aggregáló függvény SELECT AVG(joved) FROM tanulo; SELECT AVG(joved) FROM tanulo;

Aggregáló függvények A COUNT függvény A COUNT függvény COUNT([DISTINCT] oszlopnév|*) COUNT([DISTINCT] oszlopnév|*) Megszámolja az oszlopnév által megadott oszlop elemeinek számát Megszámolja az oszlopnév által megadott oszlop elemeinek számát

Aggregáló függvények A SUM függvény A SUM függvény SUM [ALL] kifejezés | [ALL | DISTINCT] [oszlopnév] SUM [ALL] kifejezés | [ALL | DISTINCT] [oszlopnév] Összegzi a numerikus típusú oszlop értékeit Összegzi a numerikus típusú oszlop értékeit

Aggregáló függvények A következő aggregáló függvények paraméterezése megegyezik a SUM –mal A következő aggregáló függvények paraméterezése megegyezik a SUM –mal AVG (…) : átlag képzése AVG (…) : átlag képzése MIN (…) : minimális érték kikeresése MIN (…) : minimális érték kikeresése MAX (…) : maximális érték kikeresése MAX (…) : maximális érték kikeresése Megjegyzés: a MIN és MAX fv. Argumentuma numerikus, dátum vagy karakteres is lehet Megjegyzés: a MIN és MAX fv. Argumentuma numerikus, dátum vagy karakteres is lehet

A WHERE alparancs WHERE feltétel WHERE feltétel Az E-tábla a feltételeknek megfelelő sorokat teszi be Az E-tábla a feltételeknek megfelelő sorokat teszi be A feltétel egy logikai kifejezés A feltétel egy logikai kifejezés

Predikátum függvények A WHERE feltételében használhatjuk A WHERE feltételében használhatjuk A BETWEEN predikátum A BETWEEN predikátum kif1 BETWEEN kif2 AND kif3 kif1 BETWEEN kif2 AND kif3 Igaz ha : kif2 <= kif1 <= kif3 Igaz ha : kif2 <= kif1 <= kif3 Az In predikátum Az In predikátum Oszlopnév IN (értéklista) Oszlopnév IN (értéklista) Igaz, ha az oszlopnév értékei elemei a listának Igaz, ha az oszlopnév értékei elemei a listának A LIKE predikátum A LIKE predikátum Oszlopnév LIKE érték Oszlopnév LIKE érték Igaz, ha az oszlop értéke megegyezik a like utáni értékkel Igaz, ha az oszlop értéke megegyezik a like utáni értékkel Maszkolható: _% Maszkolható: _%

A GROUP BY alparancs GROUP BY oszlopnév[,oszlopnév]… GROUP BY oszlopnév[,oszlopnév]… Az oszlopk értékei alapján csoportokat képez (egy csoportba az azonos értékűek tartoznak) Az oszlopk értékei alapján csoportokat képez (egy csoportba az azonos értékűek tartoznak) A csoportra rendszerint aggregáló függvényt alkalmazunk A csoportra rendszerint aggregáló függvényt alkalmazunk

Megkötések Minden GROUP BY –beli oszlopnévnek vagy a SELECT-ben, vagy a SELECT-ben felírt aggregáló függvény argumentumában kell szerepelnie Minden GROUP BY –beli oszlopnévnek vagy a SELECT-ben, vagy a SELECT-ben felírt aggregáló függvény argumentumában kell szerepelnie Nem lehet származtatott oszlopnév a GROUP BY argumentuma Nem lehet származtatott oszlopnév a GROUP BY argumentuma

A HAVING alparancs HAVING feltétel HAVING feltétel A GROUP BY csoportjaiból, csak azok a sorok kerülnek az E-táblába, amelyek eleget tesznek a feltételnek A GROUP BY csoportjaiból, csak azok a sorok kerülnek az E-táblába, amelyek eleget tesznek a feltételnek

Az ORDER BY alparancs ORDER BY oszlopnév / oszlopnév-sorszám [ASC/DESC]… ORDER BY oszlopnév / oszlopnév-sorszám [ASC/DESC]… Az oszlopok értéke szerint rendezi az E-táblát Az oszlopok értéke szerint rendezi az E-táblát

Megjegyzés Az oszlopnévnek szerepelnie kell a SELECT- ben Az oszlopnévnek szerepelnie kell a SELECT- ben Az oszlop-sorszám a SELECT-ben megadott oszlopnév sorszáma Az oszlop-sorszám a SELECT-ben megadott oszlopnév sorszáma Az ASC növekvő Az ASC növekvő A DESC csökkenő rendezettség A DESC csökkenő rendezettség

A UNION alparancs SELECT …. UNION SELECT …[UNION SELECT]… SELECT …. UNION SELECT …[UNION SELECT]… Veszi az egymás után következő E-táblák unióját Veszi az egymás után következő E-táblák unióját Az E-tábláknak kompatibilisnek kell lenniük: Az E-tábláknak kompatibilisnek kell lenniük: Azonos oszlopszám Azonos oszlopszám Az oszlopoknak azonos típusúnak kell lenniük Az oszlopoknak azonos típusúnak kell lenniük

Táblák összekapcsolása A táblák összekapcsolása azt jelenti, hogy a FROM mögött több A-tábla nevét adjuk meg A táblák összekapcsolása azt jelenti, hogy a FROM mögött több A-tábla nevét adjuk meg SELECT * FROM table1, table2 SELECT * FROM table1, table2 Ilyenkor a táblák DESCARTES-szorzata képződik Ilyenkor a táblák DESCARTES-szorzata képződik

Táblák összekapcsolása Egyenlőség-kapcsolat (EQUIJOIN-kapcsolat) Egyenlőség-kapcsolat (EQUIJOIN-kapcsolat) Gyakran kötünk össze táblákat közös oszlopok alapján (kulcs-oszlopok) Gyakran kötünk össze táblákat közös oszlopok alapján (kulcs-oszlopok) Tábla összekapcsolása önmagával (SELF-JOIN) Tábla összekapcsolása önmagával (SELF-JOIN) Az A-táblát önmagával is összekapcsolhatjuk Az A-táblát önmagával is összekapcsolhatjuk A táblát két névvel jelöljük meg A táblát két névvel jelöljük meg

Beágyazott SELECT parancsok A WHERE és a HAVING feltételében SELECT parancs is szerepelhet A WHERE és a HAVING feltételében SELECT parancs is szerepelhet Ez az úgynevezett belső vagy beágyazott SELECT Ez az úgynevezett belső vagy beágyazott SELECT DE nem tartalmazhat ORDER BY, SAVE TO TEMP és FOR UPDATE OF klauzákat DE nem tartalmazhat ORDER BY, SAVE TO TEMP és FOR UPDATE OF klauzákat A belső SELECT is tartalmazhat belső SELECT-et, vagyis a SELECT-ek egymásba ágyazhatók A belső SELECT is tartalmazhat belső SELECT-et, vagyis a SELECT-ek egymásba ágyazhatók

Beágyazott SELECT parancsok A belső SELECT –et mindig zárójelpárban kell megadni A belső SELECT –et mindig zárójelpárban kell megadni Sorrend: Sorrend: Először a belső, majd a külső lekérdezést értékeli ki, és végül összeveti az értékeket Először a belső, majd a külső lekérdezést értékeli ki, és végül összeveti az értékeket A másodlagos lekérdezést a főlekérdezés minden sorával külön kiértékeli A másodlagos lekérdezést a főlekérdezés minden sorával külön kiértékeli

Esetek Egyetlen értéket tartalmazó belső E-tábla Egyetlen értéket tartalmazó belső E-tábla Több értéket tartalmazó belső E-tábla Több értéket tartalmazó belső E-tábla Ilyenkor használni kell az IN, ANY, ALL vagy EXISTS predikátumok valamelyikét Ilyenkor használni kell az IN, ANY, ALL vagy EXISTS predikátumok valamelyikét A megadás formátuma: A megadás formátuma: Predikátum (belső SELECT) Predikátum (belső SELECT)

Predikátumok Az IN predikátum: Az IN predikátum: Igaz értéket ad vissza, ha az egyelőség valamelyik belső E-táblabeli értékre igaz Igaz értéket ad vissza, ha az egyelőség valamelyik belső E-táblabeli értékre igaz Az ANY predikátum: Az ANY predikátum: Igaz, ha a megadott összehasonlítás valamelyik belső E-táblabeli értékre igaz Igaz, ha a megadott összehasonlítás valamelyik belső E-táblabeli értékre igaz

Predikátumok Az ALL predikátum Az ALL predikátum Igaz értéket ad vissza, ha az egyelőség valamennyi belső E-táblabeli értékre igaz Igaz értéket ad vissza, ha az egyelőség valamennyi belső E-táblabeli értékre igaz Az EXISTS predikátum Az EXISTS predikátum Kiválasztja azokat a sorokat, amelyekhez a belső E- táblában egy vagy több sor tartozik Kiválasztja azokat a sorokat, amelyekhez a belső E- táblában egy vagy több sor tartozik Az IN operátor helyett mindig alkalmazható, de fordítva nem Az IN operátor helyett mindig alkalmazható, de fordítva nem

Esetek A belső SELECT egyszer hajtódik végre A belső SELECT egyszer hajtódik végre A belső SELECT a külső minden sorára végrehajtódik A belső SELECT a külső minden sorára végrehajtódik Okozója: a belső SELECT –beli hivatkozások a külsőre Okozója: a belső SELECT –beli hivatkozások a külsőre SELECT nev, osztaly FROM tanulo WHERE azon NOT IN (SELECT azon FROM szemely) SELECT nev, osztaly FROM tanulo WHERE azon NOT IN (SELECT azon FROM szemely) SELECT nev FROM tanulo WHERE azon IN (SELECT azon FROM segely WHERE jogcim IN (SELECT jogcim FROM jogcim WHERE megnev LIKE ‘%konyv%)); SELECT nev FROM tanulo WHERE azon IN (SELECT azon FROM segely WHERE jogcim IN (SELECT jogcim FROM jogcim WHERE megnev LIKE ‘%konyv%));