-- ALKÉRDÉSEK -- Vannak problémák amiket nem lehet anélkül megoldani, hogy az ember ne egy másik lekérdezés eredményével dolgozna -- erre vannak az alkérdések. -- Lekérdezés ereménye = TÁBLA / RELÁCIÓ -- Lekérdezés bemenete = TÁBLA / RELÁCIÓ -- Miért ne lehetne a bemenet egy lekérdezés? - Lehet. -- Buta példa 1: -- Adjuk meg a színes nyomtatókat adkérdéssel select * from -- Ő itt a főlekérdezés ( select * from nyomtatok where színes like 'igen' ) -- Ő meg az allekérdezés ; -- Ezek mellett alkérdéseket nem csak from-ba lehet megadni -- Where feltételbe megtudjuk adni a kapcsolatot két reláció attribútumai között ezzel. -- Kulcsszavak: -- EXISTS R - akkor és csak akkor igaz, ha az R alkérdés nem üres -- s > ALL R - akkor és csak akkor igaz ha s értéke nagyobb minden R-beli értéknél (univerzális kvantor) -- s > ANY R - akkor és csak akkor igaz ha van olyan R-beli érték, aminél s nagyobb (egzisztenciális kvantor) -- s IN R - akkor és csak akkor igaz, ha s benne van az R alkérés eredményhalmazában -- Legalább 3.0 sebességű PC-k gyártói select distinct gyarto from ( select * from pc natural join termek where sebesseg > 3.0 ) tabla ; select distinct gyarto from pc natural join termek where sebesseg > 3.0; -- Legtöbb ágyúval rendelkező hajók országa select orszag from hajoosztalyok where agyukszama >= all ( select agyukszama from hajoosztalyok ); -- Legdrágább nyomtatók select * from nyomtato where ar >= all ( select ar from nyomtato ); select modell, max(ar) as arak from nyomtato where rownum = 1 group by modell order by arak; -- Minden PC-nel lassabb laptopok select * from laptop where sebesseg < all ( select sebesseg from pc ) ; -- Azok a hajóosztályok amelyekben legalább 1 hajót elsüllyesztettek csatában select distinct osztaly from hajok where hajonev = any ( select hajonev from kimenetelek where eredmeny like 'elsullyedt' ); -- 16 hüvely kaliberű ágyújú hajók nevei select hajonev from ( select * from hajok natural join hajoosztalyok where kaliber like '16' ) ; select hajonev from hajok natural join hajoosztalyok where kaliber like '16'; -- Modellszáma a legdrágább terméknek select modell from pc where ar >= all ( select ar from laptop ) and ar >= all ( select ar from nyomtato ) union select modell from laptop where ar >= all ( select ar from pc ) and ar >= all ( select ar from nyomtato ) union select modell from nyomtato where ar >= all ( select ar from pc ) and ar >= all ( select ar from laptop ) ; select * from laptop where modell = 2001; select * from nyomtato where modell = 3001; -- Legolcsóbb színes nyomtató gyártója select ny.modell from nyomtato ny,termek t where ny.modell = t.modell and ny.színes like 'igen' and ny.ar <= all ( select ar from nyomtato where színes like 'igen' ) ; -- Olyan PC-k gyartoi amik leggyorsabbak a legkisebb memoriaju PC-k kozott select * from pc natural join termek where sebesseg >= all ( select sebesseg from pc where memoria <= all ( select memoria from pc ) ) ;