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.

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.
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ő
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á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
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
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.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
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.
Nézettáblák létrehozása, módosítása és törlése
SQL.
Az SQL nyelv alapjai.
Nézettáblák, felső-N analízis Március 20. Rózsa Győző.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
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ázisok használata 2. gyakorlat Rózsa Győző
Adatbázis-kezelés SQL-lel
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
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.
– 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:
5. gyakorlat Fleiner Rita.
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.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázisok 1. SQL (alkérdések). Az IN használata Emlékezzünk vissza: Az IN után szereplő multihalmaz elemei lekérdezéssel is megadhatók SELECT nev FROM.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Előadás másolata:

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

Weboldalak

Tábla létrehozása  Táblát a CREATE TABLE táblanév utasítással hozhatunk létre  Létező táblát pedig CREATE TABLE táblanév AS SELECT * FROM létezőtáblanév-el tudunk klónozni.  Törölni pedig a DROP TABLE táblanévvel tudunk

Mezők frissítése  A rekordokban az egyes adatokat a következő utasítással frissíthetjük: UPDATE táblanév SET oszlopnév = újérték WHERE oszlopnév = aktuálisérték;

Többtáblás lekérdezések

 Táblákat összekapcsolhatunk FROM és WHERE utasításrészben vagy  FROM utasításrészben a JOIN segítségével

JOIN  Fajtái  Inner Azokat a sorokat (rekordokat) listázza ki, ahol az összekapcsoló oszlopnak mindkét táblában van értéke.  Left Minden sort felsorol a bal oldali táblából, annak ellenére, hogy a jobb oldali táblában nincsen minden esetben megfelelő érték.

JOIN  Fajtái  Right A jobboldali rekordok közül mindet kilistázza még akkor is, ha a baloldalon nincs megfelelő elem.  Full Mindent kilistázz a bal és a jobb oldalról is

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

Táblák összekapcsolása WHERE-el  A tábláknak is adhatunk másodlagos neveket  …FROM emp dolgozó …; Gyakran szükség van rá, ha össze akarunk kapcsolni táblákat a WHERE-ben  Például: kérdezzük le a főnökökhöz tartozó beosztottak nevét

Táblák összekapcsolása WHERE-el SELECT FROM tábla1, tábla2, és így tovább WHERE GROUP BY HAVING ORDER BY ;

Táblák összekapcsolása WHERE-el 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;

Hierarchialekérdezés (CONNET BY)  Segítségével olyan oszlopot hozhatunk létre, amelyből látszik a rekordok egymás alá való rendeltsége.  Általános alakja: SELECT … FROM tábla [WHERE …] CONNECT BY { PRIOR kifejezés = kifejezés vagy kifejezés = PRIOR kifejezés } [START WITH kifejezés = kifejezés] [OREDER BY];

Hierarchialekérdezés (CONNET BY)  Kulcsszavak jelentése:  LEVEL megadja, hogy az aktuálisan kilistázott elem a hierarchia mely szintjén található.  START WITH megadhatjuk hol honnét kezdjük a hierarchikus szerkezet feldolgozása  WHERE utasításnál nem tudunk szűrni elődöt és utódot csak konkrét sorokat  CONNECT BY utasításrészben megadott feltételt használjuk a sorok és leszármazottaik szűrésére  PIOR a bejárás szerinti szülőcsúcsot határozza meg

Hierarchialekérdezés (CONNET BY) Példák  Az előző feladatot egészítsük ki, hogy lássuk ki milyen szinten van a cégnél.  Nézzük meg SMITH, hogy neki mennyit kell még előre lépni a létrán, hogy elnök legyen.

Allekérdezés  Azokat a lekérdezéseket nevezzük allekérdezésnek, amelyeket nem jelenítünk meg, de valamilyen eredmény(eket) ad át egy külső utasítás számára.  A feldolgozás ilyenkor mindig belülről kifelé halad, azaz a legbelső SELECT értékelődik ki először.  Használható a FROM, WHERE, HAVING utasításrészekben.

Allekérdezés (FROM-ban)  A FROM-on belüli allekérdezést inline nézetnek szokás nevezni.  Ilyenkor a FROM-ban lévő SELECT-et másodlagos táblanévvel kell ellátni (lásd 9. dia)

Allekérdezés (FROM-ban)  Példa: 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;

Allekérdezés (WHERBEN)  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

Allekérdezés (WHERBEN)  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

Allekérdezés (WHERBEN)  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 „(” „)” Persze ezeknek összhangban kell lenniük.

ALL / ANY 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);

Házi feladat 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.

Házi feladat 1. 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 a ré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.

Házi feladat 2. lépés allekérdezés allekérdezéssel  A kidolgozás során mindig az allekérdezéssel kezdjünk.  A részlegében dolgozók legkisebb és legnagyobb jövedelmét SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés, deptno AS részleg FROM emp GROUP BY deptno;

Házi feladat 3. 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 a ré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.

Házi feladat 3. 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

Házi feladat 3. 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és as beáll FROM emp dolgozó, dept telephely, (SELECT MIN(sal+NVL(comm,0)) AS minimumfizetés, deptno AS részleg FROM emp GROUP 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;

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 NEM  Megjegyzés: Másodlagos táblanévadáskor NEM használunk AS kulcsszót!!!

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

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ő

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

Házi feladat (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.

Házi feladat (2) SELECT ename AS "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 emp dolgozó, (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;