2012. tavaszi félév Vitéz Gergely. 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,

Slides:



Advertisements
Hasonló előadás
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Advertisements

10. gyakorlat SQL SELECT.
Tananyag: konzultáció
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
2012. tavaszi félév Véső Tamás. 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,
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Ablak módszer Rózsa Győző
Analitikus függvények
Analitikus, statisztikai és szélsőérték fv-k Hári Veronika
Analitikus, statisztikai és szélsőérték fv-k Rózsa Győző
Anyagadatbank c. tárgy gyakorlat
Erőállóképesség mérése Találjanak teszteket az irodalomban
Adatbázisok használata 1 (1. gyakorlat)
Delphi programozás alapjai
2012. tavaszi félév Véső Tamás. 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,
Adatbázisok használata
Műveletek logaritmussal
2012. március 6. Rózsa Győző Interaktív környezet március Rózsa Győző
Többtáblás lekérdezések, allekérdezések Rózsa Győző
SQL – DQL (Data Query Language ) adat lekérdezések
Adatbázis-kezelés.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
2005. december 12.Markó Tamás, PTE TTK1 Az Oracle SQL 11. Elemzések támogatása.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Részletező csoportosítások Rózsa Győző
ADATBÁZIS HASZNÁLAT I. 2. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
SQL.
Az SQL nyelv alapjai.
Nézettáblák, felső-N analízis Március 20. Rózsa Győző.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
szakmérnök hallgatók számára
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
2012. tavaszi félév Véső Tamás. 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,
ADATBÁZIS HASZNÁLAT I. 4. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 18.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Véső Tamás Véső Tamás OE­NIK / 29.
Részletező csoportosítások Hári Veronika
Részletező csoportosítások Rózsa Győző
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis használat I. 2. gyakorlat.
ADATBÁZIS HASZNÁLAT I. 3. gyakorlat. Figyelem!!! A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem.
Adatbázisok használata 2. gyakorlat Rózsa Győző
Készítette: Tóth Ervin
1 Gyarapodó Köztársaság Növekvő gazdaság – csökkenő adók február 2.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
1 Informatikai Szakképzési Portál Adatbázis kezelés DQL – Adatlekérdező nyelv.
Adatbázisok Fleiner Rita, Tankönyv:
Adatbázisok gyakorlat
V 1.0 ÓE-NIK-AII, Programozás I. Karaktersorozatok Feladatok.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
2. AB gyakorlat Egytáblás csoportosító lekérdezések.
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Adatbázis-kezelés. Középszint: –1-2 tábla –SQL-nyelv és lekérdező-rács használata –Űrlap és jelentés készítés Emelt szint: –több tábla (kapcsolatok) –több.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
V 1.0 OE-NIK, Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Előadás másolata:

2012. tavaszi félév Vitéz Gergely

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. OE-NIK

 Virtuális gép indítása  SQL plus indítása  Felhasználónév: scott  Jelszó: tiger  Mit tegyünk ha nem sikerül belépni ◦ 1: Várjunk egy picit, amíg a szolgáltatás elindul ◦ 2: Szolgáltatás újraindítása  Szerkesztő: ed fajlnev  3OE-NIK 2012.

 SELECT FROM WHERE GROUP BY HAVING ORDER BY ;  A lekérdezést pontosvesszővel zárjuk  Az attribútumokat vesszővel választjuk el  A karakterláncokat aposztrófok közé tesszük 4OE-NIK 2012.

 A segítségével szűrhetjük az eredményhalmazunkat  Operátorok: = <> >=  Például: sal > 1000  ‘!=‘ ? ‘<>’ 5OE-NIK 2012.

 Logikai operátorok:  AND: ◦ A segítségével több feltételt is megszabhatunk egyszerre, melynek mind teljesülnie kell  OR: ◦ Ha AND helyett „OR”-t használunk, akkor elég az egyik feltételnek teljesülnie  Keresés zárt intervallumban: ◦ BETWEEN 100 AND 1500 OE-NIK

 Listázza ki azon dolgozók összes adatát, akiknek a fizetésük kevesebb, mint 1230$!  Listázza ki azon dolgozók nevét és fizetését, akik fizetése 1500$ vagy 1600$!  Listázza ki azon dolgozók nevét és fizetését, akik fizetése 1000$ és 1700$ között van! OE-NIK

Szeretnénk egy kicsit szépíteni lekérdezésünk megjelenő eredményén: SELECT ename AS ”Név”, sal AS ”fizetés” FROM emp ORDER BY ename;  Név fizetés   ADAMS 1100  ALLEN 1600  BLAKE 2850  ……… ….. OE-NIK

 Írassuk ki azon dolgozók nevét, munkakörét és fizetését, akiknek a fizetése 1500 USD alatt van. A lista fejléce legyen „Név”, „Munkakör”, „Fizetés”, rendezzen a dolgozók neve szerint. OE-NIK

SELECT ename AS ”Név”, job AS ”Munkakör”, sal AS ”Fizetés” FROM emp WHERE sal < 1500 ORDER BY ename; OE-NIK

 További kifejezések: ◦ Alsztringvizsgálat  Oszlopkifejezés LIKE ’%alsztring%’  Pl.: SELECT * FROM emp WHERE ename LIKE UPPER(’%ar%’); ◦ Allekérdezésre vonatkozó halmazvizsgálat  Oszlopkifejezés [NOT] IN | ANY | ALL | EXSIST allekérdezés ◦ NULL értékre vonatkozó vizsgálat (következő dia)  Oszlopkifejezés IS NULL | IS NOT NULL OE-NIK

 Ki kap jutalékot? Vigyázat, aki nem kap, annál az érték nem 0, hanem nincs is ott semmi!  A …WHERE comm=0; nem fog működni. SELECT ename, comm FROM emp WHERE comm IS NOT NULL; OE-NIK

 Írassuk ki az 1200 és 2900 USD között kereső dolgozók minden adatát úgy, hogy a fizetés, majd a nevük szerint legyen rendezve.  Írassuk ki az 1200 és 2900 USD között NEM kereső dolgozók nevét, keresetét, jutalékát úgy, hogy a fizetés, majd a nevük szerint legyen rendezve és beszédesek legyenek az oszlopnevek. OE-NIK

Írassuk ki az 1200 és 2900 USD között kereső dolgozók minden adatát úgy, hogy a fizetés, majd a nevük szerint legyen rendezve. SELECT emp.* FROM emp WHERE sal BETWEEN 1200 AND 2900 ORDER BY sal, ename; OE-NIK

Írassuk ki az 1200 és 2900 USD között NEM kereső dolgozók nevét, keresetét, jutalékát úgy, hogy a fizetés, majd a nevük szerint legyen rendezve és beszédesek legyenek az oszlopnevek. SELECT emp.ename AS Név, emp.sal AS Fizetés, emp.comm AS Jutalék FROM emp WHERE sal NOT BETWEEN 1200 AND 2900 ORDER BY sal, ename; OE-NIK

Írassuk ki a „clerk” munkakörű dolgozók nevét, munkakörét, fizetését. A lista fejléce legyen „Név”, „Munkakör”, „Fizetés”, rendezzen a dolgozók neve szerint. SELECT ename, job, sal FROM emp WHERE job LIKE ’%clerk%’; Mi történt? Miért nem jelent meg a clerk? OE-NIK

Kis és nagybetűk számítanak! SELECT ename, job, sal FROM emp WHERE job LIKE ’%CLERK%’; vagy: SELECT ename, job, sal FROM emp WHERE job LIKE UPPER(’Clerk’); ENAME JOB SAL SMITH CLERK 800 ADAMS CLERK 1100 JAMES CLERK 950 MILLER CLERK 1300 OE-NIK

Ha több munkakörre is kíváncsiak vagyunk? Például: „sealsman” és „clerk”. SELECT ename, job, sal FROM emp WHERE UPPER(job) IN UPPER(’SALESMAN’,’CLERK’); Megjegyzés: lehet így is … LOWER(job) IN (’salesman’, ’clerk’); OE-NIK

Műveletek dátumokkal: SELECT ename AS Név, hiredate AS Dátum, EXTRACT(YEAR FROM hiredate) AS BeÉv, EXTRACT(MONTH FROM hiredate) AS BeHó, EXTRACT(DAY FROM hiredate) AS BeNap FROM emp WHERE hiredate > TO_DATE('1981.máj.05'); Dátumformátum probléma: „TO_DATE('1981.máj.05');” TO_DATE(' ','YYYY.MM.DD'); OE-NIK

 Számoljuk ki a dolgozóknak a jövedelmét (sal+comm) és rendezzük növekvő rendbe. SELECT emp.*, sal+comm FROM emp;  Nézzük meg, hogy mi történt. Miért történhetett ez? OE-NIK

 Ilyen estekben használjuk az NVL függvényt. Lényege, ahol nincs érték megadva azt kitölti az általunk megadottal.  Nézzük meg az előző példát a függvény segítségével. OE-NIK

SELECT ename AS Név, sal AS Fizetés, sal+NVL(comm,0) AS Jövedelem FROM emp ORDER BY Jövedelem DESC; OE-NIK

 Milyen munkakörök léteznek ennél a cégnél? SELECT job FROM emp ORDER BY job asc; ◦ El lehet tüntetni a többször szereplő sorokat? OE-NIK

 SELECT DISTINCT job FROM emp ORDER BY job asc; OE-NIK

 A leggyakrabban használt függvények: ◦ AVG()  Kiszámolja a csoport(ok) átlagát. ◦ SUM()  A csoportban összeget számol. ◦ MIN()  A legkisebb értéket adja meg a csoportban. ◦ MAX()  A legnagyobb értéked adja meg a csoportban. ◦ COUNT()  Megszámolja a csoport elemeinek számát.  Ezeket a függvényeket mindig GROUP BY-al használjuk. OE-NIK

Példa: legnagyobb fizetés részlegenként SELECT deptno, MAX(sal) FROM emp GROUP BY deptno; Eredmény: DEPTNO MAX(SAL)  Ami szerint csoportosítunk azt mind bele kell írni a GROUP BY utasításrészbe, amit kiíratunk (számolunk) azt nem kell.  A csoportfüggvénybe is lehet kifejezést írni. OE-NIK

 A főnök szeretné látni részlegenként: ◦ A legalacsonyabb fizetést; ◦ A legmagasabb fizetést; ◦ Az átlagos fizetést; ◦ A létszámot. OE-NIK

SELECT deptno AS Részleg, MIN(sal) AS Legkisebb, MAX(sal) AS Legnagyobb, AVG(sal) AS Átlag, COUNT(*) AS Létszám FROM emp GROUP BY deptno; OE-NIK

 HAVING – a már csoportosított eredményre vonatkozó feltétel.  Listázzuk főnökönként (mgr) a jutalékban nem részesülő dolgozóinak átlagfizetését csökkenő sorrendben, feltéve, hogy ez az érték 1000 USD-nál több. SELECT AVG(sal) AS "Átlagfizetés", mgr AS "Fonök" FROM emp WHERE comm IS NULL AND mgr IS NOT NULL GROUP BY mgr HAVING AVG(sal) > 1000 ORDER BY "Átlagfizetés" DESC; OE-NIK

 Írassa ki a 2000 USD-nál nagyobb átlagjövedelmű részlegeket, az átlagjövedelem szerint rendezve! OE-NIK

SELECT deptno, ROUND(AVG(sal+NVL(comm,0))) AS átlagjövedelem FROM emp GROUP BY deptno HAVING ROUND(AVG(sal+NVL(comm,0))) > 2000 ORDER BY átlagjövedelem ASC; OE-NIK

Jövő héten gépes ZH: dátumok, csoportosítás, Csoportfüggvények, szűrés, speciális függvények lehetnek benne. 32OE-NIK 2012.

 A DECODE függvény segítségével javíthatjuk a listánk áttekinthetőségét. SELECT ename, job, DECODE(comm, 300, ’háromszáz’, comm) FROM emp; SELECT ename, DECODE(NVL(comm,-1), -1, ’Nem jár jutalék’, comm FROM emp; 33OE-NIK 2012.

 A CASE függvény, hasonlóan a DECODE függvényhez itt is a listánkat tehetjük olvashatóbbá, de képes kezelni már több esetet is.  Működése HA-AKKOR, KÜLÖNBEN elvű.  A feldolgozás során mindig az első a kifejezést igazzá tévő értéket fogja behelyettesíteni. 34OE-NIK 2012.

 Szintaktikája: CASE oszlopkifejezés [oszlopkifejezés] WHEN LogikaiKifejezés THEN VisszatérésiÉrték [WHEN LogikaiKifejezés THEN VisszatérésiÉrték] … [ELSE VisszatérésiÉrték] END 35OE-NIK 2012.

 Listázzuk ki a dolgozók nevét, munkakörét, jutalékát úgy, hogy akinek nincs jutaléka oda azt írjuk ki, hogy „nem jár jutalék”. ◦ Oszlopkifejezéssel  SELECT ename, job, CASE NVL(comm,-1) WHEN -1 THEN ’Nem jár jutalék’ ELSE TO_CHAR(comm) END FROM emp; 36OE-NIK 2012.

Listázza ki részlegenként és minden részlegben munkakörönként a 2000 USD-nál nagyobb jövedelmű dolgozók átlagjövedelmét, mégpedig úgy, hogy a lista legyen az utóbbi szerint növekvő és használjon beszédes oszlopneveket. 37OE-NIK 2012.

SELECT deptno AS Részleg, job AS Munkakör, avg(sal+NVL(comm,0)) AS Átlag FROM emp WHERE (sal + NVL(comm,0)) > 2000 GROUP BY deptno, job ORDER BY Átlag; 38OE-NIK 2012.

Listázza ki a legfeljebb 2200 USD átlagjövedelmű részlegeknek az átlagjövedelmét és ezt rendezzük átlagjövedelem szerint növekvő sorrendbe majd csökkenő sorrendbe és használjon beszédes oszlopneveket. 39OE-NIK 2012.

SELECT deptno AS Részleg, AVG(sal+nvl(comm,0)) AS Átlag FROM emp GROUP BY deptno HAVING AVG(sal+nvl(comm,0)) < 2200 ORDER BY Átlag asc/desc; 40OE-NIK 2012.