SQL feladatok megoldasa 2005
1. Listázza ki a piros cikkeket forgalmazó szolgáltatókat! SQL: SELECT sname FROM SUPPLIERS s, CATALOG c, PARTS p WHERE s.sid=c.sid and c.pid=p.pid and p.color=‘piros’;
Result: 1 Egyesult Szolgaltatok Szovetsege 2 Markolo alkatreszek 3 Mezoalkat Resz Kft
2. Listázza ki a piros vagy zöld cikkek forgalmazóit SQL: SELECT sname FROM SUPPLIERS s, CATALOG c, PARTS p WHERE s.sid=c.sid AND c.pid=p.pid AND ( p.color=‘piros’ OR p.color=‘zold’ ) ;
Result: 1 2 3 4 5 6 7
Egyesult Szolgaltatok Szovetsege Egyesult Szolgaltatok Szovetsege KicsiMisi Hovamesz Bt Markolo alkatreszek Mezoalkat Resz Kft Was machst du den da Ku Wu Hijasti Chui
A distinct vagy a unique() kulcsszoval kiszurheted a duplán megjelenő rekordokat.
3. Listázza ki a piros és sárga cikkeket is forgalmazókat SQL: SELECT sname FROM SUPPLIERS s where sid IN ( ( SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='piros' ) INTERSECT (SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='sarga' ) ) Result: 1 2 3
Egyesult Szolgaltatok Szovetsege Markolo alkatreszek Mezoalkat Resz Kft
4 .Listázza ki a kék cikk forgalmazókat a forgalmazott kék cikkek számával SQL: SELECT sname, COUNT(p.pid) FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid AND p.color='kek' GROUP BY s.sname; Result: 1 Egyesult Szolgaltatok Szovetsege 2 2 KicsiMisi Hovamesz Bt 2 3 Ku Wu Hijasti Chui 2 4 Was machst du den da2
5. Listázza ki a kék cikk forgalmazókat a kék cikkek árának összegének sorrendjében SQL: SELECT sname, sum(c.cost) as arakosszege FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid AND p.color='kek' GROUP BY s.sname ORDER BY arakosszege DESC; Result: 1 2 3 4
Was machst du den da 32099 Egyesult Szolgaltatok Szovetsege KicsiMisi Hovamesz Bt 4868 Ku Wu Hijasti Chui 798
6000
6. Listázza ki a szolgáltatókat a forgalmazott cikkek átlagos árának függvényében! SQL: SELECT sname, avg(c.cost) as atlagosar FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid GROUP BY s.sname ORDER BY atlagosar DESC; Result: 1 Was machst du den da 15241,1818181818 2 Markolo alkatreszek 10280 3 Mezoalkat Resz Kft 6513,85714285714 4 Egyesult Szolgaltatok Szovetsege 5323,33333333333 5 KicsiMisi Hovamesz Bt 3174 6 Paprika Janos 2349,33333333333 7 Ku Wu Hijasti Chui 486,818181818182
7. Listázza ki hol és kinél lehet ‘Markolo fogantyu’-t vásárolni, elsőként azt a helyet ahol a legolcsóbban megkaphatjuk.
SQL: select s.*, c.cost, p.* FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='Markolo fogantyu' order by c.cost asc Result: 1 2 3 4 5 6 7 8 9 10
7 5 1 saros 3 3 1 piros 1 sarga 5 5 3
Ku Wu Hijasti Chui 1283 Budapoest Ugorj u. 112 400 Markolo fogantyu saros Mezoalkat Resz Kft 1233 BUdapest Hajra u. 12 9300 Markolo fogantyu saros Egyesult Szolgaltatok Szovetsege 1118 Budapest Minerva u 2 11000 4 Markolo fogantyu Markolo alkatreszek nincs cim Markolo alkatreszek nincs cim Egyesult Szolgaltatok Szovetsege
12300 3 Markolo fogantyu piros 12400 2 Markolo fogantyu sarga 1118 Budapest Minerva u 2 13340 3 Markolo fogantyu
Egyesult Szolgaltatok Szovetsege
1118 Budapest Minerva u 2
Mezoalkat Resz Kft Mezoalkat Resz Kft Markolo alkatreszek
1233 BUdapest Hajra u. 12 1233 BUdapest Hajra u. 12 nincs cim 15000
13360 2 Markolo fogantyu
14500 2 Markolo fogantyu 14600 3 Markolo fogantyu 4 Markolo fogantyu
sarga piros saros
Hogy nez ki az SQL parancs a duplazodasok kiszuresevel?
8. Listázza ki a ‘cipo’ forgalmazókat és a forgalmazott cipok számát, aszerint sorrendezve, hogy ki árul a legtöbbet.
SQL: select sname, count(*) as arultcipokszama FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname like('%cipo%') group by sname order by arultcipokszama Result: 1 Egyesult Szolgaltatok Szovetsege 4 2 KicsiMisi Hovamesz Bt 4 3 Ku Wu Hijasti Chui 4 4 Was machst du den da4
9. Listázza ki a ‘cipo’ forgalmazókat és a forgalmazott cipők átlagos árát, aszerint, hogy ki árulja átlagosan a legolcsóbban őket
SQL: select sname, avg(c.cost) as atlagosar FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname like('%cipo%') group by sname order by atlagosar asc Result: 1 Ku Wu Hijasti Chui 489,5 2 KicsiMisi Hovamesz Bt 4524 3 Egyesult Szolgaltatok Szovetsege 5500 4 Was machst du den da27475
10 .‘Puspokladanyban’-ban mennyibe kerül a legolcsóbb papucs? Rel Alg: PR1= δ pname=‘Papucs’ AND adress like’%Puspokladany% (SUPPLIERS ►◄CATALOG ►◄PARTS); PR2=R1; R1-πR1(δ R1.cost>R2.cost(R1xR2); SQL: select sname,adress, c.cost ,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname=‘Papucs' AND s.adress like '%Puspokladany%‘ MINUS select R1.* from ( select sname,adress, c.cost ,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='Papucs’ and s.adress like '%Puspokladany%' ) R1, ( select sname,adress, c.cost ,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname =‘Papucs' and s.adress like '%Puspokladany%' ) R2 where R1.cost>R2.cost ; Result: 1
KicsiMisi Hovamesz Bt
3456 Puspokladany Harkaly u 16
469
10/b .‘Puspokladanyban’-ban mennyibe kerül a legolcsóbb papucs? Megkeressuk a legolcsobb papucs arat, majd kivalasztjuk az ehhez az arhoz tartozo adatokat..
SQL: select sname, adress ,pname cost from parts p,catalog c,suppliers s where s.sid=c.sid AND c.pid=p.pid and p.pname='Papucs' and s.adress like '%Puspokladany%' and c.cost in ( select min( c.cost) FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='Papucs' and s.adress like '%Puspokladany%' )
11. Listázza ki az összes cikk forgalmazóját! Rel Alg: (CATALOG ►◄PARTS)÷PARTS ) ►◄ SUPPLIERS SQL: select sname from suppliers s where not exists ( ( select pid from parts ) MINUS (select p.pid from parts p, catalog c where c.pid=p.pid and c.sid=s.sid) );
12. Listázza ki az összes kék cikket forgalmazót! SQL: select sname from suppliers s where not exists ( ( select pid from parts where color=‘kek’) MINUS (select p.pid from parts p, catalog c where c.pid=p.pid and c.sid=s.sid and p.color=‘kek’) );
Results: 1 2 3 4
Egyesult Szolgaltatok Szovetsege KicsiMisi Hovamesz Bt Was machst du den da Ku Wu Hijasti Chui