Az Oracle SQL 3.
description
Transcript of Az Oracle SQL 3.
2006. október 2. Markó Tamás, PTE TTK 4
Aritmetikai operátorok
+ Összeadás
- Kivonás
* Szorzás
/ Osztás
2006. október 2. Markó Tamás, PTE TTK 6
Hasonlító operátorok= Egyenlő
!=, ^=, <> Nem egyenlő
< Kisebb
> Nagyobb
<= Kisebb vagy egyenlő
>= Nagyobb vagy egyenlő
IS NULL Értéke NULL
IS NOT NULL Értéke nem NULL
• Szöveges és dátum típusú adatokra is!
2006. október 2. Markó Tamás, PTE TTK 7
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
2006. október 2. Markó Tamás, PTE TTK 8
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
2006. október 2. Markó Tamás, PTE TTK 9
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)
2006. október 2. Markó Tamás, PTE TTK 12
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;
2006. október 2. Markó Tamás, PTE TTK 13
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
2006. október 2. Markó Tamás, PTE TTK 14
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
2006. október 2. Markó Tamás, PTE TTK 15
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éntielválasztójel tizedesjel
2006. október 2. Markó Tamás, PTE TTK 16
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)
2006. október 2. Markó Tamás, PTE TTK 17
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!
2006. október 2. Markó Tamás, PTE TTK 18
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
19
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)
2006. október 2. Markó Tamás, PTE TTK 20
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
21
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)
22
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)
23
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
2006. október 2. Markó Tamás, PTE TTK 24
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
2006. október 2. Markó Tamás, PTE TTK 25
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’)