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 2014. 07. 23.1 Az SQL 3. Kifejezések. A legfontosabb függvények.

2 2014. 07. 23.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 2014. 07. 23.

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ő) 2014. 07. 23.

5 5 Számok kezelése

6 2014. 07. 23.6 Numerikus konstansok Alakjuk a szokásos, pl. +3.14 25.3e-3 -15 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 2014. 07. 23.7 Aritmetikai operátorok nincs hatványozás!

8 2014. 07. 23.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 2014. 07. 23.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; 2014. 07. 23.10

11 ATAN( ) SELECT ATAN(.5) AS FIRST_RESULT, 2014. 07. 23.11

12 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.15

16 RAND( ) SELECT RAND() random_num SELECT ROUND((RAND()* 10000),0) from_zero_to_10000 2014. 07. 23.16

17 SQUARE( ) SELECT SQUARE(2) AS SQUARE_OF_2, SQUARE(3) AS SQUARE_OF_3, SQUARE(4) AS SQUARE_OF_4 2014. 07. 23.17

18 2014. 07. 23.18 Szövegek kezelése

19 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.25 Példa A cikkek neve a név hossza szerint csökkenő sorrendben: SELECT cikknev FROM cikk ORDER BY LENGTH(cikknev) DESC;

26 2014. 07. 23.26 Logikai értékek kezelése

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

28 2014. 07. 23.28 Logikai operátorok

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

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

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

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

33 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.39 Példa feltételes CASE kifejezésre SELECT cikk, CASE WHEN 'helyseg' IS NULL THEN 'Pécs' ELSE 'BP' END FROM egyes;

40 2014. 07. 23.40 Konverziós függények

41 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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(‘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

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

45 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.

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

49 2014. 07. 23.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 2014. 07. 23.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 2014. 07. 23.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