SQL Több táblás lekérdezések. Halmazműveletek. Alkérdések
Számítógép adatbázis 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) pl. (2001, 2, 2048, 240, 20.1, $3676.00) NYOMTATO(modell, szines, tipus, ar) pl. (3001, TRUE, ’tintasugaras’, $99)
1. Melyek azok a számítógépek (PC+Laptop), amelyeknek a gyártója A? SELECT termek.modell FROM termek WHERE termek.gyarto='A' AND (termek.tipus='pc' OR termek.tipus='laptop'); (SELECT pc.modell FROM pc,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 FROM pc) UNION (SELECT laptop.modell,laptop.ar FROM laptop) (SELECT nyomtato.ar,nyomtato.modell FROM nyomtato);
4. Kik a gyártói azon pc-knek, amelyek sebessége 2 és 3 között van? SELECT termek.gyarto FROM termek,pc WHERE termek.modell=pc.modell AND pc.sebesseg>=2 AND pc.sebesseg<=3;
7. Mely gyártók gyártanak pc-ket? (Használjuk a 2 tábla összekötését) SELECT termek.gyarto FROM termek,pc WHERE termek.modell=pc.modell;
10. Kik a gyártói a színes lézer nyomtatóknak? SELECT termek.gyarto FROM termek, 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? SELECT termek.gyarto FROM termek, nyomtato WHERE termek.modell=nyomtato.modell AND nyomtato.tipus='tintasugaras' AND NOT(nyomtato.szines);
14. Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? SELECT termek.gyarto FROM termek,laptop WHERE termek.modell=laptop.modell AND laptop.merevlemez >=100 ORDER BY termek.gyarto DESC;
17. Melyek azok a gyártók, amelyek laptopot árulnak, pc-t viszont nem? SELECT termek.gyarto FROM termek WHERE termek.tipus='laptop' AND termek.gyarto NOT IN (SELECT termek.gyarto FROM termek WHERE termek.tipus='pc');
31. Keressük meg a legdrágább nyomtatókat. SELECT nyomtato.modell FROM nyomtato WHERE nyomtato.ar = (SELECT MAX(nyomtato.ar) FROM nyomtato);
33. 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 FROM pc GROUP BY pc.sebesseg;
34. Keressük meg minden gyártó esetén a laptopok átlagos képernyőméretét. SELECT termek.gyarto, AVG(laptop.kepernyo) AS atlgkep FROM termek,laptop WHERE termek.modell=laptop.modell GROUP BY termek.gyarto;
Köszönöm a figyelmet!