270 likes | 449 Views
Az Oracle SQL 3. Kifejezések. A legfontosabb függvények. A rádiótelefonokat kérem KIKAPCSOLNI!. Kifejezések. Aritmetikai operátorok. Szöveges operátorok. Hasonlító operátorok. Szöveges és dátum típusú adatokra is!. LIKE. Karakterlánc hasonlítása egy mintához
E N D
Az Oracle SQL 3. Kifejezések. A legfontosabb függvények. Markó Tamás, PTE TTK
A rádiótelefonokat kérem KIKAPCSOLNI! Markó Tamás, PTE TTK
Kifejezések Markó Tamás, PTE TTK
Aritmetikai operátorok Markó Tamás, PTE TTK
Szöveges operátorok Markó Tamás, PTE TTK
Hasonlító operátorok • Szöveges és dátum típusú adatokra is! Markó Tamás, PTE TTK
LIKE • Karakterlánc hasonlítása egy mintához • Helyettesítő karakterek a mintában: • %: tetszőleges számú tetszőleges karakter • _: pontosan egy tetszőleges karakter • Példa: • ‘egyetem’ LIKE ‘_gy%m’ értéke TRUE • ‘gyermek’ LIKE ‘_gy%m’ értéke FALSE • ‘gyermek’ LIKE ‘%gy%m%’ értéke TRUE • Tagadása: NOT LIKE Markó Tamás, PTE TTK
BETWEEN • Alsó és felső határ közé esés vizsgálata • x BETWEEN a AND b jelentése:x >= a AND x <= b • Szöveges és dátum típusú adatokra is • Tagadása: x NOT BETWEEN a AND b Markó Tamás, PTE TTK
IN • Egy halmazban való előfordulás vizsgálata • x IN (3, 5, 7, 11, 13) jelentése:x=3 OR x=5 OR x=7 OR x=11 OR x=13 • Szöveges és dátum típusú adatokra is • Tagadása: x NOT IN (3, 5, 7, 11, 13) • A vizsgált halmaz elemeinek tételes felsorolása helyett egy SELECT utasítás is állhat, pl.nev IN (SELECT nev1 FROM vevok) Markó Tamás, PTE TTK
Logikai operátorok Markó Tamás, PTE TTK
A legfontosabb függvények Markó Tamás, PTE TTK
A NVL (null value) függvény • Ha az első argumentum nem NULL, őt magát adja vissza • Ha az első argumentum NULL, a második argumentum értékét adja vissza • Példa: SELECT ename, NVL(mgr, -1) FROM scott.emp; Markó Tamás, PTE TTK
Típuskonverzió • Van automatikus is, de nem ajánlott • az adatbázis egyes beállításai befolyásolják az eredményt • Explicit konverziós függvények: • TO_DATE: szövegből dátum • TO_NUMBER: szövegből szám • TO_CHAR: dátumból szöveg, számból szöveg overloading Markó Tamás, PTE TTK
TO_DATE • Leggyakrabban használt alakja:TO_DATE(szöveg[, formátum]) • szöveg: a dátummá alakítandó szöveg • formátum: a szövegben szereplő dátum formátuma • Példák: • TO_DATE(‘2004.02.25.’, ‘yyyy.mm.dd.’) • TO_DATE(‘2004.02.25. 13:45’, ‘yyyy.mm.dd. hh24:mi’) négyjegyű évszám, hónap, nap 24 órás óra-formátum, perc Markó Tamás, PTE TTK
TO_NUMBER • Leggyakrabban használt alakja:TO_NUMBER(szöveg[, formátum]) • szöveg: a számmá alakítandó szöveg • formátum: a szövegben szereplő szám formátuma • Példák: • TO_NUMBER(‘-3.14’) • TO_NUMBER(‘15 325.62’, ‘99G999D99’) ezresenkénti elválasztójel tizedesjel Markó Tamás, PTE TTK
TO_CHAR • Leggyakrabban használt alakja:TO_CHAR(dátum[, formátum])TO_CHAR(szám[, formátum]) • dátum: a szöveggé alakítandó dátum • szám: a szöveggé alakítandó szám • formátum: a dátum vagy szám formátuma • Példák: • TO_CHAR(SYSDATE, ‘yy.mm.dd. hh24:mi:ss’) • TO_CHAR(15) a pillanatnyi idő másodperc pontossággal (kétjegyű évszám) Markó Tamás, PTE TTK
Numerikus függvények • ABS(szám): a szám abszolút értéke • MOD(a, b): az a:b egész osztás maradéka • ROUND(a [, b]): a-t kerekíti b db tizedesre (default: b=0). b negatív is lehet! • SIGN(a): az a szám előjele (-1, 0 vagy 1) • TRUNC (a [, b]): a-t csonkolja b db tizedesre (default: b=0). b negatív is lehet! Markó Tamás, PTE TTK
Dátumfüggvények 1. • ADD_MONTHS(dátum, n): a dátumnál n hónappal későbbi dátum • MONTHS_BETWEEN(dátum1, dátum2): a két dátum különbsége hónapokban (törtszám is lehet) • NEXT_DAY(dátum, hét napja): a dátum utáni legközelebbi nap, ami a hét adott napja. Pl. NEXT_DAY(SYSDATE, ‘Péntek’) az aktuális nap utáni péntek dátumát adja Markó Tamás, PTE TTK
Dátumfüggvények 2. • ROUND(dátum [, formátum]): a dátumot (és időt) adott pontosságúra kerekíti (default: egész napra) • ROUND(dátum, ‘CC’): az évszázad első évének eleje • ROUND(dátum, ‘YEAR’): az év kezdete • ROUND(dátum, ‘Q’): a negyedév kezdete • ROUND(dátum, ‘MONTH’): a hónap kezdete • ROUND(dátum, ‘HH24’): egész óra • ROUND(dátum, ‘MI’): egész perc • SYSDATE: a szerver által ismert dátum és idő másodperc pontossággal • TRUNC(dátum [, formátum]): a dátum (és idő) végét adott pontosságúra levágja (a formátumok ugyanazok, mint a ROUND-nál)
Karakteres függvények 1. • ASCII(szöveg): a szöveg első karakterének kódja • CHR(kód): az adott kódú karakter • INITCAP(szöveg): a szöveg minden szavának első betűjét nagybetűre váltja • INSTR(szöveg, keresendő [, kezdőhely [, hányadik]]): a keresendő szövegnek a szövegben való kezdőhely utáni hányadik előfordulásának kezdőpozícióját adja Markó Tamás, PTE TTK
Karakteres függvények 2. • LENGTH(szöveg): a szöveg hossza • LOWER(szöveg): a szöveget teljesen kisbetűsség alakítja • LPAD(szöveg, hossz [, kitöltő]): a szöveget hossz hosszúságúra alakítja úgy, hogy a bal végére a kitöltő szöveget fűzi a kellő számban (default: a kitöltő egy szóköz) • LTRIM(szöveg [, karakterek]): a szöveg bal végéről eltávolítja a felsorolt karakterek mindegyikét (default: a karakterek egy szóköz)
Karakteres függvények 3. • REPLACE(szöveg, ezt [, erre]): a szövegben ezt minden előfordulását erre cseréli • RPAD(szöveg, hossz [, kitöltő]): a szöveget hossz hosszúságúra alakítja úgy, hogy a jobb végére a kitöltő szöveget fűzi a kellő számban (default: a kitöltő egy szóköz) • RTRIM (szöveg [, karakterek]): a szöveg bal végéről eltávolítja a felsorolt karakterek mindegyikét (default: a karakterek egy szóköz)
Karakteres függvények 4. • SUBSTR(szöveg, kezdőhely [, hossz]): a szövegből a kezdőhely pozíciótól kezdve hossz darab karakter • SYS_CONTEXT: környezeti beállítások (kb. 35 féle) lekérdezése, pl. • SYS_CONTEXT(‘USERENV’, ‘DB_NAME’): a használt adatbázis neve • SYS_CONTEXT(‘USERENV’, ‘OS_USER’): a felhasználó login neve az operációs rendszerben • SYS_CONTEXT(‘USERENV’, ‘TERMINAL’): a használt munkaállomás neve
Karakteres függvények 5. • TRIM([karakter FROM ] szöveg): a szöveg mindkét végéről eltávolítja a megadott karakter akárhány előfordulását (default: a karakter egy szóköz) • UPPER (szöveg): a szöveget teljesen nagybetűsség alakítja • USER: az aktuális felhasználó login-neve (csupa nagybetű!) • USERENV: régi megoldás a SYS_CONTEXT helyett Markó Tamás, PTE TTK
DECODE • DECODE(kifejezés, keres1, érték1 [keres2, érték2, …] [, érték_egyébként]): ha a kifejezés értéke keres1, akkor érték1-et adja, ha keres2, akkor érték2-t, stb. Ha egyikkel sem egyezik, akkor az érték_egyébként lesz az értéke, pl.DECODE(elojel, ‘+’, ‘plusz’, ‘-’, ‘mínusz’, ‘nincs ilyen előjel’) Markó Tamás, PTE TTK