– SELECT - 2. – Tarcsi Ádám 2006. március Adatbázis gyakorlat.

Slides:



Advertisements
Hasonló előadás
Koordináták, függvények
Advertisements

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.
10. gyakorlat SQL SELECT.
Tananyag: konzultáció
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.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Microsoft Excel Függvények II.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
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,
Delphi programozás alapjai
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
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
(MY)SQL MEGJEGYZÉSEK. MYISAM VS. INNODB  A MySQL-ben többféle tárolási motor is használatos: MyISAM, InnoDB  A régebbi verziókban a MyISAM alapértelmezett,
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.
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
Adattáblák létrehozása, módosítása, tranzakciók, megszorí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.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
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.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
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.
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ázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
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.
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.
SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
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
5. gyakorlat Fleiner Rita.
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.
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
ACCESS Lekérdezések, űrlapok, jelenté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.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Ami még kimaradt. Halmazműveletek A lekérdezések eredmény sorainak halmazát tekintve több lekérdezés között értelmezhetjük a szokásos halmaz műveleteket.
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:

– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat

Miről lesz szó? SELECT befejezés: –GROUP BY –HAVING –dátum kezelés –Al-select (subselect) –INSERT, DELETE, UPDATE, CREATE – selecttel

GROUP BY SELECT … FROM … [WHERE …] GROUP BY mező1, [mező 2] [ORDER BY …] Csoportosítás, csoport képzés. Megszámolhatjuk, hogy hány sor van egy csoportban, vagy kiválaszthatjuk a csoport egy kívánt tagját (pl.: a legidősebbet a csoportban) Oszlopfüggvényeket (SUM, AVG, COUNT, stb.) az egyes csoportokban külön-külön hajtja végre A GROUP BY-ban megadott mezőnek szerepelnie kell a SELECT utáni felsorolásban.

GROUP BY – 2. A WHERE feltételnek megfelelő sorokat csoportosítja úgy, hogy a megadott csoportosítási kifejezéseken (GROUP BY x,y…) belül az egyező értékkel bírók, illetve azok teljes sorai kerülnek 1-1 csoportba. Üres csoportok nem kerülnek be! FeladatFeladat: Adjuk meg, hogy az egyes tanárok hány diáknak osztályfőnökei! (Azonosítóval) SELECT Ofo, COUNT(DAzon) AS Db FROM tDiak GROUP BY Ofo;

GROUP BY feladatok Adjuk meg az egyes tanárok (névvel megadva) által oktatott diákok átlagéletkorát! Megjegyzés: Az eredmény táblába nem kerülnek bele azok a tanárok, akik nem tanítanak senkit sem.

HAVING Csoportokra vonatkozó feltétel megadás. csak a GROUP BY utasítással együtt használjuk. MindenWHERE GROUP BY HAVING

HAVING feladatok Adjuk meg azon tanárok nevét, akik 2 diáknál többet tanítanak! Adjuk meg azon tanárok nevét és tanítványainak átlagéletkorát, akik legalább 3 diákot tanítanak!

Dátumkezelés Dátum tárolás: (évszázad,) év, nap, óra, perc, másodperc, századmásodperc. SELECT sysdate FROM dual; - rendszeridő, dátum Eredménye: :20:03.0 Dátummal végezhető műveletek: –dátum +- szám - napokat ad hozzá, vesz el –dátum – dátum- eltelt napok száma –dátum + szám/24- szám db órát ad a dátumhoz

Dátum konverzió Hozzunk létre egy új táblát: tEmber(EAzon:szám,Nev:szoveg,Szuletes:date) Töltsük fel egy rekorddal: INSERT INTO-val próbáljuk meg feltölteni! INSERT INTO tEmber VALUES (5,'Kiss János', ' FEB-28 10:00:00.0 ' );  Konverziós függvény!

Konverzió TO_DATE(‘dátumérték’,’formátum’): number,char,varchar típusú dátumértéket adott formátumú dátummá alakítja. Pl.: TO_DATE( ' 1988.feb.28.','YYYY.mon.DD.') Most próbáljuk újra! INSERT INTO tEmber VALUES (10,'Kiss János',TO_DATE('1988.feb.28.','YYYY. mon.DD.'));

Konverzió TO_CHAR Lehetséges dátum formátummaszkok pl.: YYYY- teljes évszám, számmal YEAR- évszám betűvel MM- hónapneve (pl:.03) MONTH- hónap teljes neve, betűvel mon- hónap 3 betűs rövidítése, kisbetűvel WW- hét sorszáma az évben DD- nap sorszáma a hónapban D- nap sorszáma a héten DAY- nap teljes neve, szövegesen

Konverzió – TO_CHAR TO_CHAR(érték,’formátum’): Számból, dátumból (mezőt  adott formátumú dátummá) karaktert. Lekérdezéskor. SELECT TO_CHAR(sysdate,'MONTH') FROM DUAL; Select TO_CHAR(Szuletes,'YYYY MONTH DAY') from tEmber; SELECT TO_CHAR (TO_DATE('1979.sep.10','YYYY.mon.DD'), 'YEAR MONTH DDD WW') FROM dual

Dátumkezelő függvények * MOTHS_BETWEEN(dátum1,dátum2): két dátum között eltelt hónapok száma ADD_MONTHS(dátum,n): n db naptári hónapot ad hozzá a dátumhoz. n negatív is lehet. NEXT_DAY(dátum,’nap’):Meghatározza a megadott dátum utáni első ‘nap’ nevű nap dátumát. SELECT NEXT_DAY(sysdate,'monday') FROM dual; LAST_DAY(dátum,’nap’): A megadott dátum hónapjának utolsó napját

Dátumkezelő függvények – 2. * UPDATE tEmber SET Szuletes=ADD_MONTHS(Szuletes,-20) WHERE EAzon=5;

Feladatok: Hány olyan diák van, akit a 2-es azonosítójú tanár tanít? Adjuk meg a tDiak táblában szereplők születési évszámát! Adjuk meg a 10 és 20 év közötti diákok tanárainak nevét, abc sorrendben. (Minden név csak egyszer szerepeljen!) Listázzuk ki az összes diákot, akik 15 és 25 éves kor között vannak, vagy a vezetéknevük „Har”! Adjuk meg a tanított diákok száma alapján csökkenő sorrendbe rendezve, hogy az egyes tanárok hány diákot tanítanak!

Allekérdezés - subselect Allekérdezés olyan SELECT utasítás, amely értéke(ke)t ad át egy külső utasításnak. WHERE-ben vizsgálandó értékeket másik SELECT-ből hozzuk. Pl.: Ki idősebb, mint a 32-es azonosítójú diák? SELECT nev FROM tdiak WHERE kor> (SELECT kor FROM tdiak WHERE DAzon=32); Hogy is van ez?

Allekérdezés – subselect – 2. Jelentőségük: ha egy külső utasítás eredménytáblájában valamely sor kiválasztása egy teljes tábla kiértékelésétől függ. Tagadás esetén. Pl.: melyik tanár nem osztályfőnök Először a belső SELECT hajtódik végre, ez lesz a külső feltétel. WHERE, HAVING, FROM utasításrészben Mindig egy összehasonlító operátor jobb oldalán van! Zárójelbe ( ) kell tenni Nem tartalmazhat ORDER BY utasításrészt Fajái: –egysoros –többsoros

Egysoros subselect A belső SELECT egyetlen sort ad vissza Néha a DISTINCT záradékkal segíthetünk! Példa: Adjuk meg azon tanárokat, akik legalább egy diákot tanítanak! (melyik tanár osztályfőnök?) Adjuk meg azon tanárokat, akik nem tanítanak egy diákot sem!

Többsoros subselect Hibás, ha az előbbi alselect több sort ad vissza.  Összehasonlító operátort használunk: IN / NOT IN: a lista bármely elemével egyenlő – adott érték előfordulása ANY: listát ad vissza, ha van egy elem, ami kielégíti a feltételt, akkor a WHERE feltétel teljesül – legalább 1. ALL: listát ad vissza Teljesül a feltétel, ha a visszaadott lista minden eleme minden tagja teljesíti – minden esetben igaz EXIST: a feltétel teljesül, ha az allekérdezés legalább egy sort ad vissza. NOT ALL: legyalább egy esetben nem igaz NOT ANY: egyetlen esetben sem igaz

Subselect feladatok Adjuk meg a legidősebb diák nevét! Kiket tanít még ‘Ka Pál’ tanára? Listázzuk ki azokat a diákokat, akik legalább kétszer olyan idősek, mint a legfiatalabb diák. Írassuk ki azoknak a tanároknak a neveit, akik nem tanítanak 20 évnél idősebb diákokat! Listázzuk ki azoknak a diákoknak a nevét, akik fiatalabbak minden olyan diáknál, akiknek az osztályfőnöke ‘Szlávi Péter’

Allekérdezés -2. INSERT INTO INSERT INTO (, …, )( ) INSERT INTO tDiak (DAzon, Nev, Kor, TAzon)(SELECT DAzon, Nev, Kor, 1 FROM tOsztaly) INSERT INTO tDiak (DAzon, Nev, Kor, TAzon)(SELECT *, 1 FROM tOsztaly)

Allekérdezés -3. – UPDATE UPDATE SET =, …, = WHERE Változtassuk a kor mező értékét 30-ra azon diákoknál, akiket Zsakó László tanít! UPDATE tDiak SET TAzon=3 WHERE TAzon IN (SELECT TAzon FROM tTanar WHERE Nev like ’Zsakó László’)

Allekérdezés -3. – DELETE FROM DELETE FROM WHERE Töröljük azokat a tanárokat, akik egy diákot sem tanítanak! DELETE FROM tTanar WHERE TAzon NOT IN (SELECT TAzon FROM tDiak)

Alkérdés CREATE TABLE-ben CREATE table (… ) AS SELECT …

Feladat Bővítsük a tanár táblát két mezővel, az egyikben a tanárok korát tároljuk, a másikban a tanított tantárgyat tároljuk! Ki tanít matekot? Adjuk meg azon tanárokat, akiknek van náluk idősebb diákjuk!