SQL parancsok Függvények
Az SQL függvények csoportosítása Két csoportra oszthatjuk a függvényeket, attól függően, hogy milyen környezetben alkalmazzuk azokat. Amelyek CSAK egy adott adatelemen végrehajthatóak. Amelyek a csoportosításkor IS használhatóak (group by). 2
Az SQL szövegfüggvényei SUBSTRING(szoveg, honnan, mennyit) Kimásol egy szöveg részletet a honnan indextől, 'mennyit' karakter darabot. SELECT SUBSTRING(nev,2,5) FROM elso SUBSTRING(szoveg, honnan) Kimásolja az adott ponttól a szöveget egészen a végéig. SELECT SUBSTRING(nev,3) FROM elso LOCATE(minta, szoveg) Megkeresi a mintát a szövegben, eredménye a pozíció SELECT LOCATE(' ',nev) 3
Az SQL szövegfüggvényei CONCAT(szoveg1, szoveg2, szoveg3,...) Összefűz tetszőleges számú szövegdarabot. SELECT CONCAT(nev,nev) FROM elso CONCAT_WS(speciális elem, szoveg1, szoveg2, ) Összefűz tetszőleges számú szövegdarabot, és az elemek közé a speciális elemet illeszti. SELECT CONCAT_WS(', ', nev,nev) FROM elso 4
Az SQL szövegfüggvényei INSERT(szoveg, honnan, mennyit, mivel) A szöveg amibe felülírunk a 'mivel' szöveggel a honnan pozíciótól, 'mennyit' karakteren keresztül. LENGTH(szoveg) A szöveg karaktereinek a számát adja vissza. SELECT LENGTH(nev) FROM elso 5
Az SQL szövegfüggvényei LOWER(szoveg) A szöveget kisbetűssé alakítja. SELECT LOWER(nev) FROM elso UPPER(szoveg) A szöveget nagybetűssé alakítja. SELECT UPPER(nev) FROM elso 6
Az SQL szövegfüggvényei STRCMP(szoveg1, szoveg2) Ha a két szöveg ugyanaz akkor 0-t ad vissza eredményként (különben -1 vagy 1-et attól függően, hogy melyik a nagyobb). LOCATE(szovegdarab, szoveg) Visszaad egy számot, ami az első előfordulási helye a szövegdarabnak a szövegben. TRIM(szoveg) Visszatér a szöveggel, de az elejéről és a végéről eltávolítja a szóközöket. SELECT TRIM(nev) FROM elso 7
Az SQL matematikai függvényei COS(X) SIN(X) TAN(X) ABS(X) POW(X,Y), A szám koszinuszát adja vissza. A szám szinuszát adja vissza. A szám tangensét adja vissza. A szám abszolút értékét adja vissza. POWER(X,Y) A szám hatványozását végzi el: x y. 8
Az SQL matematikai függvényei RAND() ROUND(X) SQRT(X) Egy véletlen számot generál 0 és 1 között. Egy számot kerekít egésszé. A szám négyzetgyökét adja vissza. TRUNCATE(X,D) A számot csonkolja. Ha 0 akkor a tizedespont utáni részt törli, ha D>0 akkor annyi tizedes értéket hagy meg amekkora a szám. Negatív is lehet a D, ekkor pl.: -2 esetén a 128-ból 100-at készít. 9
Az SQL dátum függvényei CURDATE(), CURTIME() Visszaadja a mai nap dátumát, illetve a mostani pontos időt. SELECT CURDATE(), CURTIME() NOW() Visszaadja a mostani dátumot és a mostani időt. SELECT NOW() 10
Az SQL dátum függvényei DATE(datumido) A dátumidő dátum részével tér vissza. TIME(datumido) A dátumidő idő részével tér vissza. MONTHNAME(datum) A dátum hónap nevét adja meg. DAYNAME(datum) A dátum nap nevét adja meg. 11
Az SQL dátum függvényei LAST_DAY(datum) Vissza adja az aktuális hónap utolsó napját (évszám hónap nap formában). MAKEDATE(év,napokszáma) Kiszámolja a dátumot, az aktuális évszámhoz hozzáadja a megadott napok számát. YEAR(dátumidő) Visszaadja az évet MONTH(dátumidő) Visszaadja a hónapot DAY(dátumidő) Visszaadja a napot HOUR(dátumidő) Visszaadja az órát MINUTE(dátumidő) Visszaadja a percet SECOND(dátumidő) Visszaadja a másodpercet 12
Az SQL dátum függvényei DATE_FORMAT(datum,forma) A formázókarakterek segítségével állíthatjuk elő a dátum formátumát. Nézzük meg a leggyakoribb formázó karaktereket: év: %Y [XXXX], %y [XX], hónap: %b [jan..dec], %c [1..12], %m [01..12], nap %d [01.31], %e [1..31], %j [1..366],%W [hétfő..vasárnap], óra: %h [01..12], %H [00..23], %k [0..23], perc: %i [00..59], másodperc: %s [00..59] SELECT date_format(datum, '%y %m %d %H %m %s')from elso A hónap illetve a hét nevei az adatbázis kezelő rendszer nyelvétől függően jelennek meg. 13
Az SQL csoportosító függvényei AVG(oszlopnev) átlag függvény COUNT(oszlopnev) visszaadja, hogy hány darab MAX(oszlopnev) MIN(oszlopnev) SUM(oszlopnev) a maximum értéket választja ki a lehetségesek közül a minimum értéket választja ki a lehetségesek közül az oszlopban szereplő számok összegét számolja ki SELECT ev, COUNT(ev) AS darab FROM elso WHERE ev>1950 GROUP BY ev SELECT nev, AVG(ev) AS darab FROM elso GROUP BY nev SELECT COUNT(*) AS darab FROM elso 14
Az SQL predikátum függvényei BETWEEN Eredményként azok a rekordok fognak eleget tenni a feltételnek, amelyekre a kifejezés értéke az alsóérték és a felsőérték közé esik. Használata: <oszlopkifejezés> BETWEEN <alsóérték> AND <felsőérték> Példa: SELECT nev, fizetes FROM dolgozo WHERE fizetes BETWEEN 100000 AND 120000 15
Az SQL predikátum függvényei IN Példák: Ha szerepel az oszlopkifejezés értékében a minta, akkor a kifejezés értéke logikai IGAZ lesz. Amennyiben a NOT kulcsszót használjuk, a kifejezés akkor lesz igaz, ha az értéke nem szerepel a listában. <oszlopkifejezés> [NOT] IN <minta> SELECT szam FROM tabla WHERE szam NOT IN (1,2,3,5,7) SELECT nev, ev FROM elnok WHERE nev IN ( Lincoln, Roosevelt, Ford ) 16
Az SQL predikátum függvényei LIKE Mintát illeszt egy karakterlánc típusú mezőkifejezésre, és egyezés esetén logikai IGAZ értéket ad. Általános formája az alábbi: <oszlopkifejezés> LIKE <minta> A mintában két karakternek speciális jelentése van, ezek a % illetve az _ (aláhúzás) jelek. Hogy IGAZ értéket kapjunk, a mintában... a % jel helyén akármennyi, akármilyen karakter állhat; minden egyes _ jel helyén egyetlen akármilyen karakter állhat; bármilyen más karakternek egyeznie kell. 17
Az SQL predikátum függvényei LIKE példák: Az első két karakter tetszőleges, a harmadik n, utána bármi lehet: SELECT * FROM `nevsorban` WHERE `link` LIKE " n%" A második karakter i, és utána van benne m : SELECT * FROM `nevsorban` WHERE `link` like "_i%m%" A pont előtti második karakter m, előtte, utána bármi állhat (pl. Gimp.png ): SELECT * FROM `nevsorban` WHERE `link` like "%m_.%" A második betű a, a pont előtt t, utána bármi lehet: SELECT * FROM `nevsorban` WHERE `link` like "_a%t.%" 18
Az SQL predikátum függvényei ANY, IN, SOME Igaz, ha a megadott összehasonlítás valamelyik táblabeli értékre igaz, úgymint van olyan, amelyikre igaz az összehasonlítás. Általános formája az alábbi: <oszlopkifejezés> = ANY (SELECT...) <oszlopkifejezés> = SOME (SELECT...) Allekérdezés előtt ugyanaz, mint <oszlopkifejezés> IN (SELECT...) 19
Az SQL predikátum függvényei ALL Igaz értéket ad vissza, ha a megadott összehasonlítás valamennyi allekérdezésbeli eredményrekord értékére igaz. Általános formája az alábbi: Például: <oszlopkifejezés> ALL (SELECT...) SELECT s1 FROM t1 WHERE s1 > ALL (SELECT s1 FROM t2); 20
Az SQL predikátum függvényei EXISTS Ha az allekérdezésnek van legalább egy eredménysora, akkor a kifejezés értéke IGAZ, ha nincs, akkor HAMIS. Általános formája az alábbi: Például: <oszlopkifejezés> EXISTS (SELECT...) SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2); 21
VÉGE 22