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.

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

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.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 4. Előadás Az SQL adatbázisnyelv Sorváltozók Alkérdések Ismétlődő sorok Összesítések 1.
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ő
Microsoft Access Lekérdezések.
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,
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.
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
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
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
Triggerek II. ADATBÁZIS ALAPÚ RENDSZEREK.  Az Oracle kifinomult módon támogatja a sorszámozások generálását  Szekvencia: olyan adatbázis-objektum, amely.
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
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.
ADATBÁZISOK
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.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
Nézettáblák, felső-N analízis Március 20. Rózsa Győző.
Adatbázis adminisztrátori ismeretek
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
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 10. gyakorlat SQL SELECT, Összekapcsolás, Nézettáblák.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. 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
Ma az un. Relációs adatmodelleket használjuk.
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.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Haladó Programozás Adatbázis-elérési módszerek összehasonlítása
Adatbázis rendszerek I
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Web programozás és haladó fejlesztési technikák – C#
Előadás másolata:

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 minimum elégséges érdemjegynek!

 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 tábla1, tábla2, és így tovább WHERE GROUP BY HAVING ORDER BY ;

EMP és DEPT tábla összekapcsolása: Példa: 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.depno;

 INNER ◦ Az oszlopérték mindegyik táblában létezik és megegyezik  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

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

PÉLDA: SELECT ENAME, LOC FROM EMP INNER JOIN DEPT USING(deptno);

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?

 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(+);

SELECT LISTA FROM WHERE GROUP BY HAVING ORDER BY ;

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?

SELECT AVG(inline.Maxfizu) as "Maximum átlag" FROM (SELECT deptno as Reszlegszam, MAX(sal+nvl(comm,0)) as Maxfizu FROM EMP GROUP BY deptno) inline;

 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

 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’)

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);

 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)

 Következő, azaz 4. alkalomra hozni kell az adatmodellt normalizálva!

Példatár 3.3 feladat (67.oldal) Listázza a ’ Clerk’ munkakörű dolgozókat foglalkoztató részlegek azononosítóját, nevét, és telephelyét! Ha készen van valaki: Listázza a New York telephely minden dolgozójának nevét, és a főnökük nevét!

 1: Allekérdezés a FROM részben ◦ Kell nekünk egy tábla, amiben csak azoknak a részlegeknek az azonosítója van, ahol ‚CLERK’ dolgozik. ◦ Select deptno From emp where job = ’CLERK’ group by deptno;

 Ha ez megvan, nézzük meg, hogy mire van szükségünk: Részleg, Részlegnév és Telephely SELECT dept.deptno as ”Részleg”, dept.dname as ”Részlegnév”, dept.loc as ”Telephely” FROM dept, (Select deptno From emp where job = ’CLERK’ group by deptno) allerkerdezesunk

SELECT dept.deptno as ”Részleg”, dept.dname as ”Részlegnév”, dept.loc as ”Telephely” FROM dept, (Select deptno From emp where job = ’CLERK’ group by deptno) allekerdezesunk WHERE allekerdezesunk.deptno = dept.deptno;

 Select deptno as "Részleg", dname as "Részlegnév", loc as "Telephely"  from dept  WHERE deptno in (Select deptno  From emp  where job = 'CLERK'  group by deptno);

Select dolgozo.ename as "Dolgozó neve", fonok.ename as "Főnök neve" FROM emp dolgozo, emp fonok WHERE dolgozo.mgr = fonok.empno AND dolgozo.deptno IN (Select deptno from dept where loc = 'NEW YORK'); Miért rossz ez a megoldás?

Select dolgozo.ename as "Dolgozó neve", fonok.ename as "Főnök neve" FROM emp dolgozo, emp fonok WHERE dolgozo.mgr = fonok.empno(+) AND dolgozo.deptno IN (Select deptno from dept where loc = 'NEW YORK'); A (+) hatására a rendszer úgy kezeli a főnök táblát, mintha lenne egy sor, ami csupa NULL- ból áll.

 Listázza ki azon dolgozók nevét, jövedelmét részlegük nevét, részlegük átlagjövedelmét, melyek a részlegük átlagjövedelménél kevesebbet keresnek! Rendezze az eredményt a részleg szerint!

 select ee.ename,  ee.sal + nvl(ee.comm, 0) as sajat,  dd.dname,  round(aa.atlag, 1) as reszlegatlag  from  emp ee,  (select deptno, avg(sal+nvl(comm,0)) as atlag  from emp  group by deptno) aa,  dept dd  where ee.deptno = dd.deptno  and ee.deptno = aa.deptno  and ee.sal + nvl(ee.comm, 0) < aa.atlag  order by dname;