ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu.

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
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,
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,
Azonosítók és képzési szabályaik
Műveletek logaritmussal
Többtáblás lekérdezések, allekérdezések Rózsa Győző
Táblázat kezelő programok
SQL – DQL (Data Query Language ) adat lekérdezések
Programozási alapismeretek 10. előadás
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Adatbázis-kezelés.
Adatbázis-kezelés ACCESS program:
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.
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.
Érettségi feladatok megoldása LINQ-kel
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
Microsoft Excel Függvények VIII.
SQL.
Az SQL nyelv alapjai.
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,
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 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ő
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ő
Adatbázis-kezelés SQL-lel
Készítette: Tóth Ervin
DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.
Határozatlan integrál
– 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 gyakorlat
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
2. AB gyakorlat Egytáblás csoportosító lekérdezések.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
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.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
SQL Több táblás lekérdezések. Halmazműveletek. Alkérdések
Előadás másolata:

ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ISMÉTLÉS 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

SELECT Záradékok sorrendje INTO FROM WHERE GROUP BY HAVING UNION/MINUS INTERSECT ORDER BY 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ANALITIKUS és RANGFÜGGVÉNYEK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Alapvető problémák Függvény csak a szelekciós listában lehet Sorba rendezés vagy csoportosítás utáni műveleteket csak allekérdezéssel lehet elvégezni A ROWNUM pszeudo-oszlop használata nehézkes és nem szabványosítható Megoldás: speciális függvények, amely a csoportosítással / rendezéssel együtt tudnak működni 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Analitikus függvények? analitikus_függvény OVER (analitikus_záradék) Analitikus záradék: csoportosítás (PARTITION BY), sorrendberakás (ORDER BY), ablak-kezelés (ROW/RANGE) Szabványos: SQL:2003 (OVER helyett WITHIN GROUP van egy esetben) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Rangfüggvények Egyszerű rangfügvények: ROW_NUMBER()  Egyszerű sorszám RANK()  Azonos után kimarad DENSE_RANK()  Azonos után folytatja PERCENT_RANK()  Százalékos, [0..1] Alapvető használat: NINCS PARAMÉTERÜK! SELECT ename, sal, RANK() over (ORDER BY sal desc) as RANG FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Partition by Csoportokra bontott rang SELECT deptno, ename, sal, RANK() OVER ( PARTITION BY deptno ORDER BY sal ) as RANG FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Partition by Több mező alapján csoportokra bontott rang SELECT deptno, job, ename, sal, RANK() OVER ( PARTITION BY deptno, job ORDER BY sal ) as RANG FROM emp ORDER BY deptno, job; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

„Aggregáló” rangfüggvények? Ugyanazok a függvények, de a paraméter-lista nem üres – cél egy konkrét (a táblától független) érték sorrendjének keresése OVER helyett WITHIN GROUP NEM LEHET „PARTITION BY” 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Aggregáló használat SELECT RANK(2500) WITHIN GROUP (ORDER BY sal asc) AS rang FROM emp; SELECT RANK(:fiz) WITHIN GROUP (ORDER BY sal desc) AS rang FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Aggregáló-csoportosító használat Minden részlegben szeretnénk látni a megadott érték helyét SELECT deptno, RANK(2500) WITHIN GROUP (ORDER BY sal desc) AS rang FROM emp GROUP BY deptno; GROUP BY  csoportosító függvény is használható lenne, bár logikailag sok értelme itt nincsen 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

CSOPORTOSÍTÓ FÜGGVÉNY ANALITIKUS ZÁRADÉKKAL 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csoportosító függvény analitikus zázadékkal SELECT ename, sal, SUM(SAL) OVER (order by sal) as OSSZ FROM emp;  A lista rendezett – látszik ahogy az összeg növekszik! (azonos fizetéseknél egyszerre!) SELECT ename, sal, AVG(SAL) OVER (order by sal) as AVG FROM emp;  egyre "pontosabb" átlag 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csoportosító függvény analitikus zázadékkal SELECT deptno, ename, sal, SUM(SAL) OVER ( partition by deptno order by ename ) as OSSZ, COUNT(*) OVER ( partition by deptno order by ename ) as DB FROM emp ORDER BY deptno, ename; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csoportosító függvény analitikus zázadékkal select ename, hiredate, sal from emp order by hiredate; select ename, hiredate, sal, sum(sal) over (order by hiredate) as OSSZ from emp order by hiredate; select ename, hiredate, sal, sum(sal) over (partition by to_char(hiredate, 'YYYY') order by hiredate) as OSSZ from emp order by hiredate; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

CSOPORTOSÍTÓ FÜGGVÉNY ANALITIKUS ZÁRADÉKKAL ÉS ABLAK-KEZELÉSSEL 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csúszó ablak Az ablak az aktuális sor előtt 1 sorral kezdődik és utána 2 sorral ér véget SELECT ename, sal, avg(SAL) OVER ( order by sal rows between 1 preceding and 2 following ) as AVG FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csúszó ablak Az ablak részleghatárokat is figyelembe vesz, az aktuális sor előtt 1 sorral kezdődik és utána 1 sorral ér véget SELECT deptno, ename, sal, sum(SAL) OVER ( partition by deptno order by sal rows between 1 preceding and 1 following ) as OSSZ FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Csúszó ablak Az ablak részleghatárokat is figyelembe vesz, az aktuális sor előtt végtelen sorral kezdődik és utána 1 sorral ér véget SELECT deptno, ename, sal, sum(SAL) OVER ( partition by deptno order by sal rows between unbounded preceding and 1 following ) as OSSZ FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Részhalmaz Lehetőségünk van RANGE alkalmazására – ritkább. Sorok száma helyett érték-részhalmazt definiálunk Az aktuális sorhoz képest a nagyobb fizetéssel rendelkezőket akarom megszámolni  ez átírható lenne ROWS-ra SELECT deptno, ename, sal, count(*) OVER ( order by sal range between current row and unbounded following ) as DB FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Részhalmaz Az aktuális sorhoz képest +/- 500 USD SELECT deptno, ename, sal, count(*) OVER ( order by sal range between 500 preceding and 500 following ) as DB FROM emp;  ez már nem oldható meg ROWS segítségével 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Részhalmaz Az aktuális sorhoz képest +/- 33,333% SELECT deptno, ename, sal, count(*) OVER ( order by sal range between sal/3 preceding and sal/3 following ) as DB FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyéb analitikus- és hisztogram-függvények 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyéb analitikus függvények FIRST_VALUE(), LAST_VALUE()  csoport valamilyen sorrend szerinti első vagy utolsó eleme (nem-determinisztikus?) SELECT ename, sal, FIRST_VALUE(ename) OVER (order by sal asc) FROM emp; SELECT deptno, ename, sal, FIRST_VALUE(empno) OVER (partition by deptno order by sal asc) as FIRST_ID, FIRST_VALUE(ename) OVER (partition by deptno order by sal asc) as FIRST_NAME FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyéb analitikus függvények SELECT deptno, ename, sal, LAST_VALUE(empno) OVER (partition by deptno order by sal asc) as LAST_ID, LAST_VALUE(ename) OVER (partition by deptno order by sal asc) as LAST_NAME FROM emp;  ??? Állandóan változó értékek? LAST_VALUE: "by default is the CURRENT ROW and UNBOUNDED PRECEDING" 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyéb analitikus függvények SELECT deptno, ename, sal, LAST_VALUE(empno) OVER (partition by deptno order by sal asc rows between current row and unbounded following) as LAST_ID, LAST_VALUE(ename) OVER (partition by deptno order by sal asc rows between current row and unbounded following) as LAST_NAME FROM emp; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyéb analitikus függvények RATIO_TO_REPORT()  Részesedés az összegből SELECT ename, sal, RATIO_TO_REPORT(sal) OVER () as RAT FROM emp ORDER BY sal desc; SELECT deptno, ename, sal, RATIO_TO_REPORT(sal) OVER (partition by deptno) as RAT FROM emp ORDER BY deptno, sal desc; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Hisztogram függvények Eredetileg: az értelmezési tartományon belül az egyes értékekhez hány mérési eredmény tartozik (mérés helyett: képfeldolgozás?) Ezúttal: Nem pontos egyezést, hanem intervallumokba esést vizsgálunk Oracle segítségével: automata intervallumokra osztás és intervallumba való tartozás vizsgálata 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Hisztogram függvények WIDTH_BUCKET(oszlop, minimum, maximum, intervallumok_száma);  Egyenlő méretű, megadott darabszámú rész-intervallum létrehozása a megadott [minimum..maximum[ intervallumon belül NTILE(darabszám) OVER ([PARTITION BY xxx] ORDER BY yyy)  Egyenlő taglétszámú, megadott darabszámú rész-intervallum létrehozása a sorrendezett mező szerint 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Hisztogram függvények SELECT ename, sal, width_bucket(sal, 0, 6000, 5) as histo FROM emp ORDER BY sal; SELECT ename, sal, ntile(5) over (order by sal) as histo FROM emp ORDER BY sal; SELECT ename, sal, width_bucket(sal, (select min(sal) from emp), (select max(sal) from emp), 5) as histo FROM emp ORDER BY sal; SELECT deptno, ename, sal, ntile(2) over (partition by deptno order by sal) as histo FROM emp ORDER BY deptno, sal; 2017.04.04. szabo.zsolt@nik.uni-obuda.hu