Jednořádkové funkce

Содержание

Слайд 2

Funkce

Funkce na základě vstupního argumentu/ů provedou požadovanou funkčnost a vrátí výsledek
Existují jednořádkové

Funkce Funkce na základě vstupního argumentu/ů provedou požadovanou funkčnost a vrátí výsledek
a víceřádkové funkce
Jednořádkové funkce pracují s jedním řádkem a vrací jeden řádek
Víceřádkové funkce pracují s více řádky a vrací jeden řádek

STRANA

Слайд 3

Jednořádkové funkce

Na základě vstupních parametrů vrací jeden výsledek
Manipulace s hodnotami
Jsou prováděny pro

Jednořádkové funkce Na základě vstupních parametrů vrací jeden výsledek Manipulace s hodnotami
každý vrácený řádek
Pro jeden řádek vrací jeden výsledek
Mohou modifikovat datový typ
Mohou být zanořeny (function nesting)
Obecná syntaxe:
název_funkce (sloupec|výraz, argument1, argument2, …)

STRANA

Слайд 4

Jednořádkové funkce

Typy jednořádkových funkcí:
Řetězcové
Číselné
Datumové
Konverzní
Obecné

STRANA

Jednořádkové funkce Typy jednořádkových funkcí: Řetězcové Číselné Datumové Konverzní Obecné STRANA

Слайд 5

Řetězcové funkce

Konverze velikosti písma (case conversion):
LOWER – převod na malá písmena
UPPER -

Řetězcové funkce Konverze velikosti písma (case conversion): LOWER – převod na malá
převod na velká písmena
INITCAP – první písmena slova velká, zbytek malá
Manipulace s řetězcem:
CONCAT – spojení řetězců
SUBSTR – vrátí část řetězce
INSTR – vrátí pozici znaku v řetězci
LENGTH – vrátí délku řetězce
LPAD, RPAD – doplní zleva/zprava znaky v řetězci
TRIM – ořeže zleva/zprava konkrétní znaky z řetězce

STRANA

Слайд 6

Konverze velikosti písma

STRANA

Funkce

Výsledek

UPPER ('hello WORLD!')
LOWER('hello WORLD!')
INITCAP('hello WORLD!')

HELLO WORLD!
hello world!
Hello World!

Konverze velikosti písma STRANA Funkce Výsledek UPPER ('hello WORLD!') LOWER('hello WORLD!') INITCAP('hello

Слайд 7

Manipulace s řetězcem

STRANA

Funkce

Výsledek

CONCAT ('hello', 'WORLD!')
SUBSTR ('hello WORLD!',1 , 4)
INSTR ('hello WORLD!

Manipulace s řetězcem STRANA Funkce Výsledek CONCAT ('hello', 'WORLD!') SUBSTR ('hello WORLD!',1
', 'W')
LENGTH ('hello WORLD!')
LPAD ('WORLD!', 10, '*')
TRIM ('D' FROM 'DDT')

helloWORLD!
hell
7
12
****WORLD!
T

Слайд 8

Číselné funkce

ROUND – zaokrouhlí číslo na specifikovanou přesnost
TRUNC – ořeže číslo na

Číselné funkce ROUND – zaokrouhlí číslo na specifikovanou přesnost TRUNC – ořeže
specifikovanou přesnost
MOD – vrací zbytek po dělení dvou čísel

STRANA

Слайд 9

Použití číselných funkcí

STRANA

Funkce

Výsledek

ROUND (66.832, 2)
ROUND (66.832, 0)
ROUND (66.832, -1)
TRUNC (66.832, 2)
TRUNC

Použití číselných funkcí STRANA Funkce Výsledek ROUND (66.832, 2) ROUND (66.832, 0)
(66.832, 0)
TRUNC (66.832, -1)
MOD (25, 10)
MOD (14, 3)

66.83
67
70
66.83
66
60
5
2

Слайд 10

Datum

Implicitní datový formát je DD-MON-YY
V Oracle se datumy uchovávají v interním číselném

Datum Implicitní datový formát je DD-MON-YY V Oracle se datumy uchovávají v
formátu
Funkce SYSDATE vrací aktuální datum a čas serveru
Pro zobrazení SYSDATE se využívá dummy tabulka DUAL
Tabulku DUAL lze využít pro další účely – testovací selecty

STRANA

Слайд 11

Aritmetika s datumy

Přičtení nebo odečtení čísla od datumu vrátí datum
Podělením tohoto čísla

Aritmetika s datumy Přičtení nebo odečtení čísla od datumu vrátí datum Podělením
číslem 24 přičteme/odečteme hodinu
Podělením tohoto čísla (24 * 60) přičteme/odečteme minutu
Podělením tohoto čísla (24 * 60 * 60) přičteme/odečteme sekundu
Odečtením dvou datumů získáme počet dní mezi těmito datumy

STRANA

Слайд 12

Aritmetické operátory s datumy

STRANA

Funkce

Výsledek

TO_DATE ('27.6.2000') + 1
TO_DATE ('27.6.2000 17:24:17') + 1/24
(

Aritmetické operátory s datumy STRANA Funkce Výsledek TO_DATE ('27.6.2000') + 1 TO_DATE
TO_DATE ('27.6.2000') –
TO_DATE ('21.6.2000') )

28.6.2000
27.6.2000 18:24:17
6

Слайд 13

Datumové funkce (Oracle)

MONTHS_BETWEEN – vrátí počet měsíců mezi 2 datumy
ADD_MONTHS – přidá

Datumové funkce (Oracle) MONTHS_BETWEEN – vrátí počet měsíců mezi 2 datumy ADD_MONTHS
uvedený pořet měsíců k datumu
NEXT_DAY – vrátí datum následujícího určeného dne po určeném datumu
LAST_DAY – vrátí datum posledního dne konkrétního datumu
ROUND – zaokrouhlí datum na specifikovanou 'přesnost'
TRUNC – ořeže datum na specifikovanou 'přesnost'

STRANA

Слайд 14

Použití datumových funkcí

STRANA

Funkce

Výsledek

MONTHS_BETWEEN ('01-SEP-15',
'11-JAN-14')
ADD_MONTHS ('04-LED-15', 7)
NEXT_DAY ('05-ŘÍJ-16', 'PÁTEK')
LAST_DAY ('05-ŘÍJ-16')

19.6774194
04-SRP-15
14-ŘÍJ-16
31-ŘÍJ-16

Použití datumových funkcí STRANA Funkce Výsledek MONTHS_BETWEEN ('01-SEP-15', '11-JAN-14') ADD_MONTHS ('04-LED-15', 7)

Слайд 15

Použití datumových funkcí

STRANA

Funkce

Výsledek

ROUND ('25-ČVC-16', 'MĚSÍC')
ROUND ('25-ČVC-16', 'ROK')
TRUNC ('25-ČVC-16', 'MĚSÍC')
TRUNC ('25-ČVC-16', 'ROK')

01-SRP-16
01-LED-17
01-ČVC-16
01-LED-16

Použití datumových funkcí STRANA Funkce Výsledek ROUND ('25-ČVC-16', 'MĚSÍC') ROUND ('25-ČVC-16', 'ROK')

Слайд 16

Konverzní funkce (Oracle)

Při použití konverzních funkcí dochází ke změně datového typu vstupního

Konverzní funkce (Oracle) Při použití konverzních funkcí dochází ke změně datového typu
argumentu
Konverzní funkce dělíme:
Implicitní (automatická) datová konverze
Explicitní datové konverze

STRANA

Слайд 17

Implicitní datová konverze

Při přiřazení hodnoty do proměnné provede Oracle automatickou konverzi:
VARCHAR2 /

Implicitní datová konverze Při přiřazení hodnoty do proměnné provede Oracle automatickou konverzi:
CHAR -> NUMBER
VARCHAR2 / CHAR -> DATE
NUMBER -> VARCHAR2
DATE -> VARCHAR2

STRANA

Слайд 18

Implicitní datová konverze

Při vyhodnocení výrazu provádí Oracle následující konverze:
VARCHAR2 / CHAR

Implicitní datová konverze Při vyhodnocení výrazu provádí Oracle následující konverze: VARCHAR2 /
-> NUMBER
VARCHAR2 / CHAR -> DATE

STRANA

Слайд 19

Explicitní datová konverze

STRANA

Datový typ 1

NUMBER
DATE
CHARACTER
CHARACTER

Datový typ CHARACTER – VARCHAR2 / CHAR

Datový

Explicitní datová konverze STRANA Datový typ 1 NUMBER DATE CHARACTER CHARACTER Datový
typ 2

Konverzní funkce

CHARACTER
CHARACTER
NUMBER
DATE

TO_CHAR
TO_CHAR
TO_NUMBER
TO_DATE

Слайд 20

Funkce NVL

Konverze případné hodnoty NULL na danou hodnotu
NVL (NULL, 'Hodnota')
NVL (platy.premie, 0)
NVL

Funkce NVL Konverze případné hodnoty NULL na danou hodnotu NVL (NULL, 'Hodnota')
(zamestnanci.datum_nastupu, '01-JAN-16')

STRANA

Слайд 21

Funkce DECODE

Funkce DECODE na základě hodnoty sloupce/výrazu vrátí konkrétní hodnotu
Funkcí DECODE lze

Funkce DECODE Funkce DECODE na základě hodnoty sloupce/výrazu vrátí konkrétní hodnotu Funkcí
nahradit příkazy CASE-WHEN nebo IF-THEN-ELSE
SELECT DECODE (zak.znamka,
'1', 'Výborně',
'2', 'Chvalitebně',
'3', 'Dobře',
'4', 'Dostatečně',
'5', 'Nedostatečně',
'Není známka'
) as znamka FROM zak;

STRANA