Adabáziskezelés gyakorlat SQL

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

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 gyakorlat: SQL 2. rész SELECT

Az SQL adatbázisnyelv: DML

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 9. előadás

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

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

SQL DDL-2 (aktív elemek) triggerek

4. Előadás Az SQL adatbázisnyelv

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

Adatbázisok* tulajdonságai

Adatbázisok I. Az SQL nyelv

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Tankönyv példák kidolgozása

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

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

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

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.

Relációs algebra 2.rész példák

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

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

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

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

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

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

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

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

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

Access gyakorlati feladatok lépésről lépésre

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

Adatbázis rendszerek SQL nyomkövetés

A könyv tartalomjegyzéke

Adatbázisok I A relációs algebra

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

Adatbázisok tavaszi félév Vizsgatételsor

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

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

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:

Kidolgozott példák. E-K diagram. Tánc egyednek csak egyetlen attribútuma van. Most a megoldás úgy is helyes lenne,

Adatbázis rendszerek tervezése

Bódy Bence Az SQL egy újabb példán keresztül

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

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

Adattípusok. Max. 2GByte

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

CAD-CAM informatikus CAD-CAM informatikus

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

ADATBÁZISOK I. ELŐADÁS ÉS GYAKORLAT JEGYZET

SQL feladatok megoldasa

Adattípusok. Max. 2GByte

Lekérdezések az SQL-ben 1.rész

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

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

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

Adatbázis-kezelés Feladatok és megoldások

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

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

Lekérdezések az SQL-ben 1.rész

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

ÉRETTSÉGI VIZSGA EMELT SZINT% GYAKORLATI. ÉRETTSÉGI VIZSGA május 14. Összesen: 45 pont. Egy adott távhoz tartozó díjazás meghatározása 4 pont

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázis-kezelés Feladatok és megoldások

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

SQL parancsok feldolgozása

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

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

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

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

Csoportosított adatok megjelenítése összesítı függvények használatával. Copyright 2004, Oracle. All rights reserved.

Az SQL lekérdeznyelv

Azonosító jel: INFORMATIKA EMELT SZINTŰ GYAKORLATI VIZSGA október :00. A gyakorlati vizsga időtartama: 240 perc

Adatbázis használat I. 2. gyakorlat

BEVEZETÉS Az objektum fogalma

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

Adatbázis, adatbázis-kezelő

A MUNKÁLTATÓK JÖVŐBELI FOGLALKOZTATÁSI IGÉNYEINEK FELMÉRÉSE 250 ELEMSZÁMÚ MUNKÁLTATÓI MINTÁN

Többtáblás lekérdezések megjelenítése

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Adatbáziskezelés. SQL parancsok. Függvények

Lekérdezések az SQL-ben 2.rész

Gyakori elemhalmazok

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

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

Több tábla összekapcsolásán alapuló lekérdezések

INFORMATIKAI ALAPISMERETEK

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

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

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ KÖZÉPSZINT% GYAKORLATI ÉRETTSÉGI VIZSGA. É R E T T S É G I V I Z S G A május 15.

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

példa: Legyen egy zenés CD-ket tartalmazó objektum-orientált adatbázis. Feltételezzük: egy zenés CD típusa audio, vagy mp3-as, vagy videoklippeket

Gazdasági folyamatok térbeli elemzése. 5. elıadás

A SELECT működése. Ttanar tábla: Tdiak tábla:

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

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

Egyed-kapcsolat modell

Átírás:

Adabáziskezelés gyakorlat SQL 1. Tekintsük a következő alaprelációkat (a kézenfekvő értelmezéssel): Kedvel(személy, sör), Kapható(söröző, sör), Látogat(személy, söröző). Fejezze ki SQL nyelven azon személyek összességét, akik járnak olyan vendéglőbe, ahol tartanak olyan sört, amit ők (a személyek) kedvelnek. azon sörök összességét, amelyek kaphatók egy olyan sörözőben, amelynek valamelyik látogatója kedveli őket (ti. a söröket). c) * azon sörök összességét, melyeket minden látogató kedvel azokban a sörözőkben, ahol kaphatók. d) * azon személyek összességét, akik minden sört kedvelnek azokban a sörözőkben, melyeket látogatnak. c) SELECT DISTINCT személy FROM Kedvel NATURAL JOIN Kapható NATURAL JOIN Látogat SELECT DISTINCT sör FROM Kedvel NATURAL JOIN Kapható NATURAL JOIN Látogat SELECT DISTINCT sör FROM Kapható AS k1 WHERE k1.sör NOT IN ( SELECT k2.sör FROM Kapható AS k2 NATURAL JOIN Látogat WHERE személy NOT IN ( SELECT személy FROM Kedvel WHERE Kedvel.sör=k2.sör)) SELECT sör FROM Kapható (SELECT sör FROM ((SELECT személy, sör FROM Kapható NATURAL JOIN Látogat) (SELECT személy, sör FROM Kedvel)) ) 1

d) SELECT DISTINCT személy FROM Kedvel SELECT DISTINCT személy FROM Kapható NATURAL JOIN Látogat WHERE sör NOT IN ( SELECT sör FROM Kedvel WHERE személy=látogat.személy) 6 7. sor: megmondja, hogy egy adott személy milyen söröket kedvel. 4 7. sor: megmondja, hogy egy adott személy kaphat-e az általa látogatott sörözőkben olyan sört, amit nem kedvel. 3 7. sor: kiválasztja azokat a személyeket, akik nem kedvelnek minden általuk kapható sört Egész lekérdezés: a 3 7. sornak veszi a negáltját. Második megoldás SELECT DISTINCT személy AS sz FROM Kedvel WHERE NOT EXISTS ( SELECT sör FROM Kapható NATURAL JOIN Látogat WHERE személy=sz SELECT sör FROM Kedvel WHERE személy=sz) A lekérdezés 4 6. sora pontosan akkor ad nem üres eredményt, ha az sz személy által látogatott sörözőkben kapható sörök halmaza nem részhalmaza az általa kedvelt sörök halmazának, azaz sz vásárolhat olyan sört, amit nem szeret. 2. Tekintsük az alábbi Csillagflotta adatbázissémát: Csillaghajó(hajónév, év, faj), Dolgozó(dolgozónév, azonosító, születés), Beosztás(azonosító, hajónév, rang). Csillaghajó: a hajó neve, gyártási éve és az, hogy melyik faj tervei alapján készült Dolgozó: neve, Csillagflotta-azonosítója, mikor született; Beosztás: melyik dolgozó, melyik hajón, milyen rangban dolgozik.. Adjunk SQL lekérdezést, mely megkeresi azon a dolgozók nevét, akik klingon (faj által tervezett) hajón dolgoznak. azon a dolgozók nevét, akik Catherine Janeway kapitány hajóján dolgoznak. c) a Voyager (nevű hajó) legfiatalabb dolgozójának nevét. 2

NATURAL JOIN Csillaghajó WHERE faj = klingon ); WHERE Beosztás.hajónév IN ( SELECT hajónév FROM Csillaghajó WHERE faj = klingon ); Az alkérdés kikeresi a klingon hajókat, a fő rész meg azokat a dolgozókat adja meg, akik ezeken a hajókon vannak. FROM Dolgozó, Beosztás WHERE Dolgozó.azonosító = Beosztás.azonosító AND Beosztás.hajónév IN ( SELECT hajónév FROM Beosztás, Dolgozó WHERE Beosztás.azonosító = Dolgozó.azonosító AND Dolgozónév = Catherine Janeway AND rang = kapitány ); Az alkérdés kikeresi azokat a hajókat, ahol Catherine Janeway a kapitány, a fő rész meg azokat a dolgozókat adja meg, akik ezeken a hajókon vannak. c) FROM Dolgozó AS d1, Beosztás AS b1, Dolgozó AS d2, Beosztás AS b2 WHERE d1.azonosító = b1.azonosító AND d2.azonosító = b2.azonosító AND b1.hajónév = b2.hajónév AND d2.dolgozónév = Catherine Janeway AND b2.rang = kapitány ; WHERE hajónév = Voyager AND születés = (SELECT MAX(születés) WHERE hajónév = Voyager ) 3

3. Tekintsük az alábbi adatbázissémát: Járat(Járatszám, Honnan, Hova, Távolság), Repülőtípus(TípusAzonosító, TípusNév, RepTávolság), Jogosítvány(PilótaAzonosító, TípusAzonosító), Pilóta(PilótaAzonosító, PilótaNév, Fizetés). Járat: adott járatszámú járat honnan indul, hova érkezik, mennyi a két végpont távolsága (kulcs a Járatszám); Repülőtípus: a típus azonosítója, neve és az, hogy mekkora maximális távolságra tud leszállás nélkül elrepülni (kulcs a RepAzonosító); Jogosítvány: milyen azonosítójú pilóta milyen azonosítójú gépet tud elvezetni (itt a PilótaAzonosító és a TípusAzonosító együtt alkot kulcsot); Pilóta: milyen azonosítójú pilóta, mi a neve és mennyi a fizetése (kulcs a Pilóta- Azonosító). Adjunk SQL kérdést, ami megkeresi azokat a (kiindulási város, cél város) párokat melyek közti utat minden olyan pilóta le tud repülni (valamelyik általa vezethető géppel, leszállás nélkül), aki legalább 100 000 dollárt keres. Azonos sorok ne szerepeljenek az eredményben. azokhoz a pilótákhoz, akik legalább három különböző géptípust tudnak vezetni, meg akarjuk keresni azt a maximális távolságot, amelyet általuk vezethető gép leszállás nélkül repülni tud. SELECT DISTINCT Honnan, Hova FROM Járat WHERE Távolság <= ALL ( SELECT m FROM ( SELECT PilótaAzonosító, MAX(RepTávolság) AS m FROM Pilóta NATURAL JOIN Jogosítvány NATURAL JOIN Repülőtípus WHERE Fizetés >= 100 000 GROUP BY PilótaAzonosító)) Magyarázat: A legbelső SELECT megkeresi minden sokat kereső pilótára az általa repülhető maximális távolságot. Azok a várospárok lesznek jók, amiknek távolsága legfeljebb annyi, mint bármelyik így előálló maximum. Ezt csinálja a külső két SELECT. SELECT PilótaNév AS pn, MAX(RepTávolság) FROM Repülotípus NATURAL JOIN Jogosítvány GROUP BY PilótaNév, RepTávolság HAVING 3 <= (SELECT COUNT(*) FROM Jogosítvány WHERE PilótaNév=pn) 4

4. Tekintsük a következő alaprelációkat: Űrhajós(név, bolygó), Él(bolygó, virág), Allergia(név, virág). Űrhajós: milyen nevű űrhajós melyik bolygóról származik, kulcs a név; Él: melyik bolygón milyen virág él, a két attribútum együtt kulcs; Allergia: milyen nevű űrhajós milyen virágra allergiás, a két attribútum együtt kulcs. Adj SQL lekérdezést azon űrhajósok megkeresésére, akik a származási bolygójukon élő virágok közül pontosan egyre allergiásak. * Adj SQL lekérdezést azon űrhajósok megkeresésére, akik az összes ismert virágra (ami az Él relációban szerepel) allergiásak. SELECT Űrhajós.név FROM Űrhajós NATURAL JOIN Él NATURAL JOIN Allergia GROUP BY Űrhajós.név HAVING COUNT(*)=1 (SELECT név FROM Űrhajós) ( SELECT név FROM ( (SELECT név, virág FROM Űrhajós CROSS JOIN Él) (SELECT név,virág FROM Allergi ) ) is ( nélkül) SELECT u.név FROM Űrhajós AS u WHERE u.név NOT IN ( SELECT c.név FROM ( (SELECT c.név, c.virág FROM Űrhajós CROSS JOIN Él) AS c WHERE (c.név, c.virág) NOT IN (SELECT a.név,a.virág FROM Allergia AS ) ) 5