Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK 2012. 1 / 29.

Hasonló előadás


Az előadások a következő témára: "2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK 2012. 1 / 29."— Előadás másolata:

1 2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29

2 Normalizálás kis ZH: Féléves feladatkiírások (II.22) Tipikus hibák a kis ZH-n: Rossz függőségek Felírt függőség felüldefiniálása Lépések be nem tartása Rossz vég és részeredmények Tipikus hibák a féléves feladatnál: Formai követelmények nem betartása, Tartalmi problémák: túl/sok kevés szöveg, Nem alaposan végiggondolt feladatkiírás, túl kevés adat Jelenleg (II.28) 16 elfogadott kiírás (‘+’), 2 formai hibás, 2 nem elfogadott (‘J’ v ‘1’) 3 nem leadott kiírás (‘---’ v ‘1’) Véső Tamás OE­NIK / 29

3 A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyi(k)nek. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. Véső Tamás OE­NIK / 29

4  Például: ◦ EMP ◦ DEPT Használjuk a ‘DEPTNO’ Mezőt! Véső Tamás OE­NIK / 29

5  Az Az eredmény. Véső Tamás OE­NIK / 29

6 SELECT FROM tábla1, tábla2, és így tovább WHERE GROUP BY HAVING ORDER BY; Mit fog ez produkálni és miért? SELECT * FROM emp, dept; Véső Tamás OE­NIK / 29

7 EMP és DEPT tábla összekapcsolása: Mindenképp kell valamilyen feltétel: SELECT a.ename, b.loc FROM emp a, dept b WHERE a.deptno = b.deptno; avagy: SELECT ename, loc FROM emp, dept WHERE emp.deptno=dept.deptno; Véső Tamás OE­NIK / 29

8  Inner ◦ Az oszlopérték mindegyik táblában létezik  Left ◦ A kulcsszótól balra álló tábla sorai mindenképpen szerepelnek a listában  Right ◦ A kulcsszótól jobbra álló tábla sorai mindenképpen látszanak a listában  FULL ◦ Mindkettő oszlop sorai látszanak, még ha hiányosak is Véső Tamás OE­NIK / 29

9 Használata: SELECT [Szelekciók] FROM tábla1 INNER/LEFT/RIGHT/FULL JOIN tábla2 ON összekötőfeltétel USING(oszlop1,oszlop2,stb) … Véső Tamás OE­NIK / 29

10 SELECT ENAME, LOC FROM EMP INNER JOIN DEPT USING(deptno); SELECT ENAME, LOC FROM EMP LEFT JOIN DEPT USING(deptno); SELECT ENAME, LOC FROM EMP RIGHT JOIN DEPT USING(deptno); SELECT ENAME, LOC FROM EMP FULL JOIN DEPT USING(deptno); Van különbség? Véső Tamás OE­NIK / 29

11 Példa: Listázzuk az alkalmazottakat, és a főnökeik nevét! SELECT dolgozo.ename as ”Dolgozó neve”, fonok.ename as ” Főnök neve” FROM emp dolgozo, emp fonok WHERE dolgozo.mgr = fonok.empno; Hol van KING a listából? Véső Tamás OE­NIK / 29

12  KING nincs a listában, mert nincs főnöke (nincs hozzá tartozó sor a főnök táblából)  Hogy előkerüljön az eredményben a főnököket LEFT JOIN segítségével kell kapcsolnunk:  SELECT dolgozo.ename as ”Dolgozó neve”, fonok.ename as ” Főnök neve” FROM emp dolgozo, emp fonok WHERE dolgozo.mgr = fonok.empno(+);

13 Véső Tamás OE­NIK / 29

14 SELECT LISTA FROM WHERE GROUP BY HAVING ORDER BY ; Véső Tamás OE­NIK / 29

15 Ha a FROM részben szerepel az allekérdezés, akkor azt INLINE nézetnek is nevezzük (Ezt mindig másodlagos táblanévvel kell ellátni, kivéve ha csak 1 van) Mennyi a részlegenkénti maximumfizetések átlaga? Véső Tamás OE­NIK / 29

16 Mennyi a részlegenkénti maximumfizetések átlaga? Select AVG(inlinepelda.Maxfizu) as "Maximum átlag" from (SELECT deptno as Reszlegszam, MAX(sal+nvl(comm,0)) as Maxfizu from emp group by deptno) inlinepelda; Véső Tamás OE­NIK / 29

17  IN/NOT IN ◦ IGAZ, ha szerepel az adott halmazban/ha nem  ANY ◦ Ha a halmaz legalább egy eleme megfelel  ALL ◦ Ha a halmaz összes eleme megfelel  EXISTS / NOT EXISTS ◦ Ha a halmaz legalább egy elemet tartalmaz/Egyet sem Véső Tamás OE­NIK / 29

18  A WHERE-ben szereplő allekérdezéseknél, összehasonlító reláció esetén a bal oldalon mindig csak oszlopkifejezés állhat, jobb oldalon szerepelhet allekérdezés is zárójelek között „(” „)”  Példa:  SELECT * FROM emp  WHERE deptno IN ( SELECT deptno FROM dept  WHERE UPPER(dname) = ‘DALLAS’) Véső Tamás OE­NIK / 29

19 Select * from emp where sal > ALL (Select sal from emp where sal between 1200 AND 2900); Select * from emp where sal > ANY (Select sal from emp where sal between 1200 AND 2900); Véső Tamás OE­NIK / 29

20  Egyértékű lehet csak  Még utasításon belül sem lehet hivatkozni  Példa:  SELECT * FROM emp WHERE sal < (SELECT  AVG(sal) FROM emp) Véső Tamás OE­NIK / 29

21  INSTR pl: INSTR(ename,’SM’) Meg lehet vizsgálni, hogy egy adott karaktert, avagy karakterláncot tartalmaz e az adott kifejezés. Ha igen, akkor visszaadja, hogy hol fordul elő, ha nem, akkor 0-át ad vissza Pl.: select instr(ename,'SM') from emp;  SUBSTR SUBSTR(kifejezés, hányadiktól, hányat) Karakterláncot darabolhatunk Pl.: select substr(ename,0,3) from emp;  LENGTH Karakterlánc hosszát adja vissza Pl.: select * from emp where length('ename') > 4; Véső Tamás OE­NIK / 29

22  Az R és az L közt a különbség, hogy az egyik jobbra, a másik pedig balra igazítja a karakterláncot, és a másik oldalról kitölti a helyettesítő karakterrel.  Nézzük meg egy példán keresztül: SELECT RPAD(ename,6) || RPAD(’:’, ROUND((sal/1000),0)+1, ’#’) AS „Alkalmazottak és fizetésük” FROM emp ORDER BY sal DESC; Véső Tamás OE­NIK / 29

23 Jövő héten gépes ZH: Allekérdezések, Táblák összekapcsolása. MINDEN AMI KORÁBBAN IS VOLT! JÖVŐ HÉTEN FÉLÉVES NORMALIZÁLÁSÁT KELL LEADNI. KONZULTÁCIÓK normalizálás témakörben, részletes infó hamarosan. (NIK levlisták!) Véső Tamás OE­NIK / 29


Letölteni ppt "2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK 2012. 1 / 29."

Hasonló előadás


Google Hirdetések