Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

2014. 07. 23.1 Az SQL 3. Kifejezések. A legfontosabb függvények.

Hasonló előadás


Az előadások a következő témára: "2014. 07. 23.1 Az SQL 3. Kifejezések. A legfontosabb függvények."— Előadás másolata:

1 Az SQL 3. Kifejezések. A legfontosabb függvények.

2 Az alapvető adattípusok Szám Szöveg Dátum Logikai

3 3 A NULL érték 1. Ismeretlen, határozatlan, hiányzó adatot jelöl –az Oracle9i-ben és az SQL serverben az üres string egyenértékű a NULL értékkel Bármilyen adattípusú mező értéke lehet NULL Ha szerepel egy aritmetikai vagy logikai kifejezésben, akkor az egész kifejezés értéke NULL, kivéve: –TRUE OR NULL értéke TRUE –FALSE AND NULL értéke FALSE

4 4 A NULL érték 2. Semmivel sem egyenlő (önmagával se!): –X = NULL értéke mindig FALSE –NULL = NULL értéke is FALSE Kezelése: –feltételekben: pl. X IS NULL, X IS NOT NULL –feldolgozásnál: NVL függvény (pl. 0-val helyettesíthető)

5 5 Számok kezelése

6 Numerikus konstansok Alakjuk a szokásos, pl e Tizedes pont helyett tizedes vessző használata is beállítható a szerveren Decimális számábrázolás Legfeljebb 38 számjegy pontosság A karakterisztika -130 és 125 között lehet

7 Aritmetikai operátorok nincs hatványozás!

8 A numerikus függvények Abszolút érték, előjel: ABS SIGN Maradék: MOD Hatványozás, négyzetgyök: POWER SQRT Kerekítés, csonkolás: CEIL FLOOR ROUND TRUNC Exponenciális, logaritmus: EXP LN LOG Trigonometrikus: COS SIN TAN Arkusz: ACOS ASIN ATAN ATAN2 Hiperbolikus: COSH SINH TANH Egyéb: BITAND WIDTH_BUCKET van köztük, amelyik csak 30 jegyre pontos! hisztogramm-készítéshez

9 Néhány numerikus függvény részletesebben 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!

10 ABS( ) SELECT ABS(-100) negative, ABS(100) positive;

11 ATAN( ) SELECT ATAN(.5) AS FIRST_RESULT,

12 CEIL[ING]( ) FLOOR( ) Hány 20 forintos kell az egyes cikkek 1-1 darabjának kifizetéséhez? SELECT egysegar, CEIL(egysegar/20) FROM cikk; Mennyi pénzt kapunk vissza, ha így fizetünk? SELECT egysegar, CEIL(egysegar/20), 20*CEIL(egysegar/20)-egysegar FROM cikk;

13 Példák 2. Mennyi a cikkek bruttó egységára egész forintra kerekítve (15%-os ÁFA-t feltételezve)? SELECT cikknev, egysegar, ROUND(1.15*egysegar) FROM cikk; Ugyanez 10 fillérre kerekítve: SELECT cikknev, egysegar, ROUND(1.15*egysegar, 1) FROM cikk; Ugyanez 10 forintra kerekítve: SELECT cikknev, egysegar, ROUND(1.15*egysegar, -1) FROM cikk; Ugyanez 5 forintra kerekítve: SELECT cikknev, egysegar, ROUND(2*1.15*egysegar, -1)/2 FROM cikk;

14 Példák 3. Címletezés: hány 5, 2 és 1 forintossal lehet kifizetni a cikkek nettó árát? SELECT cikknev, egysegar, TRUNC(egysegar / 5) as ot_ft, TRUNC(MOD(egysegar, 5) / 2) AS ket_ft, MOD(MOD(egysegar, 5), 2) AS egy_ft FROM cikk;

15 PI() SELECT PI() AS RESULT_OF_PI

16 RAND( ) SELECT RAND() random_num SELECT ROUND((RAND()* 10000),0) from_zero_to_

17 SQUARE( ) SELECT SQUARE(2) AS SQUARE_OF_2, SQUARE(3) AS SQUARE_OF_3, SQUARE(4) AS SQUARE_OF_

18 Szövegek kezelése

19 Szöveges konstansok Aposztrófok közé kell zárni Ha a szövegben aposztróf van, azt meg kell kettőzni: ‘McDonald’’s’ A szövegkonstansokban a kisbetű nem azonos a nagybetűvel! A szerveren beállítható, hogy milyen kódolással tárolja a karaktereket A maximális hossz 4000 karakter

20 A szöveges függvények Hossz: LENGTH Rész-string kezelése: INSTR REPLACE SUBSTR Karakterkód: ASCII CHR Csonkolás, kitöltés: LPAD LTRIM RPAD RTRIM TRIM Kisbetű-nagybetű: INITCAP LOWER UPPER Nemzeti karakterkészlet kezelése: NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER Egyéb: CONCAT SOUNDEX TRANSLATE TREAT

21 Fontosabb szöveges 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

22 Fontosabb szöveges függvények 2. LENGTH(szöveg): a szöveg hossza LOWER(szöveg): a szöveget teljesen kisbetűssé 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)

23 Fontosabb szöveges 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)

24 Fontosabb szöveges 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 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

25 Példa A cikkek neve a név hossza szerint csökkenő sorrendben: SELECT cikknev FROM cikk ORDER BY LENGTH(cikknev) DESC;

26 Logikai értékek kezelése

27 Logikai konstansok TRUE FALSE UNKNOWN (NULL) Logikai adattípust nem lehet táblában tárolni!

28 Logikai operátorok

29 A háromértékű logika - NOT XNOT X TRUEFALSE TRUE UNKNOWN

30 A háromértékű logika - AND TRUEFALSE UNKNOWN TRUE FALSEUNKNOWN FALSE UNKNOWN FALSEUNKNOWN

31 A háromértékű logika - OR TRUEFALSE UNKNOWN TRUE FALSE TRUEFALSEUNKNOWN TRUEUNKNOWN

32 Hasonlító operátorok Szöveges és dátum típusú adatokra is!

33 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

34 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

35 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)

36 IS NULL Annak vizsgálatára, hogy egy kifejezés értéke NULL-e x IS NULL igaz, ha x értéke NULL, hamis egyébként x IS NOT NULL igaz, ha x értéke nem NULL, hamis egyébként

37 Feltételes kifejezés (CASE) 1. Kétféle alakja van A választó CASE: CASE megvizsgálandó_kifejezés WHEN kifejezés_1 THEN érték_1 [WHEN kifejezés_2 THEN érték_2 …] [ELSE érték_egyébként] END Értéke az első olyan érték_i, amelyre megvizsgálandó_kifejezés = kifejezés_i emiatt a NULL érték vizsgálatára nem alkalmas

38 Feltételes kifejezés (CASE) 2. A feltételes CASE: CASE WHEN feltétel_1 THEN érték_1 [WHEN feltétel_2 THEN érték_2 …] [ELSE érték_egyébként] END Értéke az első olyan érték_i, amelyre feltétel_i igaz

39 Példa feltételes CASE kifejezésre SELECT cikk, CASE WHEN 'helyseg' IS NULL THEN 'Pécs' ELSE 'BP' END FROM egyes;

40 Konverziós függények

41 A konverziós függvények ASCIISTRBIN_TO_NUM CASTCHARTOROWID COMPOSECONVERT DECOMPOSEHEXTORAW NUMTODSINTERVALNUMTOYMINTERVAL RAWTOHEXRAWTONHEX ROWIDTOCHARROWIDTONCHAR TO_CHARTO_CLOB TO_DATETO_DSINTERVAL TO_LOBTO_MULTI_BYTE TO_NCHARTO_NCLOB TO_NUMBERTO_SINGLE_BYTE TO_YMINTERVALTRANSLATE... USING UNISTR

42 Típuskonverzió Van automatikus típuskonverzió: SELECT cikknev, egysegar || ‘ Ft’ FROM cikk; Általában nem ajánlott, mert az adatbázis egyes beállításai befolyásolják az eredményt A leggyakoribb 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

43 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(‘ ’, ‘yyyy.mm.dd.’) –TO_DATE(‘ :45’, ‘yyyy.mm.dd. hh24:mi’) négyjegyű évszám, hónap, nap 24 órás óra-formátum, perc

44 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(‘ ’, ‘99G999D99’) ezresenkénti elválasztójel tizedesjel

45 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)

46 Egyéb egyszerű (single line) függvények

47 47 Az egyéb egyszerű függvények BFILENAMECOALESCE DECODEDEPTH DUMPEMPTY_BLOB EMPTY_CLOBEXISTSNODE EXTRACTEXTRACTVALUE GREATESTLEAST NLS_CHARSET_DECL_LENNLS_CHARSET_ID NLS_CHARSET_NAMENULLIF NVLNVL2 PATHSYS_CONNECT_BY_PATH SYS_CONTEXTSYS_DBURIGEN SYS_EXTRACT_UTCSYS_GUID SYS_TYPEIDSYS_XMLAGG SYS_XMLGENUID UPDATEXMLUSER USERENVVSIZE XMLAGGXMLCOLATTVAL XMLCONCATXMLFOREST XMLSEQUENCEXMLTRANSFORM

48 48 A USER függvény Az aktuális felhasználó login-neve (csupa nagybetű!) Példa: SELECT USER FROM dual;

49 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

50 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’)

51 A SYS_CONTEXT függvény 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’, ‘HOST’): a használt munkaállomás neve –SYS_CONTEXT(‘USERENV’, ‘OS_USER’): a felhasználó login neve az operációs rendszerben USERENV: régi megoldás a SYS_CONTEXT helyett


Letölteni ppt "2014. 07. 23.1 Az SQL 3. Kifejezések. A legfontosabb függvények."

Hasonló előadás


Google Hirdetések