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



Hasonló dokumentumok
Tankönyv példák kidolgozása

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

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

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

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

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

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

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

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

Relációs algebra 1.rész alapok

Relációs adatmodell. Adatbázisok használata

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

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

Adatbázisok elmélete

Databases 1. Relációs algebra és nemrekurzív Datalog

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

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

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

Az SQL adatbázisnyelv: DML

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

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

SQL DDL-2 (aktív elemek) triggerek

Adatbázis, adatbázis-kezelő

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

Csima Judit szeptember 6.

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

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

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

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

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

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

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ÁZIS-KEZELÉS FÉLÉVES FELADAT

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

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

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

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

Bevezetés: az SQL-be

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

Adatbázis rendszerek 2. előadás. Relációs algebra

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ázis rendszerek 7. Matematikai rendszer amely foglal magában:

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

7. Előadás tartalma A relációs adatmodell

Adatbázis rendszerek SQL nyomkövetés

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

Adatbázis Rendszerek

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

Adatbázisok II. rész

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

Adatbázisok* tulajdonságai

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

SQL parancsok feldolgozása

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

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

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

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

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

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

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.

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

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

Adatbázis-kezelés az Excel 2013-ban

Adatbázis rendszerek tervezése

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

Az SQL lekérdeznyelv

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Relációs algebra 2.rész

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

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:

KÉPZÉS NEVE: Informatikai statisztikus és gazdasági tervezı TANTÁRGY CÍME: Adatbáziskezelés III. (elmélet+gyakorlat) Készítette: Kupcsikné Fitus Ilona

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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

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

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

BEVEZETÉS Az objektum fogalma

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

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

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

Adatbázisok I. Az SQL nyelv

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

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

LBRA6i integrált rendszer

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

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

A TANTÁRGY ADATLAPJA

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

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

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.

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

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

Adatbázis rendszerek 2. előadás. Relációs algebra

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

Adattípusok. Max. 2GByte

Bevezetés: Relációs adatmodell

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

Átírás:

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány Illyés László 2014

Bevezető: Ez az írott anyag azt a jegyzetet szeretné helyettesíteni, amelyik a Kolozsvári Sapientia Csíkszeredai Közgazdasági- és Humántudományok karán tantárgyként létező (Gazdálkodási) Adatbázis Rendszerek Tervezése tantárgynál tanított elméleti- és gyakorlati problémákat taglalja. A tananyag nagyrészt az Ullman, Widom [1] könyvre épül, sajátosan tárgyalva a könyvelési problémákat is. Ez a jegyzet fordítva közelíti meg a dolgokat. Adatbázisokat építünk fel és töltünk fel azért, hogy a lekérdezéseket minél hamarabb meg tudjuk fogalmazni, mert egy gazdasági szakembert elsősorban ez érdekel. Azután foglalkozunk az adatbázis felépítésének nehezebb műveletéről, amelyik már egy magasabb szintű gondolkodást igényel. Előbb lesz a gyakorlat, s utána az elmélet. Remélhetőleg ezen megközelítés könyebb megértéshez vezet. Minden előadáshoz megpróbálok kisebb quiz eket megadni, amely a tanulást segíti, na meg házi feladatot, amelyik a tananyag elmélyítését szolgálja. A könyvelőknek mindig a legújabb ACCESS-en keresztül próbálom tanítani az adatbázis kezelést, a gazdasági informatika szaknak pedig a MySQL adatbázis motorral. A példákban törekszem arra, hogy adatbázisfüggetlenek legyenek. Az olvasónak érdemes kinyomtatni az adatbázis sémáját (grafikus vagy szöveges formában), s a feladatok megoldásánál használni. Azon táblák megjelenítése is segíthet, amelyek az adatbázisban vannak. Ezek is a gyakorlatiasabb lecke elején meg fognak jelenni. Akinek nagyobb képernyője van, vagy két képernyőt használ egyszerre, az nem kell kinyomtassa, hanem egyik ablakban megnyitja az adatbázist ábrázoló oldalt, a másik ablakban a kért feladatot.

1. A relációs adatmodell. Műveletek a relációs modellben 1.1. Bevezetés Legelterjedtebb modell Egyszerű deklaratív nyelvvel rendelkezik az adatok kezelésére Értékorientált A relációs modellben az adatok egyszerűen reprezentálhatók: kétdimenziós táblákban, u.n. Relációkban Attribútumok: a reláció fejrészében találhatók A reláció-attribútumok a reláció oszlopnevei Általában megadják az oszlopban szereplő adatok jelentését Az ábrán levő attribútumok: cím, év, hossz, műfaj Cím Év Hossz műfaj Csillagok háborúja 1977 124 sci-fi Elfújta a szél 1939 231 dráma Wayne világa 1992 95 vígjáték 1.2. A relációs algebra A relációs algebra műveleteket négy osztályba soroljuk A hagyományos halmazműveletek ( egyesítés, metszet, különbség) Egyes részeket tartunk meg (kiválasztás, vetítés) Relációk kombinálása ( Descartes-i szorzat, összekapcsolás) Átnevezés 1.3. Műveletek a relációs modellben 1.4. Relációkra vonatkozó megszorítások 1.5. Multihalmazokon értelmezett műveletek 1.6. A relációs modell további kiterjesztései 2. Az SQL adatbázisnyelv 2.1. Az SQL története 2.2. Az SQL felépítése 2.3. Adattipusok 2.4. SQL utasítások

3. Egytáblás lekérdezések Ha egy lekérdezés 1 tábláról szól, akkor elhagyhatjuk a tábla nevét. Viszont azért, hogy konszekvensek legyünk, próbáljuk meg használni a tábla nevét is a lekérdezés attribútumai között. Valamennyire általánosan felírva egy lekérdezés a következő képpen néz ki: SELECT attribútum(ok) FROM tábla WHERE feltételek; A feltételek is tartalmazhatnak attribútumokat, általában tartalmaznak is. Az, amiről a kérdés szól, az kerül a SELECT után. A számítógép adatbázis a következő képpen néz ki: Termek(gyarto, modell, tipus) pl. ( A,1001, pc ) pc(modell, sebesseg, memoria,merevlemez,ar) pl. (1001,2.66,1024,250,$2114.00) laptop(modell,sebesseg,memoria,merevlemez,kepernyo,ar) (2001,2,2048,240,20.1,$3676.00) nyomtato(modell, szines, tipus, ar) (3001, TRUE, tintasugaras, $99) Csak a termék tábla felhasználásával válaszoljunk a következő kérdésekre: 1. Ki gyártja a 2001-es modellt? SELECT gyarto WHERE modell=2001; 2. Mi a tipusa a 3006-os modellnek? SELECT tipus WHERE modell=3006; 3. Milyen modelleket gyárt az A gyártó? SELECT modell WHERE gyarto='a'; 4. Milyen modelleket gyárt a B gyártó? SELECT modell WHERE gyarto='b'; 5. Milyen modelleket gyárt a C gyártó?

6. Milyen modelleket gyárt a D gyártó? 7. Milyen modelleket gyárt a E gyártó? 8. Milyen modelleket gyárt a F gyártó? 9. Milyen modelleket gyárt a H gyártó? 10. Milyen géptipustokat gyárt a B gyártó? SELECT DISTINCT tipus WHERE gyarto='b'; 11. Kik gyártanak laptopokat? SELECT DISTINCT gyarto WHERE tipus='laptop' ORDER BY gyarto DESC; 12. Kik gyártanak pc-ket? SELECT DISTINCT gyarto WHERE tipus='pc'; 13. Kik gyártanak nyomtatókat? SELECT gyarto WHERE tipus='nyomtato' ORDER BY gyarto DESC; 14. Milyen tipusúak az 1000-es modellek? SELECT DISTINCT termek.tipus WHERE termek.modell<2000; 15. Milyen tipusúak a 3000-es modellek? SELECT DISTINCT termek.tipus WHERE termek.modell>=3000; 16. Milyen tipusúak a 2000-es modellek. SELECT DISTINCT termek.tipus WHERE termek.modell>1999 AND termek.modell<3000; Felhasználva a PC táblában levő információkat adjunk választ a következő kérdésekre: 1. Mennyi a sebessége az 1008-as PC-nek?

SELECT pc.sebesseg WHERE pc.modell=1008; 2. Mennyi a memóriája az 1003-as PC-nek? SELECT pc.memoria WHERE pc.modell=1003; 3. Mekkora merevlemez tartozik az 1006-os PC-hez? SELECT pc.merevlemez WHERE pc.modell=1006; 4. Mennyi az ára az 1010-es PC-nek? SELECT pc.ar WHERE pc.modell=1010; 5. Melyik modellhez milyen sebesség tartozik? SELECT pc.modell,pc.sebesseg ; 6. Melyik modellhez mennyi memória tartozik? SELECT pc.modell,pc.memoria WHERE TRUE; 7. Melyik modellhez milyen merevlemez tartozik? SELECT pc.modell, pc.merevlemez ORDER BY pc.merevlemez; 8. Melyik modell milyen árba kerül? SELECT pc.modell, pc.ar ORDER BY pc.ar DESC; 9. Melyik sebességhez milyen memória tartozik? SELECT pc.sebesseg,pc.memoria ; 10. Melyik memóriához milyen merevlemez tartozik? SELECT pc.memoria,pc.merevlemez ; 11. Melyik modellhez milyen sebesség és merevlemez tartozik? SELECT pc.modell, pc.sebesseg,pc.merevlemez ; 12. Melyik modelleknek a sebessége 3.2?

SELECT pc.modell WHERE pc.sebesseg=3.2; 13. Mely modellek memóriája 1024? SELECT pc.modell WHERE pc.memoria=1024; 14. Mely modellek rendelkeznek legtöbb 250 GB merevlemezzel? SELECT pc.modell WHERE pc.merevlemez=250; 15. Mely modellek ára 649$? SELECT pc.modell WHERE pc.ar=649; 16. Mely modellek ára nagyobb, mint 1000$? SELECT pc.modell WHERE pc.ar>1000; 17. Mely modellek ára kisebb, mint 1000$? SELECT pc.modell WHERE pc.ar<1000;

4. Több táblás lekérdezések. Halmazműveletek. Alkérdések. 1. Melyek azok a számítógépek (PC+Laptop), amelyeknek a gyártója A. SELECT termek.modell WHERE termek.gyarto='a' AND (termek.tipus='pc' OR termek.tipus='laptop'); (SELECT pc.modell,termek WHERE pc.modell=termek.modell AND termek.gyarto='a' )UNION (SELECT laptop.modell FROM laptop,termek WHERE laptop.modell=tarmek.modell AND termek.gyarto='a' ); 2. Adjuk meg minden modellhez a megfelelő árat egy eredményben. (SELECT pc.modell,pc.ar )UNION (SELECT laptop.modell,laptop.ar FROM laptop )UNION (SELECT nyomtato.ar,nyomtato.modell FROM nyomtato ); 3. Kik a gyártói azon pc-knek, amelyek segessége 2.2?,pc WHERE termek.modell=pc.modell AND pc.sebesseg=2.2; 4. Kik a gyártói azon pc-knek, amelyek sebessége 2 és 3 között van?,pc WHERE termek.modell=pc.modell AND pc.sebesseg>=2 AND pc.sebesseg<=3; 5. Kik a gyártói azon pc-knek, amelyeknek merevlemeze nagyobb, mint 160 és memóriája legfeljebb 1024?,pc

WHERE termek.modell=pc.modell AND pc.merevlemez>160 AND pc.memoria<=1024; 6. Mely gyártók gyártanak pc-ket? (Használjuk a termék táblát.) SELECT Termek.gyarto WHERE termek.tipus='pc'; 7. Mely gyártók gyártanak pc-ket? (Használjuk a 2 tábla összekötését),pc WHERE termek.modell=pc.modell; 8. Kik a gyártói a színes nyomtatóknak?,nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.szines=true; 9. Kik a gyártói a lézer nyomtatóknak?, nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.tipus='lézer'; 10. Kik a gyártói a színes lézer nyomtatóknak?, nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.tipus='lézer' AND nyomtato.szines; 11. Kik a gyártói a tintasugaras fekete-fehér nyomtatóknak?, nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.tipus='tintasugaras' AND NOT(nyomtato.szines); 12. Kik a gyártói a 120 dollárnál drágább nyomtatóknak?,nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.ar>120; 13. Melyek azok a PC-modellek, amelyek sebessége legalább 3.00? SELECT pc.modell WHERE pc.sebesseg>=3; 14. Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot?

,laptop WHERE termek.modell=laptop.modell AND laptop.merevlemez >=100 ORDER BY termek.gyarto DESC; 15. Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát, típustól függetlenül. (SELECT pc.modell,pc.ar,termek WHERE pc.modell=termek.modell AND termek.gyarto='b' )UNION (SELECT laptop.modell,laptop.ar FROM laptop,termek WHERE laptop.modell=termek.modell AND termek.gyarto='b' )UNION (SELECT nyomtato.modell,nyomtato.ar FROM nyomtato,termek WHERE nyomtato.modell=termek.modell AND termek.gyarto='b' ); 16. Adjuk meg valamennyi színes nyomtató modellszámát. SELECT nyomtato.modell FROM nyomtato WHERE nyomtato.szines; 17. Melyek azok a gyártók, amelyek laptopot árulnak, pc-t viszont nem? WHERE termek.tipus='laptop' AND termek.gyarto NOT IN ( WHERE termek.tipus='pc'); 18. Melyek azo a merevlemezméretek, amelyek legalább két pc-ben megtalálhatók? SELECT pc.merevlemez, pc AS pc_1 WHERE pc.merevlemez=pc_1.merevlemez AND pc.modell<>pc_1.modell; 19. Adjuk meg azon pc-modell párokat, amelyek ugyanolyan gyorsak és a memóriájuk is ugyanakkora. Egy pár csak egyszer jelenjen meg, azaz, ha (i,j) már szerepel, akkor (j,i) ne jelenjen meg. SELECT pc.modell,pc_1.modell,pc AS pc_1

WHERE pc.sebesseg=pc_1.sebesseg AND pc.memoria=pc_1.memoria AND pc.modell>pc_1.modell; 20. Melyek azok a gyártók, amelyek gyártanak legalább két, egymástól különböző, legalább 2.80 gigahertzen működő számítógépet (PC-t vagy laptopot)? L20A=(,laptop.modell,laptop WHERE termek.modell=laptop.modell AND laptop.sebesseg>=2.8 )UNION (,pc.modell,pc WHERE termek.modell=pc.modell AND pc.sebesseg>=2.8 ); SELECT L20a.gyarto FROM L20a, L20a AS L20a_1 WHERE L20a.modell>L20a_1.modell; 21. Melyik gyártó gyártja a leggyorsabb számítógépet (PC-t vagy laptopot)? (,pc.sebesseg,pc WHERE termek.modell=pc.modell )UNION (,laptop.sebesseg,laptop WHERE termek.modell=laptop.modell ); SELECT L21a.gyarto FROM L21a WHERE L21a.sebesseg= (SELECT MAX(L21a.sebesseg) FROM L21a); 22. Melyik gyártó gyárt legalább három, különböző sebességű PC-t? L22a=,pc.sebesseg,pc WHERE termek.modell=pc.modell; SELECT L22a.gyarto FROM L22a,L22a AS L22a_1,L22a L22a_2 WHERE L22a.gyarto=L22a_1.gyarto AND L22a.gyarto=L22a_2.gyarto AND L22a.sebesseg<>L22a_1.sebesseg AND L22a.sebesseg<>L22a_2.sebesseg ANd L22a_1.sebesseg <>L22a_2.sebesseg;

SELECT L22a.gyarto FROM L22a GROUP BY(L22a.gyarto,L22a.sebesseg) HAVING COUNT(*)>=3; 23. Melyek azok a gyártók, amelyek pontosan három típusú PC-t forgalmaznak? WHERE termek.tipus='pc' GROUP BY termek.gyarto HAVING COUNT(*)=3; 24. Az olyan pc-ket, amelyek processzorának sebessége kisebb, mint 2.00, nem árulhatják 500$- nál drágábban. 25. A 15.4 hüvelyknél kisebb képernyőjű laptopoknak a merevlemeze legalább 100GB-os kell legyen, ellenkező esetben csak 1000$-nál olcsóbban árulhatják. 26. Pc-gyártók nem gyárthatnak laptopot 27. Ha egy gyártó készít pc-t, akkor készítenie kell olyan laptopot is, amelynek a sebessége legalább akkora, mint a PC sebessége. 28. Ha egy laptopnak nagyobb memóriája van, mint egy PC-nek, akkor a laptop drágább kell legyen, mint a PC. 29. Keressük meg a modellszámát, sebességét, merevlemez-kapacitását azoknak a pc-knek, amelyek ára 1000$ alatt van. SELECT PC.MODELL,PC.SEBESSEG,PC.MEREVLEMEZ WHERE pc.ar<1000; 30. Ugyanaz, mint az előző pontban, de nevezzük át a sebesség oszlopot gigahertz-re, a merevlemez oszlopot pedig gigabájt-ra. SELECT PC.MODELL,PC.SEBESSEG AS gigahertz,pc.merevlemez AS gigabajt WHERE pc.ar<1000; 31. Keressük meg a nyomtatók gyártóit. SELECT DISTINCT termek.gyarto WHERE termek.tipus='nyomtato'; 32. Keressük meg azon laptopok modellszámát, memóriakapacitását és képernyőnagyságát, melyek több, mint 1500-ba kerülnek.

33. Keressük meg a nyomtató reláció azon sorait, melyek a színes nyomtatókra vonatkoznak. Vegyük figyelembe, hogy a színes attribútum logikai típusú. 34. Keressük meg azon PC-k modellszámát és merevlemezméretét, amelyek sebessége 3.2 éd 2000- nél olcsóbbak. 35. Keressük meg azon laptopok gyártóit és sebességét, amelyeknek legalább harminc gigabájtos merevlemeze van., laptop.sebesseg,laptop WHERE termek.modell=laptop.modell AND laptop.merevlemez>=30; 36. Keressük meg a B gyártó által készített bármilyen típusú termékek számát és árát. (SELECT pc.modell,pc.ar,termek WHERE termek.modell=pc.modell AND termek.gyarto='b')union (SELECT laptop.modell,laptop.ar,laptop WHERE termek.modell=laptop.modell AND termek.gyarto='b' )UNION (SELECT nyomtato.modell,nyomtato.ar,nyomtato WHERE termek.modell=nyomtato.modell AND termek.gyarto='b' ); 37. Keressük meg azon gyártókat, akik laptopokat gyártanak, PC-ket viszont nem. SELECT DISTINCT termek.gyarto WHERE termek.tipus='laptop' AND termek.gyarto NOT IN ( WHERE termek.tipus='pc'); 38. Keressük meg azokat a merevlemezméreteket, amelyek legalább két PC-ben előfordulnak. SELECT pc.merevlemez,pc AS pc_1 WHERE pc.modell>pc_1.modell AND pc.merevlemez=pc_1.merevlemez; SELECT pc.merevlemez

GROUP BY pc.merevlemez HAVING COUNT(*)>=2; 39. Keressük meg azon PC-modellpárokat, amelyeknek ugyanakkora a sebességük és a memóriájuk. Egy párt csak egyszer listázzunk ki, azaz, ha (i,j) az eredményben van, akkor (j,i), ne kerüljön bele. 40. Keressük meg azokat a gyártókat, akik legalább két különböző, 3.0-nál nagyobb sebességű számítógépet gyártanak (PC-t vagy laptopot) L40A=(,pc.modell,pc WHERE termek.modell=pc.modell AND pc.sebesseg>3) UNION (,laptop.modell,laptop WHERE termek.modell=laptop.modell ); SELECT L40A.gyarto FROM L40A GROUP BY L40A.gyarto HAVING COUNT(*)>=2; 41. Keressük meg a legalább 3.0 sebességű PC-k gyártóit., pc WHERE termek.modell=pc.modell AND pc.sebesseg>3; 42. Keressük meg a legdrágább nyomtatókat. SELECT nyomtato.modell FROM nyomtato WHERE nyomtato.ar= (SELECT MAX(nyomtato.ar) FROM nyomtato); 43. Keressük meg azokat a laptopokat, amelyek minden pc-nél lasúbbak. SELECT laptop.modell FROM laptop WHERE laptop.sebesseg<all (SELECT pc.sebesseg ); SELECT laptop.modell FROM laptop WHERE laptop.sebesseg< (SELECT MIN(pc.sebesseg) ); 44. Keressük meg a modellszámát a legdrágább terméknek (PC, laptop vayg nyomtató)

(SELECT pc.modell,pc.ar ) UNION (SELECT laptop.modell,laptop.ar FROM laptop) UNION (SELECT nyomtato.modell,nyomtato.ar FROM nyomtato); SELECT L44a.modell FROM L44a WHERE L44a.ar= (SELECT MAX(ar) FROM L44a); 45. Keressük meg a legolcsóbb színes nyomtató gyártóját.,nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.szines AND nyomtato.ar= 46. (SELECT MIN(nyomtato.ar) FROM nyomtato WHERE szines);keressük meg az olyan PC-k gyártóit, amelyek a leggyorsabbak a legkisebb memóriával rendelkező PC-k között. 47. Keressük meg a PC-k átlagos sebességét. SELECT AVG(pc.sebesseg) ; 48. Keressük meg az 1000-nél drágább laptopok átlagos sebességét. SELECT AVG(laptop.sebesseg) AS atlagseb1000dollar FROM laptop WHERE laptop.ar>1000; 49. Keressük meg az A gyártó által gyártott PC-k átlagos árát., AVG(pc.ar) AS atlagar,pc WHERE termek.modell=pc.modell AND termek.gyarto='a' GROUP BY termek.gyarto; 50. Keressük meg a D gyártó által gyártott PC-k és laptopok átlagos árát. (SELECT pc.ar,pc WHERE termek.modell=pc.modell AND termek.gyarto='d')union ALL (SELECT laptop.ar FROM laptop,termek WHERE termek.modell=laptop.modell AND termek.gyarto='d' ); SELECT AVG(ar) AS atlagar FROM L50a; 51. Keressük meg minden egyes pc sebességéhez az ilyen sebességű pc-k átlagos árát. SELECT pc.sebesseg,avg(pc.ar) AS atlagar

GROUP BY pc.sebesseg; 52. Keressük meg minden gyártó esetén a laptopok átlagos képernyőméretét., AVG(laptop.kepernyo) AS atlgkep,laptop WHERE termek.modell=laptop.modell GROUP BY termek.gyarto; 53. Keressük meg azokat a gyártókat, akik legalább háromfajta PC-t gyártanak. WHERE termek.tipus='pc' GROUP BY termek.gyarto HAVING COUNT(*)>=3; 54. Keressük meg minden gyártó esetén a maximális PC-árat., MAX(pc.ar) AS maxpcar, pc WHERE termek.modell=pc.modell GROUP BY termek.gyarto; 55. Keressük meg a 2.0-nál nagyobb sebességű PC-k átlagos árát. SELECT AVG(pc.ar) AS pcatlag WHERE pc.sebesseg>2; 56. Keressük meg minden olyan gyártóhoz, akik nyomtatót gyártanak, a PC-k átlagos merevlemezméretét., AVG(pc.merevlemez) AS atlaglemez,pc WHERE termek.modell=pc.modell AND termek.gyarto IN ( WHERE termek.tipus='nyomtato'); 57. Két INSERT utasítás segítségével tároljuk az adatbázisban azt a tényt, hogy az 1100-as PC-modellt a C gyártó gyártja, 3.2 a sebessége, a memóriája 1024, merevlemeze 180 és az ára 2499$. 58. Szúrjuk be az adatbázisba azt, hogy minden egyes PC esetén létezik egy vele megegyező gyártójú, sebességű, memóriájú, merevlemezű laptop, amelynek 17 hüvelykes képernyője van, modellszáma 1100-al nagyobb és 500$-al drágább. 59. Töröljük ki a 100 gigabájtnál kisebb merevlemezű Pcket. 60. Töröljük ki az összes olyan laptopot, amelyeket olyan cég gyárt, amely nem gyárt nyuomtatókat. 61. Az A cég megveszi a B céget. Módosítsuk a B által gyártott termékeket olyan módon, hogy az A gyártja őket.

62. Minden eyges PC esetén kétszerezzük meg a memória nagyságát, és adjunk 60 gigabájtot a merevlemez méretéhez. (ne feledjük, hogy egyetlen UPDATE segítségével több attribútum is módosítható) 63. A B cég által gyártott laptopok esetén adjunk eyg hüvelyket a képernyő méretéhez és vonjunk ki 100$-t az árból.

Könyvészet: [1] Jeffrey D. Ullman, Jennifer Widom; Adatbázisrendszerek Alapvetés, Panem, Budapest, 2009