Adatbázis rendszerek SQL nyomkövetés

Hasonló dokumentumok
B I T M A N B I v: T M A N

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbázis-kezelés, információs-rendszerek

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis rendszerek 1. 7.Gy: Viszonyított betűszámtan. Relációs algebra alapok

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Adatbázis-kezelés. Harmadik előadás

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

BEVEZETÉS Az objektum fogalma

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázisok* tulajdonságai

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

ADATBÁZIS RENDSZEREK I BEADANDÓ

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

B I T M A N B I v: T M A N

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázis használat I. 5. gyakorlat

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Java és web programozás

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázisok elmélete 10. előadás

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Vizuális programozás gyakorlat

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Készítette: Szabóné Nacsa Rozália

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázis Rendszerek II. 2. Gyakorló környezet

Java és web programozás

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

Adatbázis tartalmának módosítása

SQL parancsok feldolgozása

Az SQL adatbázisnyelv: DML

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Adatbázis rendszerek tervezése

Adatbázisok elmélete 9. előadás

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Adatbázisok elmélete 9. előadás

Adatbázis használat I. 2. gyakorlat

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

SQL DDL-2 (aktív elemek) triggerek

SQL DDL-1: táblák és megszorítások

Adatbázisok I. Az SQL nyelv

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

Alkalmazói rendszerek ACCESS ZH - javítókulcs Informatika tanár MSC, levelező tagozat, január 06.

Adatbázis, adatbázis-kezelő

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

B I T M A N B I v: T M A N

LBRA6i integrált rendszer

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Relációsémák létrehozása SQL nyelvben

Adatbázis rendszerek Gy: MySQL alapok

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR ( Adatbázisrendszerek) 12. Előadás:

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Bevezetés: az SQL-be

Elemi alkalmazások fejlesztése IV.

Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Adatbázisok I A relációs algebra

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

A könyv tartalomjegyzéke

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Hozd létre az atestat_2011 adatbázisban a diakok táblát a következő szerkezettel: 1. Töltsd fel az adattáblát legkevesebb 5 bejegyzéssel (rekorddal).

Adatbázis használat I. 2. gyakorlat

Adatbázisok biztonsága

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Webfejlesztés 4. alkalom

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázisok II. rész

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni:

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Átírás:

Adatbázis rendszerek 1. 12. SQL nyomkövetés 1/32 B ITv: MAN 2017.10.26

Nyomkövetési feladat 2/32

Gyakorló feladatok Termék-Vásárlás-Vásárló Oktató-Tantárgy-Hallgató 3/32

Gyakorló feladat: Termék-Vásárlás-Vásárló Kód Név Vásárlás VID Név Termék Vásárló Ár Leírás Dátum Darab Lakcím FizMód Termék Vásárló Kód C5 Név C25 Ár N6 Leírás C25 Név C25 Lakcím C40 FizMód C15 VID C5 Vásárlás Kód C5 Dátum D Darab N6 Azon C5 4/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 2. Termék Vásárló Kód C5 Név C25 Ár N6 Leírás C25 Név C25 Lakcím C40 FizMód C15 VID C5 Vásárlás Kód C5 Dátum D Darab N6 Azon C5 Séma leírás: Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] 5/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 3. 6/32 Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] create table termék( kód char(5) NOT NULL PRIMARY KEY, név char(25), ár number(6), leiras char(25)); create table vásárló( VID char(5) NOT NULL PRIMARY KEY, név char(25), lakcím char(40), fizmód char(15)); create table vásárlás( kód char(5) REFERENCES termék NOT NULL, dátum date, darab number(6), azon char(5) REFERENCES vásárló NOT NULL );

Gyakorló feladat: Termék-Vásárlás-Vásárló 4. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] Alter table vásárló modify lakcím char(50); Alter table vásárló add szülidő date; Nem lehet mező szélességét csökkenteni, és mezőt törölni! Megoldás: Új tábla létrehozása a megfelelő mezőszerkezettel, ezután az adatok átmásolása ebbe a táblába, és az eredeti tábla törlése! Drop table vásárlás; Drop table vásárló; Drop table termék; 7/32 Nem lehet olyan táblát törölni, amelyre más tábla hivatkozik! Fordított sorrend törléskor, mint létrehozáskor!

Gyakorló feladat: Termék-Vásárlás-Vásárló 5. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] insert into termék Values ('A0123','Sál',1500,'Női-férfi termék'); insert into termek Values (kód,név,ár) Values('A0123','Sál',1500); insert into termek Values ('A0123','Sál',1500,NULL); insert into termék Values ('A0123','Sál',NULL,'Női-férfi termék'); UPDATE termék SET ár=ár*1.1; UPDATE termék SET ár=1200 WHERE kód LIKE 'A%'; Delete from termék; Delete from termék where kód LIKE 'A%'; 8/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 6. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] SELECT név, ár FROM termék; SELECT név, ár FROM termék ORDER BY név; SELECT név, ár FROM termék ORDER BY ár DESC; SELECT név, ár FROM termék WHERE leírás LIKE '%női%'; SELECT név, lakcím FROM vásárló WHERE fizmód= 'bankkártya'; SELECT név, lakcím FROM vásárló WHERE fizmód= 'bankkártya' OR fizmód= 'utánvét' ; SELECT név, lakcím FROM vásárló WHERE fizmód IN ('bankkártya', 'utánvét'); 9/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 7. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] SELECT név, ár FROM termék WHERE ár BETWEEN 200 AND 500; SELECT név FROM termék WHERE leírás IS NULL; SELECT név, darab FROM termék,vásárlás 10/32 WHERE termék.kód=vásárlás.kód AND darab>5; SELECT termék.név, vásárló.név FROM termék,vásárlás,vásárló WHERE termék.kód=vásárlás.kód AND vásárló.vid=vásárlás.azon; SELECT termék.név, darab, dátum FROM termék,vásárlás,vásárló WHERE termék.kód=vásárlás.kód AND vásárló.vid=vásárlás.azon AND vásárló.név= 'Kovács Béla';

Gyakorló feladat: Termék-Vásárlás-Vásárló 8. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] SELECT vásárló.név FROM termék,vásárlás,vásárló WHERE termék.kód=vásárlás.kód AND vásárló.vid=vásárlás.azon AND fizmód= 'bankkártya' AND termék.név LIKE '%sál%'; SELECT vásárló.név, dátum FROM vásárlás,vásárló WHERE vásárló.vid=vásárlás.azon AND darab > 3; SELECT vásárló.név, termék.név FROM termék,vásárlás,vásárló WHERE termék.kód=vásárlás.kód AND vásárló.vid=vásárlás.azon AND dátum = '2009.11.11'; 11/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 9. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] SELECT count(*) FROM termék; SELECT max(ár) FROM termék; SELECT avg(ár) FROM termék; SELECT szum(ár*darab) FROM termék,vásárlás WHERE termék.kód=vásárlás.kód; 12/32

Gyakorló feladat: Termék-Vásárlás-Vásárló 10. Termék [ Kód, Név, Ár, Leírás ] Vásárló [ Név, Lakcím, FizMód, VID ] Vásárlás [ Kód (Termék), Dátum, Darab, Azon (Vásárló) ] SELECT szum(ár*darab) FROM termék,vásárlás,vásárló WHERE termék.kód=vásárlás.kód AND vásárló.vid=vásárlás.azon AND vásárló.név= 'Kovács Béla'; SELECT vásárló.név, szum(ár*darab) FROM vásárlás,vásárló WHERE vásárló.vid=vásárlás.azon AND fizmód= 'utánvét' GROUP BY vásárló.név; 13/32

Gyakorló feladatok Termék-Vásárlás-Vásárló Oktató-Tantárgy-Hallgató 14/32

15/32 Gyakorló feladat: Oktató-Tantárgy-Hallgató Cím C20 Tkód C4 Kredit N1 Tantárgy Oktató C6 Név C30 Okód C6 Tanszék C20 Oktató Fizetés N7 Hkód C6 Tkód C4 Tanév/félév C20 Kapcsoló Dátum D Vizsga Jegy N1 Hkód C6 Tkód C4 Név C30 Hkód C6 Város C20 Hallgató Utca C20 Hsz C5 SzülD D

Gyakorló feladat: Oktató-Tantárgy-Hallgató 2. Hozzuk létre a táblákat: A táblák létrehozásának sorrendje lényeges: először azokat kell létrehozni amikre később hivatkozunk, azután a hivatkozó táblákat. Oktató Okód C6 Név C20 Tanszék C25 Fizetés N7 CREATE TABLE oktató( okód char(6) PRIMARY KEY, név char(20) NOT NULL, tanszék char(25), fizetés number(7) CHECK (fizetes>=100000)); 16/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 3. Tantárgy Tkód Cím C4 C20 Kredit N1 Oktató C6 Hallgató Hkód Név C6 C30 Város C20 Utca C20 Hsz C5 SzülD D CREATE TABLE tantárgy ( tkód char(4) PRIMARY KEY, cím char(20) NOT NULL, kredit number(1) CHECK(kredit IN(2,3,4,5,6)), oktató REFERENCES oktató NOT NULL); CREATE TABLE hallgató( hkód char(6) PRIMARY KEY, név char(30) NOT NULL, város char(20), utca char(20), hsz char(5), szüld date); 17/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 4. Kapcsoló Tkód Hkód C4 C6 Tanév/félév C20 Vizsga Tkód Hkód C4 C6 Dátum D Jegy N1 CREATE TABLE kapcsoló( tkód char(4) REFERENCES tantárgy, hkód char(6) REFERENCES hallgató, tanév/félév char(20), PRIMARY KEY (tkód, hkód)); Ha a Vizsga táblát nem implementáljuk, akkor a Kapcsoló táblában nem szükséges az elsődleges kulcs kijelölése. CREATE TABLE vizsga ( tkód char(4), hkód char(6), dátum date, jegy number(1), FOREIGN KEY (tkód, hkód) REFERENCES kapcsoló); 18/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 5. Bővítsük az Oktató táblát egy Beosztás mezővel: ALTER TABLE oktató ADD (beosztás char(20)); Töröljük a táblákat: A táblák törlésének sorrendje lényeges: először a hivatkozó táblákat kell törölni, és csak azután lehet azokat, amelyekre van hivatkozás. DROP TABLE vizsga; DROP TABLE kapcsoló; DROP TABLE hallgató; DROP TABLE tantárgy; DROP TABLE oktató; 19/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 6. Oktató Okód C6 Név C20 Tanszék C25 Fizetés N7 Beosztás C20 Not Null >100000 Vigyünk fel két új Oktató rekordot a megadott integritási feltételek betartásával (ügyeljünk a mezők sorrendjére, számára és típusára): INSERT INTO oktató VALUES ('I4IUF2', 'Kiss Tamás', 'Matematika', 152000,'tanársegéd'); INSERT INTO oktató VALUES ('AB2312', 'Nagy Ferenc', 'Informatika', 220000,NULL); 20/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 7. Oktató Okód C6 Primary 21/32 Név C20 Not Null Tanszék C25 Fizetés N7 >100000 Beosztás C20 I4IUF2 Kiss Tamás Matematika 152000 tanársegéd AB2312 Nagy Ferenc Informatika 220000 Vigyünk fel Oktató rekordokat, szándékosan figyelmen kívül hagyva az integritási feltételeket: INSERT INTO oktató VALUES ('AB2312', 'Kovács Zoltán', 'Fizika', 220000,NULL); Hiba: az elsődleges kulcs már létezik, egyediség sérül INSERT INTO oktató VALUES ('GFO123', NULL, 'Informatika', 220000,NULL); Hiba: a név mező nem maradhat üres (Az idegen kulcs mező sem!)

Gyakorló feladat: Oktató-Tantárgy-Hallgató 8. Oktató Okód C6 Primary Név C20 Not Null Tanszék C25 Fizetés N7 >100000 Beosztás C20 I4IUF2 Kiss Tamás Matematika 152000 tanársegéd AB2312 Nagy Ferenc Informatika 220000 Vigyünk fel Oktató és Tantárgy rekordokat, szándékosan figyelmen kívül hagyva az integritási feltételeket: INSERT INTO oktató VALUES ('EXE234', 'Tóth László', 'Informatika', 80000,NULL); Hiba: a fizetés mezőértéke nem megfelelő INSERT INTO tantárgy VALUES ('GEIAL222','Adatbázis_1',5,'111111'); Hiba: a hivatkozott oktató nem létezik 22/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 9. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] Növeljük a tanársegédek fizetését 10%-kal: UPDATE Oktató SET Fizetés=Fizetés*1.1 WHERE Beosztás='tanársegéd'; Növeljük eggyel minden tárgy kreditjét: UPDATE Tantárgy SET Kredit=Kredit+1; Töröljük az Informatika tanszéken dolgozókat: DELETE FROM Oktató WHERE Tanszék='Informatika'; 23/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 10. Adjunk olvasási jogot az Oktató táblára mindenkinek: GRANT SELECT ON oktató TO PUBLIC; Adjunk beszúrási jogot az Oktató táblára Péter felhasználónak úgy, hogy továbbadhassa azt: GRANT INSERT ON oktató TO Péter WITH GRANT OPTION; Vonjunk vissza minden jogot az Oktató táblára vonatkozóan Pétertől: REVOKE ALL ON oktató FROM Péter; Adjunk törlési és módosítási jogot az Oktató táblára Tamásnak: GRANT DELETE,UPDATE ON oktató TO Tamás; 24/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 11. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] Oktatók neve névsorrendben: SELECT név FROM oktató ORDER BY név; Az Informatika tanszéken oktatók neve: SELECT név FROM oktató WHERE tanszék='informatika'; Az 5 kreditnél többet érő tárgyak kódja és címe: SELECT tkód, cím FROM tantárgy WHERE kredit>5; Oktatók minden adata, fizetésük csökkenő sorrendjében: SELECT * FROM oktató ORDER BY fizetés DESC; 25/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 12. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] Oktatók neve és tárgyaik címe, név és cím szerint sorrendben: SELECT név, cím FROM oktató, tantárgy WHERE okód=oktató ORDER BY név, cím; Az Informatika tanszéken oktatók neve és tárgyaik címe: SELECT név, cím FROM oktató, tantárgy WHERE okód=oktató AND tanszék='informatika'; Az Informatika tanszéken oktatott, 5 kreditnél többet érő tárgyak kódja: SELECT tkód FROM tantárgy INNER JOIN oktató ON oktató=okód WHERE kredit>5 AND tanszék LIKE 'Inf%'; 26/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 13. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] Tanszékek listája ismétlődés nélkül: SELECT DISTINCT tanszék FROM oktató; Minden oktató neve és tárgyaik címe: SELECT név, cím FROM oktató LEFT OUTER JOIN tantárgy ON okód=oktató; Azok az oktatók, akiknek nincs 5 kreditnél többet érőtárgya: SELECT Név FROM oktató WHERE okód NOT IN (SELECT oktató FROM tantárgy WHERE kredit>5); 27/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 14. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] A 150 és 220 ezer Ft között kereső oktatók neve, fizetése: SELECT Név, Fizetés FROM oktató WHERE fizetés BETWEEN 150000 AND 220000; SELECT Név, Fizetés FROM oktató WHERE fizetés >= 150000 AND fizetés <= 220000; Az átlagos kreditpontszám: SELECT avg(kredit) FROM tantárgy; Az Informatika tanszéken oktatók létszáma: SELECT count(*) FROM oktató WHERE tanszék LIKE 'Inf%'; 28/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 15. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] A legnagyobb kreditpontszámú tárgyak címe: SELECT cím FROM tantárgy WHERE kredit = (SELECT max(kredit) FROM tantárgy); Az átlagnál alacsonyabb kreditpontú tárgyak címe és oktatóik neve: SELECT cím,név FROM tantárgy, oktató WHERE oktató=okód AND kredit < (SELECT avg(kredit) FROM tantárgy); Tanszékenként az oktatók létszáma, létszám szerint csökkenő sorrendbe rendezve: SELECT tanszék, count(*) FROM oktató GROUP BY tanszék ORDER BY count(*) DESC; 29/32

Gyakorló feladat: Oktató-Tantárgy-Hallgató 16. Oktató[ Okód, Név, Tanszék, Fizetés, Beosztás ] Tantárgy [ Tkód, Cím, Kredit, Oktató(Oktató) ] Hallgató [ Hkód, Név, Város, Utca, Hsz, SzülD ] Kapcsoló [ Tkód(Tantárgy), Hkód(Hallgató), Tanév/félév ] Vizsga [ Tkód(Kapcsoló), Hkód(Kapcsoló), Dátum, Jegy ] Azon oktatók, akiknek 2-nél több tárgyuk van: SELECT * FROM oktató WHERE okód IN (SELECT okód, count(*) FROM oktató, tantárgy WHERE okód=oktató GROUP BY okód HAVING count(*)>2); Saját tanszékükre jellemző átlagnál kevesebbet kereső oktatók neve: SELECT o1.név FROM oktató o1 WHERE o1.fizetés < (SELECT avg(o2.fizetés) FROM oktató o2 WHERE o1.tanszék=o2.tanszék); 30/32

31/32

VÉGE VÉGE 32/32