Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaRóbert Boros Megváltozta több, mint 10 éve
1
– SELECT - 2. – Tarcsi Ádám 2005. március Adatbázis gyakorlat
2
Miről lesz szó? Ismétlés: CREATE, INSERT INTO, COMMIT SELECT befejezés: –GROUP BY –HAVING –dátum kezelés
3
SELECT utasítás SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER BY [ASC/DESC], …, [ASC/DESC]]
4
SELECT végrehajtási sorrend 1.FROM: melyik táblákból? 2.WHERE: melyik rekordok? 3.GROUP BY: mi szerint csoportosítva? 4.HAVING: melyik csoportok? 5.ORDER BY: mi szerint rendezve? 6.SELECT: melyik oszlopok? Műveletek sorrendje: Több tábla esetén direkt szorzat képzése Feltételek kiértékelése (rekordok elhagyása) Nem kért oszlopok elhagyása Rendezés
5
GROUP BY SELECT … FROM … [WHERE …] GROUP BY mező1, [mező 2] [ORDER BY …] Csoportosítás, csoport képzés Oszlopfüggvényeket (SUM, AVG, COUNT, stb.) az egyes csoportokban külön-külön hajta végre A GROUP BY-ban megadott mezőnek szerepelnie kell a SELECT utáni felsorolásban.
6
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!
7
GROUP BY feladatok Adjuk meg az egyes tanárok á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.
8
HAVING Csoportokra vonatkozó feltétel megadás. csak a GROUP BY utasítással együtt használjuk. MindenWHERE GROUP BY HAVING
9
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 2 diáknál többet tanítanak!
10
Dátumkezelés Dátum tárolás: (évszázad,) év, nap, óra, perc, másodperc. SELECT sysdate FROM dual; - rendszeridő, dátum 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
11
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‘, 1988.Feb.28.); Konverziós függvény!
12
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 (5,'Kiss János',TO_DATE('1988.feb.28.','YYYY. mon.DD.'));
13
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;
14
Konverzió TO_CHAR Lehetséges dátum formátummaszkok pl.: YYYY- teljes évszám YEAR- évszám betűvel MM- hónapneve (pl:.03) MONTH- hónap teljes neve MON- hónap 3 betűs rövidítése 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 Példa: Select TO_CHAR(Szuletes,'YYYY MONTH DAY') from tEmber;
15
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,'csütörtök') FROM dual; LAST_DAY(dátum,’nap’): A megadott dátum hónapjának utolsó napját
16
Dátumkezelő függvények – 2. * UPDATE tEmber SET Szuletes=ADD_MONTHS(Szuletes,-20) WHERE EAzon=5;
17
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 „Okos”! 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!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.