1 / 13

Adatbázisok használata 1 (3. gyakorlat-kiegészítés)

Adatbázisok használata 1 (3. gyakorlat-kiegészítés). 2012. tavaszi félév Véső Tamás. Mintafeladat.

snow
Télécharger la présentation

Adatbázisok használata 1 (3. gyakorlat-kiegészítés)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatbázisok használata 1(3. gyakorlat-kiegészítés) 2012. tavaszi félévVéső Tamás

  2. Mintafeladat Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevétés a részlegében dolgozók legkisebb és legnagyobb jövedelmét, végül pedig a dolgozó jövedelembeállási értékét (vagyis a jövedelmének és az iménti legkisebb értéknek különbségét). A lista legyen a jövedelembeállás alapján rendezve, és használjon másodlagos oszlopneveket.

  3. Mintafeladat1. lépés feladat értelmezése Keressük meg a lekérdezéseket (általában valamilyen kötőszóval vannak összekapcsolva a feladatban is) Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét (dept táblában a dname)és arészlegében dolgozók legkisebb jövedelmét, végül pedig a dolgozó jövedelembeállási értékét (jövedelmének és a legkisebb jövedelem különbségét). A lista legyen a név alapján rendezve, és használjon másodlagos oszlopneveket.

  4. Mintafeladat2. lépés allekérdezés • A kidolgozás során mindig az allekérdezésselkezdjünk. • Arészlegében dolgozók legkisebb és legnagyobb jövedelmét SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés,deptno AS részleg FROM empGROUP BY deptno;

  5. Mintafeladat3. lépés a külső lekérdezés • Kérdezze le minden dolgozó nevét, jövedelmét, részlegének nevét és arészlegében dolgozók legkisebb jövedelmét végül pedig a dolgozó jövedelembeállási értékét. • Vegyük észre, hogy bele kell vennünk az allekérdezést a külső lekérdezésbe.

  6. Mintafeladat3. lépés a külső lekérdezés • Mi kell a külső lekérdezésünkbe • Dolgozó neve • Jövedelme • Részlegének neve • A vele egy csoportban dolgozók legkisebb jövedelme • A jövedelembeállás

  7. Mintafeladat3. lépés a külső lekérdezés SELECT dolgozó.ename, dolgozó.sal + NVL(dolgozó.comm,0) as fizu, telephely.dname, allek.minimumfizetés,/* elhagyható az allek, ha egyedi */ /*az allekérdezésben a másodlagos oszlpnév*/ dolgozó.sal+ NVL(dolgozó.comm,0) - minimumfizetésas beáll FROM emp dolgozó, dept telephely, (SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés, deptno AS részleg FROM empGROUP BY deptno)allek/* itt nem hagyjuk el sose a másodlagos */ WHERE telephely.deptno = allek.részleg AND /*táblanevet*/ telephely.deptno = dolgozó.deptno ORDER BY dolgozó.ename;

  8. Amire figyeljünk • Az allekérdezést mindig zárójelbe kell, hogy tegyük a másodlagos táblanév adása miatt. • PL.: (SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés,deptno AS részleg FROM emp GROUP BY deptno)allek • Megjegyzés: Másodlagos táblanévadáskor NEM használunk AS kulcsszót!!!

  9. Amire figyeljünk • Az allekérdezésben használt másodlagos oszlopneveket használjuk a külső SELECT-ben, mintha csak az emp táblából kérdeznénk oszlopokat. • Ha nem egyedi az oszlopnevünk akkor a táblanév.oszlop hivatkozással pontosan meg kell adjuk melyik tábláról van szó. Pl.: telephely.deptno = dolgozó.deptno

  10. Amire figyeljünk • A táblák felsorolásánál is ,-t használunk kivéve az utolsó táblát (allekérdezést). Pl.: … emp dolgozó,dept telephely, (SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés, deptno AS részleg FROM emp GROUP BY deptno) allek … Itt már nincs vessző

  11. Amire figyeljünk • A WHERE-ben ne felejtsük összekapcsolni a táblákat. • Ki lehet próbálni mi történik, ha elhagyjuk a WHERE részt. • A WHERE-ben az a fontos, hogy minden tábla össze legyen kapcsolva a megfelelő oszlop(okk)al. • WHERE telephely.deptno = allek.részleg AND telephely.deptno= dolgozó.deptno • WHERE dolgozó.deptno= allek.részleg AND telephely.deptno = dolgozó.deptno • Ugyanazt az eredményt adja

  12. Mintafeladat (2) Írja ki minden dolgozó nevét, jövedelmét, munkakörének nevét, továbbá a munkakörében dolgozók összjövedelmét, végül pedig a dolgozó jövedelembeállási értékét(mekkora az összjövedelem és a dolgozó jövedelmének különbsége), úgy hogy a jövedelem szerint rendezzünk növekvően.

  13. Mintafeladat (2) SELECT enameAS "Dolgozó neve", sal+NVL(comm,0) AS jövedelem, dolgozó.job AS munkakör, összjövedelem, összjövedelem - sal+NVL(comm,0)AS jövbeáll FROM empdolgozó, (SELECT SUM(sal+NVL(comm,0)) AS összjövedelem, job FROM emp GROUP BY job) allek WHERE dolgozó.job= allek.job ORDER BY jövedelem;

More Related