sql-kniha
DESCRIPTION
databazova knihaTRANSCRIPT
-
5/21/2018 SQL-kniha
1/49
Luboslav Lacko
f pesn prehled
tj
oi
'
~
ft
~
~
1 F-1wzy,funkce, datov typy, opertory
V // nl1typF-kazu SELECT
fljYklndy pro SQL Server, Orac1e, MySQL
I odle standardu SQL 99
II
Luboslav Lacko
[ ap.esn
.prehled
J
t3=i
i
~i
~
..
@
~
~
~=Il.
II
~ .
~.=
-II
1{;: ;11
-II
I I
117
8 8025 1078 8 1
89 Kc
129 Sk
doporucen cena
ISBN 80-2510788-4
PRODEJNI KD K1145
acle cnk pokrocil odbornk
ulvalel
manaer
administrtor
programtor
Computer Press a.s.
n m. 28. dub na 48
635 00 Brno
Objednvejte na:
http://knihy.cpress.cz
Bezplatn telefonn linka: 800 555 513
Zarazen publikace:
Idy se v jazyce SQL sami radte mezi zkuenej administrtory
ci programtory, pravdepodobne ani vy nenoste v hlave vechny
prkazy, funkce a jejich parametry. Nechcete-li se pri psan kdu
v SQL zdrovat vyhledvnm potrebnho prkazu a jeho syntaxe
v on-line zdrojch nebo v tlustch knihch, vyuijete jiste tuto malou
prrucku.
SQL Kapesn prehled
strucne a prehledne popisuje vechny prkazy
jazyka pro definic i dat DDL), jazyka pro manipulaci s daty DML)
a funkce standardnho jazyka SQL. Po strucnm nstinu kad kate
gorie ji nsleduj dotycn poloky prkazy, funkce atd.), doprovze
n krtkmi vysvetlenm, zpisem obecn syntaxe, a je- li potreba,
i jednoduchm prkladem.
Nechyb strucn shrnut principu relacnch databz, osvetlen struktury
jazyka SQL, prehled datovch typu a opertoru. Protoe implementace
nekterch prkazu a zejmna funkc se v produktech ruznch vrobcu
li,je vdy upozorneno na konkrtn odlinosti v Microsoft SQL Serve
ru, Oraele a MySQL a prklady jsou pak uvdeny pro kad z nich.
-
5/21/2018 SQL-kniha
2/49
-
5/21/2018 SQL-kniha
3/49
SQl
Kapesn prehled
Luboslav Lacko
Copyright
CP Books, a.s. 2005. Vydn pIVn.Vechna pr;v:1
Vylll:1
zena. Vydalo nakladatelstv CP Books, a.s. jako svou 1935. pulllik:I i.
Vydavatelstv a nakladatelstv CP Books, a.s.,
nm. 28. dubna 48, 635 00 Brno, knihy.cpress.cz
ISBN 80-251-0788-4
Prodejn kd: K1145
Odborn korektura:
Karel Hudan, Rostislav Okc
Jazykov korektura: Petra Lnckov
Vnitrn prava a sazba:
Petr Klma
Oblka:
Martin Sodomka
Komentr na zadn strane oblky:
Jindrich Jonk
Tecluuck spoluprce:
Tom Zeiner, Pavel Kynick
Odpovedn redaktor:
Jindrich Jonk
Tecluuck redaktor:
Jir Matouek
Produkce: Petr Bal
dn cst tto publikace nesm bt publikovna a rena
:I~idllIl1
zpusobem a v dn podobe bez vslovnho svolen vydavat :k.
CP Books a.s. nm. 28. dubna 48, 635 00 Brno
tel.: 546 122 111, fax: 546 122 112
Objednvejte na: knihy.cpress.cz [email protected]:i.
Bezplatn telefonn linka:
800 555 513
Dotazy k vydavatelsk cinnosti smerujte na: [email protected]:r.
~~~
www.knih.V.cpross.cz
online obchOd
Novinky k dispozici ve dni vydn, slev y, recenze,
zajm:lv programy pro I i I 1I1Y koncov z:k:iznky.
3
3
~
3
~~
~ ~
~~
~~~.3
~.3
3
I
3
I
3
li
~
li
Ii
~
~
Obsah
VOD
Zklady relacnch databz
Databze a systm rzen bze dat
Datov typy
Hodnota NULL
Preddefinovan datov typy
Konstruovan datov typy
Uivatelem definovan datov typy
Datov typ INTERVAL
Objekty v databzi
Databzov tabulky
POhledy
Indexy
Zkladn orientace
ve strukture jazyka 50L
Data Definition Language DDL
cesky Jazyk pro definici dat JDD
9
13
13
15
15
16
22
22
23
25
26
26
29
29
3
-
5/21/2018 SQL-kniha
4/49
1=: n;
I ;
Obsahiah
opertory
0
:i
555
Aritmetick opertory
55;5
0
i
~
Porovnvac opertory
56;6
li
Logick opertory
58;8
0
riorita opertoru
58 8
li
~
Funkce
5919
1
i
~
ABS
60 0
2
~
ACOS
60 0
4
;3
ADD_MONTHS
60 0
7
I
ASIN
60 0
8
TAN
61 1
8
-
:~
AVG
61 1
8
IT_TO_NUM
61 51
~
CAST
62 2
9
li
;;
CEILlNG
62 2
9
CONVERT
62 2
9
cos
63 3
1
COUNT
63 3
4
If
CURDATE
63 3
4
CURRENT_DATE
6454
I :
CURRENT_TIMESTAMP
6454
5
CURTIME
6454
9
DATE_ADD
6555
1
i
~
DATEJORMAT
6555
2
DATE_SUB
6656
3
ii
;I
DATEADD
6757
4
DATEDIFF
6757
~
DATENAME
6858
~
5 5
-
5/21/2018 SQL-kniha
5/49
~
I .
Obsah
68
IE ~
MONTHS_BETWEEN
77
8
NEXT_DAY
78
9
E
i
NOW 78
9
POWER
789
~.
QUARTER
78
9
EPLACE
79
ii
RIGHT
79
F
ROUND
79
ROUND
8
1
RPAD 8
2
RTRIM
81
2
~
SEC_TO_TIME
82
2
SECOND
82
2
i
SESSOINTIMEZONE
82
3
j i ;;;J
SIGN
823
SIN
83
3
3
STDEV
83
4
UBSTRING
83
4
E
3
SUM
83
4
E
3
SYSDATE
84
4
SYSDATE
84
5
E
3
SYSTIMESTAMP
84
5
TAN
85
5
F
iji
TIME_STAMP
85
5
TIME_TO_SEC
856
I~
TO_DATE
85
6
li
,i
TO_DAYS
876
TO_CHAR
88
7
Ji
i
TO_ LOB
89
~
;I
7
-
5/21/2018 SQL-kniha
6/49
Obsah
TO_NUMBER
TRUNC
UPPER
VAR
WEEK
WEEKDAY
YEAR
YEAR
YEARWEEK
Prloha C.1:
Seznam rezervovanch slov SQL2003
Prloha 2:
Tabulky pro ukzkov prklady
8
90
90
90
9
9
9
9
9
93
95
~.- ;:1
. 3
.~l.: iJ~~ j~
~
Iii
1;1
;;; I
=:
~
i; 1;1
13
13
13
13
~i
;;i
i iil
~
VOD
Teorie databzovch systmu v takov podobe, v jak ji znme
dnes, byla definovna a v sedmdestch letech minulho sto
let. daje jsou v databzch uloen nezvisle na aplikacnm
programu. Databze tak obsahuj nejen vlastn daje, ale
i relacn vazby mezi jednotlivmi prvky a objekty databze.
Obsahuj tak popisy pouitch struktur a mechanismy pro
zarucen integrity dat. Komunikace mezi klientskmi aplikacemi
a databzovm serverem se uskutecnuje pomoc jazyka SQL.
Histor ie tohoto jazyka zacn v roce 1974 v nvaznosti na prvn
prce Dr. Codda o relacnch databzovch modelech. Nejprve
se jednalo jen o vahy v teoretick rovinne. Prvn skutecne pou
itelnou verzi databzovho jazyka vytvorila firma IBM a pojme
novali ji SEQUEL Structured English Query Language). Pozde
ji byla prijata vylepen a standardy jazyka SQL byly upravov
ny a dnes jsou znmy jako SQL-86 a SQL-92. Pro SQL-92 se vil
zkrcen nzev SQL-2. Vvoj pokracoval verz SQL 1999, kter
bv oznacovan i jako SQL-3, a nejnovej je SQL 2003. Imple
mentace jazyka SQL by se mely r dit mezinrodnmi normami
ISO/IEC ]TC l/SC 32/WG 3 lnternational Organization for Stan
dardization), ISO/IEC 9075 a ANSI TC NCITS H2 American
National Standards Institute).
Pri nvrhu osnovy tto publikace se rozhodovalo, zda sestavit
porad probranch tmat a prkazu podle nekter z norem,
nebo pout prirozenou logickou strukturu jazyka SQL. Nako
nec zvtezila druh monost, protoe je jednoznacne prehled
nej a lpe uchopiteln. Hlavn vznam normy je hlavne ve
vycerpvajc a vechny detaily pokrvajc presnosti a plnosti,
take se predpokld, e takovto uspordan budou vyuvat
spe implementtori ne uivatel. Asi nejpresnej metoda, jak
vyjdril syntaktick pravidla jazyka SQL, je pomoc syntaktic-
9
-
5/21/2018 SQL-kniha
7/49
vod
u
jednordkovch funkc budeme kvuli spore msta v publi
kaci uvdet vsledek v hranatch zvorkch v tom stejnm
rdku jako prkaz SQL. Naprklad;
id_po-
i d_prac
jmeno
funkce
astoupi 1
zda
ocky
~- - - - - - - - - - - - - - - - - - - -
------------ ----------- ---------
Novak Martin
gener a 1 d i r ec to r
981-01-160000.000
Kern ova Jana
marketin9 manager
984-07-132000.000
Kouma1 Petr
deve 1oper
992-09-015000.000
Zoubkova Mirosl ava
secretary
989-02-286000.00
0
Ti cha Jana
secretary
989-06-28
8000.000
[10]
Pokud zadme vkonn prkaz, naprklad pro vytvoren tabul
ky nebo vloen zznamu, prkaz se bud vykon a databzov
server nm tuto skutecnost potvrd, nebo dojde k chybe a v tom
prpade databzov server vygeneruje patricn chybov hle
n. Pro takovto prpady jsme zavedli znacen
mm.
SELECT ABS -lO FROM test:
Zjednoduen definice syntaxe.
Jeliko je SQL dotazovac jazyk, je v publikaci zavedeno tak
toto znacen:
Prkaz nebo dvka prkazu SQL zadvan do databzovho ser
veru.
Mnoina vstupnch daju, kterou vygeneroval databzov ser
ver na zklade dotazu SQL.
SELECT FROM pracovnici;
~3
3
3
~3
3
~
;ii
~
~
~
~
~
~iYNTAXE
:;
;;
~::~
1nm
:;
Ii1ii m
;~
C
a;
~
E
I
F
F
~
F
F
~
~
~
F
a;
S;
~
kch diagramu. Syntaktick diagramy pro jazyk SQL jsc I
I
pomerne sloit a pro jejich pochopen je potrebn urcit stu
pen matematick abstrakce. Proto jsme ze syntaktickch diagra
mu jazyka SQL, kter by samy o sobe zabraly celou publikaci
podobnho rozsahu, vybrali jen urcit s tate.
Jednm ze zvanch problmu je i urcit nekompatibilita
v oblasti implementace jazyka SQL pro jednotliv databzov
platformy. Na rovni zkladnch prkazu SQL jsou vechny plat
formy prakticky kompatibiln, ale kad z nich m urcit speci
fick rysy, naprklad co se tk implementace nativnch dato
vch typu, rozirujc mnoiny prkazu a klcovch slov. Eozd
ly jsou i v syntaktick implementaci parametru klcovch slov.
Kapitolou samou pro sebe z hlediska kompatibility je potom
nrodn lokalizace, hlavne nrodn interpretace data a casu.
S touto nekompatibilitou se ctenr setk zrejme nejdrve a nej
casteji.
Proto je v tto publikaci zavedeno znacen kompatibility, kter
ukazuje, pro kter nejpouvanej databzov platformy je pr
s lun syntaxe prkazu urcen. Aby nemerne nevzrostl pocet
kombinac, vyplvajc u zkladnch prkazu z drobnch rozdl
li
jazyka SQL mezi databzemi, zamerme se vetinou na tri nej
pouvanej platformy.
ORACLE Oznacen pokrv databzi Oracle ve verzch 7, H,
Si, 9i
a
lOg.
sQL Server
Oznacen pokrv databzi MSSQL Server ve verzch
7.0, 2000
a
2005.
MySQL
Oznacen pokrv vechny verze MySQL.
Publikace je i presto vhodn pro uivatele databzovch syst
mu IBM DB2 Universal Database, Microsoft Access, PostgreSQL,
Sybase Adaptive Server a dalch.
vod
-
5/21/2018 SQL-kniha
8/49
~~~
~~
~~~
J;~
F'
F ;.ii
;. i
~- ~
; 1
J;~-
Ji ~
II ~i
E i3
E i3
E ~3
~ 3
Ifi ~
t:i ~
~ ~~
zklady relacnch
databz
Zklady teorie relacnch databz formuloval Dr. Codd. Asi nej
vstineji jsou vyjdreny v jeho trech podmnkch minimlnho
relacnho modelu .
1. Vechny daje v databzi jsou uloeny v tabulkch.
2. Fyzick struktura daju a jejich uloen jsou nezvisl
a pro uivatele naprosto odstnen. To znamen, e
z hlediska uivatele neexistuj dn viditeln prstupov
cesty vcetne prstupu k indexum).
3. Pro prci s daji v databzi predpokldme existenci
databzovho jazyka, kter umonuje realizovat mini
mlne operace vberu, omezen, projekce a spojen.
Databze a systm rzen bze dat
Databzi chpeme jako loite daju, kter jsou uloeny
a zpracovvny nezvisle na aplikacnch programech. Pod
pojmem systm rzen bze dat SRBD), nebo anglicky Database
Management System DBMS), rozumme specializovan serve
rov software pro prstup k dajum v databzi. Uivatel ani apli
kacn program pritom vubec nemus znt fyzickou strukturu
uloench daju, protoe k dajum v databzi pristupuj pro
strednictvm systmu rzen bze dat. Komunikace klienta nebo
aplikacnho programu se SRBD probh pomoc jazyka SQL.
3
-
5/21/2018 SQL-kniha
9/49
15
Hodnota NULL
V prvnm rdku tabulky je vraz a v druhm vsledek, kter m
vdy hodnotu NULL.
--- -------------
--- - ... -- - --- - - - - - - -- ----- - ---- --- - -- -
I ~ NULL I NULL I < NULL I > NULL I NULL ~ NULL I
--
NULL
I
NULL
I
NULL
I
NULL
I
NULL
I
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
Drve, ne se zacneme venovat jednotlivm datovm typum,
povaujeme za duleit predstavit si hodnotu NULL,kter je do
jist mry spolecn vem datovm typum. Tato hodnota vlastne
vyjadruje neexistenci hodnoty promenn. Je ale treba prsne
rozeznvat mezi nulovou hodnotou promenn nebo przdnm
retezcem a hodnotou NULL. Nula je v podstate konkrtn cs lo,
ale hodnota NULLznamen, e tento daj nebyl zadn, a tedy
jej neznme. Jak vypad porovnn s hodnotou NULL, je videt
v tabulce, kterou jsme zskali prkazem:
SELECT ~~ NULL
NULL
NULL NULL ~~ NULL;
Kad daj v databzi je urcitho datovho typu. V databzo
vch tabulkch jsou daje uspordny tak, e kad sloupec
obsahuje daje stejnho datovho typu. Mue to bt textov
retezec, cslo, datum, cas a podobne. Jazyk SQL podporuje tri
zkladn druhy typu:
preddefinovan datov typy
konstruovan datov typy
uivatelem definovan datov typy
Datov typy
F L;f
.
~.~
i3~iIJ; :. 1Ji ;: 1t:
~ ia
F
I' :;
~, :;
F r:~
I- 3
~ 3
~
3
r 3
~ i
~ i l
~ Iii
t
i i
-
5/21/2018 SQL-kniha
10/49
Hodnota NULL
(Pozn. korektora: Chovn NULL NULLlze v nekterch data
bzovch systmech vypnout, ale nepatr to mezi dobr npady.)
Preddefinovan datov typy
v
jazyku SQL jsou preddefinovan nsledujc datov typy:
CHARACTER. CHARACTER VARYING, CHARACTER LARGE OBJECT,
BINARY LARGE OBJECT, NUMERIC, DECIMAL,SMALLINT, INTEGER,
BIGINT, FLOAT, REAL, DOUBLE PRECISION, BOOLEAN, DATE,
TlME,TIMESTAMP, INTERVAL.
Znakov datov typy
Datov typy z tto skupiny slou pro ukldn prevne texto
vch daju. Mohou obsahovat daje skldajc se z alfanumeric
kch znaku. Tedy psmen, cslic a jinch znaku. Patr sem dalo
v typy: CHARACTER, CHARACTERVARYING a CHARACTEI{
LARGE OB]ECT.
CHARACTER(dlka) - tento datov typ slou pro uloen lex
tovho retezce s pevnou dlkou, kter je dan parametrcm
v zvorce. Pri implementaci se casto pouv zkratka CHAR.
CHARACTER VARYlNG(dlka) - tento datov typ slou pro
uloen textovho retezce s promennou dlkou. Maximln
dlka textovho retezce je dan parametrem v zvorce. Pri
implementaci se casto pouv zkratka VARCHAR.
NCHAR(dlka) - tento datov typ slou pro uloen textovho
retezce s pevnou dlkou, kter je dan parametrem v zvorce,
ve vybran nrodn znakov sade.
NVARCHAR(dlka) - tento datov typ slou pro uloen texto
vho retezce ve vybran nrodn znakov sade s promennou
dlkou, kter je dan parametrem v zvorce.
Cseln datov typy
Datov typy v tto skupine slou k ukldn cselnch daji I , at
u celch csel, csel s pevnou desetinnou crkou (pouvaj se
a;= ~
I \
I-I ~
~l~
(
1ir:3
(
~ ~
I
~~
I
f- ~
~ r ~
-= L. 3
II:
(
F ~
i
IF:[ ;S
I
~ ii
I
3
\
I 3
(
~ 3
(
3
(
ti ~
I
t: ~
I
~ ~
(
~ 3
Kapi tola 2 - Datov typy
naprklad pro ukldn f inancnch cstek, kter se uvd na dve
desetinn msta) nebo desetinnch csel pouvanch pro
vedecko-technick vpocty. Vzhledem k povaze cselnch dato
vch typu se nabdka navc rozdeluje na presn a aproximova
n cseln datov typy. Do skupiny presnch datovch typu
meme zaradit NUMERIC, DEClMAL, SMALLINT, INTEGER
a BIGINT. Tyto typy vyjadruj presnou hodnotu, a proto je
meme porovnvat s konkrtn hodnotou.
INT (integer) cel cslo v rozsahu od _231 ( -2 147 483 648) do
231 -1 (2 147 483 647). Tento datov typ zabr 4 bajty
SMALLINT cel cslo v rozsahu od _215 (-32 768) do 215 -1
C32767). Tento datov typ zabr 2 bajty.
DECIMAL cseln hodnota s pevnou desetinnou crkou, jej
rozsah je pritom od -(10)38 -1 do 1038 -1.
Do skupiny presnch cselnch datovch typu patr i datov
typy pro vyjdren financn cstky v penen mene. Financn
cstky se vyjadruj a poctaj s pevnm poctem desetinnch mst,
vetinou na dve nebo na ctyri desetinn msta.
MONEY - rozsah tohoto datovho typu je od -263 do 263 -1
SMALIMONEY - rozsah je od -214 748,3648 do +214 748,3647
Pokud databzov platforma tento typ nepodporuje, mueme
ho nahradit jinm datovm typem, naprklad NUMBER(14,2).
Vzhledem k bitov a bajtov implementaci cselnch hodnot
pro uloen na pametovch mdich byly v nekterch datab
zovch platformch zaveden i datov typy optimalizovan pro
uloen do jednoho bajtu, prpadne do jedinho bitu .
TlNYlNT cel cslo v rozsahu od
O
do 255. Datov typ TINYINT
zabr jeden bajt.
7
-
5/21/2018 SQL-kniha
11/49
Preddefinovan datov typy
BIT
tento datov typ slou pro vyjdren jen dvou hodnot, ()
nebo 1, nebo jinak receno pro vyjdren logick hodnoty
PRAVDA / NEPRAVDA (TRUE / FALSE).
(Polo. korektora: I kdy to vypad, e BIT zabr jen jeden IJil.
nebv tomu tak. Obvykle v databzi zabr jeden bajt.)
ORACLE
Platforma Oraele pouv jedin nativn numerick datov IYJ>
NUMBER(n_cslic, n_cslic_za_desetinnou_crkou), kter sl, IIlIJ
k ukldn cselnch daju. Ukldaj se do nej cel csla, (,.~I:1
s pevnou desetinnou crkou (vyuv se naprklad u 111
-
5/21/2018 SQL-kniha
12/49
Vloen aktulnho data a casu:
Preddefinovan datov typy
Ukeme si to na jednoduchm prkladu:
5 01 Server
21
Kapitola
2 -
Datov typy
MySQL.
Datov typy DATE, TIME a TIMESTAMP se skldaj z jednotli
vch pol. Vsledn hodnota data a casu nebo casovho inter
valu je kombinac pol:
YEAR. MONTH. DAY. MINUTE, SECOND.
TIMEZONE_HOUR. TIMEZONE_MINUTE
DAT_NAR JMENO
Norma ISO/IEC 9075 definuje datov typy:
DATE, TIME a TIMESTAMP, kter obsahuj pole:
ORACLE'
01.05.01 Jan Novak
26.05.01 NOVOROZENEC
I dat_nar I jmeno
+- -- -- - - -- - --- - -- - --- -+--- -- ---- ----+
I 0000-00-00 00:00:00 I Jan Novak I
I 2004-10-13 23:46:21 I NOVOROZENEC I
+--- - - - --- - -- - - -- - - - - -+- - - -- -- - --- --+
CREATE TABLE datova_db dat_nar datetime, jmeno varchar 25:
INSERT INTO datova_db VALUES 05/0l/2001 13:30:22 . Jan Novak );
INSERT INTO datova~db VALUES CURRENT_TlMESTAMP ). NOVOROZENEC );
SELECT * FROM datova_db;
CREATE TABLE datumova_db dat_nar date. jmeno varchar 25;
INSERT INTO datumova_db
VALUES TO_DATE 01.05.2001 13:30:22 . dd.mm.YYYY, HH24:MI:SS ).
. Jan Novak );
INSERT INTO datumova_db
VALUES SYSDATE, NOVOROZENEC );
SElECT * FROM datumova~db;
11= -~~
-I (
I-~
I (
_I:
;ii
11IE
_I
I (
a;::::1 : ;i
I m:mm
a; I
I
I
I
-I
;i
. ~
-I
I (
I= :-I~
I
I (
R,:;i
F ~
I (
'I ~
I
II -l
(
~-3
\
i~
(
~:~
(
a;;~
I
I (
J1iI
) I (
~ 3
DATETlME
DATETlME
DATE
CURRENT_TIMESTAMPC)
GETDATEC)
SYSDATE
Jan Novak
NOVOROZENEC
jmeno
20
dat na r
2001-05-01 13:30:22.000
2002-11-24 10:05:05.767
CREATE TABLE datova_db Cdat_nar datetime. jmeno varchar 25:
INSERT INTO datova_db VALUES
05/01/200113:30:22 ,
Jan Novak ):
INSERT INTO datova_db VALUES GETDATEC), NOVOROZENEC ):
SELECT * FROM datova_db:
MySQl
MicrosoftSQl Server 2000
Oracle8i
MySQl
MicrosoftSQl Server 2000
Oracle8i
Vloen zadanho data a casu:
MySQl 28.03.2001 13:30:22
Microsoft S QlServer 2000 03.28.2001 13:30:22
Oracle8i TO_DATEC 01.05.2001 13:30:22 ,
dd.mm.YYYY, HH24:MI:SS
ORACLE'
S'QL
Server
MySQL
Abychom hlavne zactecnkum ulehcili zkladn orientaci,
prl.:d
vedeme rozdly v implementacch tohoto datovho typu
pl'
-
5/21/2018 SQL-kniha
13/49
22
Preddefinovan datov typy
mesto VARCHAR(25).
stat VARCHAR(20)
) :
23
Kapitola 2 - Datov typy
SQL Server
Pro definovn vlastnho datovho typu se pouv systmov
uloen procedura SP_ADDTYPE.
USE master
[XEC sp_addtype pse. CHAR(6) . NOT NULL
Datov typ INTERVAL
Datov typ INTERVALmeme pout pro hodnoty z urcitho,
presne definovanho intervalu.
r~ ;J
1- I
J~
I I
~-~
I I
I
ii J
\ (
i
~=I
1-
I: .
I
I =- :
(
t~
;:;i
I j I
=J~~
I 1 I
10 ::..1. ~1- .
1-1 (
J': :I~
1
.~.
\
t ;~
.
I (
~-I ~
. ~
J. ~
. ~
I= ~
I: ~
J
YEAR. MONTH a DAY.
HOUR. MINUTE a SECOND.
YEAR. MONTH. DAY. HOUR. MINUTE a SECOND.
Uivatelem definovan datov typy
Krome preddefinovanch datovch typu je tak mon vytvorit
i vlastn, tzv. uivatelem definovan datov typy. Poadavky n:1
pouvn techto datovch typu vyplvaj z aplikacn logiky.
Velmi casto se pouvaj nekter hodnoty z relnho ivota,
naprklad potovn smerovac csla, rodn csla a podobn0,
take je vhodn definovat pro ne vlastn datov typ.
ORACLE
U tto platformy mueme vytvret tri druhy datovch typ: po
-
5/21/2018 SQL-kniha
14/49
1 -:=I
-~
I' X'
I
t:-=~
I
~ii
~~
r
~~~
I
-1
.J~
J~
-I I
1= :1 ;; I
- I
-=:
;;
.~
-, I
:'
~
.-7/3
I
-: 3
\
I~
3
I
It-
I~
~
I
I\.
.~~3
Objekty
v databzi
Databze je strukturovan loite daju s tm, e daje a vzta
hy mezi nimi jsou uloen a definovan v ruznch strukturch
a objektech. daje jsou v databzi uloen zpravidla do vce
tabulek, mezi ktermi jsou relacn vazby. Databze zapouzdru
je ruzn objekty jako tabulky, pohledy, indexy, uloen proce
dury, spoute a tak podobne. Pro nzvy objektu v databzi plat
veobecn pravidlo, e nzev objektu mus bt jedinecn podle
systmu:
d t bze vl stnk objekt
V databzi mohou bt ruzn objekty, naprklad databzov
tabulky se stejnmi nzvy, pokud ovem maj jin vlastnky. Pro
nzvy identifiktoru objektu podle normy SQL-92 plat, e se
mohou skldat z minimlne jednoho znaku (na to byste urcite
prili sami, ale tvurcov tto normy mus bt exaktnD a maxi
mlne 128 znaku. Pro nekter platformy je ale maximln pocet
znaku ni. Prvn znak identifiktoru mus bt psmenko nebo
znaky _,
@
a #. Dal znaky mohou bt i cslice. Pokud identifi
ktor obsahuje mezery, je nutn jej povinne uzavrt do hrana
tch zvorek nebo do uvozovek .
Databzov tabulky
daje jsou v prostred relacnch databz uloeny v dvojroz
mernch databzovch tabulkch. Tabulky se skldaj ze sloup
c a rdku. Sloupec je mnoina daj jednoho datovho typu
v tabulce. Nekdy se sloupcum rk tak atributy. Rdek (nekdy
t nazvan zznam) je kombinace hodnot sloupc v tabulce.
Kad rdek je obvykle jednoznacne identifikovateln za pomo-
25
-
5/21/2018 SQL-kniha
15/49
.
~~
~:i..
I
I~ ~
~~
..
. -:I ~
I
p~j~
~~i
II :: ~
I :I_ S
I
E:: .
~j
~ ...
30
IU~ ~
fc ~
t ~J
t
j
I =~j
Zkladn orientace
ve strukture
jazyka SQL
Pro zskn zkladn orientac e ve strukture jaz yka SQL mueme
pout dva zpusoby prstupu - systematickou kategorizaci
a lexikln kategorizaci. Systematick kategorizace rozdeluje pr
kazy jazyka SQL na nekolik zkladnch podmnoin.
Data Definition Language DDL)
Data Manipulation Language DML)
Data Control Language DCL)
Transaction Control Commands TCC)
Data Definition Language (DDL)
cesky Jazyk pro definici dat (JDD)
Prkazy z mnoiny DDL nm umonuj definovat struktury
a vytvret v databzi ruzn objekty, jako naprklad tabulky,
pohledy, indexy a tak podobne. Prkazy DDL lze menit struktu
ru techto objektu nebo je ruit odstranovat). Do tto skupiny
patr naprklad prkazy:
F ~
J
Ii
..J
I~
I
I~
-
j
Iii' I I
C REA TE D ATA BA SE
CREATE TAB LE
ALTER TABLE
DR OP TA BLE
CREATE INDEX
DROP INDEX
CREATE VIEW
ALTER VIEW
DROP VIEW
DR OP INDEX
C REA TE S EQ UEN CE
AL TE R S EQ UEN CE
9
-
5/21/2018 SQL-kniha
16/49
30
31
ADD jmno_sloupce typ [omezen_integrity]
MODIFY .
DROP .
Prkazy z mnoiny DDL jsou urcen pro nvrh struktur objektu
v databzi. Mueme navrhovat a menit strukturu objektu v data-
bzi prpadne odstranovat tabulky pohledy indexy a podobne.
Pomoc klauzule DROP COLUMN mueme odstranit sloupec
z databzov tabulky.
ALTER TABLE pracovnici DROP COLUMN hodnoceni;
Pomoc prkazu ALTERTABLE mueme tak pridvat a odeb-
rat nikoliv vak modifikovat i omezen. Prpadne je mon je
vypnout a opetovne zapnout bez toho abychom je museli
Pomoc klauzule ADD mueme do databzov tabulky pridat
nov sloupec.
ALTER TABLE pracovnici ADD hodnoceni VARCHAR 30J;
ALTERTABLE
Pomoc prkazu ALTER TABLE mueme v databzov tabulce
provdet zmeny v jej strukture naprklad pridnm novho
sloupce modifikac ji existujcho sloupce odebrnm sloupce
prpadne definovnm implicitn hodnoty pro nov sloupec.
Zjednoduen syntaktick zpis pro tento prkaz je:
Prkazy
jazyka DDL
;;i YNTAX ~LTER TABLE jmno_tabul ky
~
I,
iI
mm
3
~
i
a
i1
3
~ii1
.J
~i :
J
E I
~.iI
j
~.~
~;~
F~
9~
~iI
Jiii~ ~
1
1=.
F
~-,
t
~
I
I
a;
J;
II:
REVOKEROP USER
GRANT
UPDATE
DELETE
SELECT
INSERT
Data Manipulation Language (DML)
cesky Jazyk pro manipulaci s daty (JMD)
Umonuje manipulaci s daji to znamen vber a vkldn
daju a jejich aktualizaci mazn daju a samozrejme velmi
mocn prkaz SELECTpro vber daju. Patr sem ctyri hlavn
prkazy.
CREATE USER
ALTER USER
Data Manipulation Language (DML) - Jazyk pro manipulaci s daty (JMD)
Transaction Control Commands (TCC)
cesky Prkazy pro rzen transakc
Podmnoina TCC obsahuje prkazy pro rzen transakc Do tto
podmnoiny patr naprklad prkazy:
SET TRANSACTION ROLLBACK
COMMIT SAVEPOINT
Data Control Language (DCL)
cesky
Prkazy pro rzen prstupu
Podmnoina rdicch prkazu obsahuje speciln prkazy pro
rzen provozu a drbu databze. Tak je mon pridvat
a odebrat uivatelsk prstupov prva pro jednotliv uivatele
a skupiny uivatelu. Do tto podmnoiny mueme zaradit
naprklad nsledujc prkazy:
-
5/21/2018 SQL-kniha
17/49
~,~
z tabulky odebrat a pozdeji znovu pridat. Ukeme si prklad
pro vypnut omezen.
mm CREATE TABLE pokus_tab
(
t~
ji
SYNTAXE
~ :~
fc.~
I-. =~
~.
Eii
~iI
~:tJ
~~
t=~
SYNTXE
jIu_
J
.,.~
.-=~~
.J~
.1~
. ~
1 =3
Nebo zjednoduene:
CREATE [UNIQUE][BITMAP] INDEX jmno_indexu ON jmno_tabulky
- sloupec_tabulky [,sloupec_tabulky]
Bitmapov index vytvorme pomoc prkazu:
CREATE BITMAP INDEX jmno_indexu ON jmno_tabulky sloupec :
Kapitola 5 - Prkazy jazyka DDL
ORACLE
CREATE [UNIQUE][BITMAP]INDEX [vlastnk.]jmno_indexu
ON [vlastnk.]jmno_tabulky sloupec_tabulky [ASC I DESC]
-[,sloupec_tabulky
[ASC I DESC] ] -
[CLUSTER [vlastnk.]jmno][INITRANS n][MAXTRANS n][PCTFREE
-n][STORAGE storage]
[TABLESPACE tabulkov_prostor][NO SORT]
Naprklad:
CREATE INDEX ix_prac ON pracovnici id_prac :
Nebo zjednoduene:
CREATE [UNIQUE] INDEX jmno_indexu ON jmno_tabulky
- sloupec_tabulky [,sloupectabulky]
,.
PAD_INDEX I
FILLFACTOR ~ fillfactor
IGNORE_DUP_KEY
I
DROP_EXISTlNG I
STATISTICS_NORECOMPUTE
SORT IN TEMPDB
CREATE [ UNIQUE ] [ CLUSTERED I NONCLUSTERED ] INDEX jmno_indexu
ON { tabulka
I
pohled I sloupec [ ASC
I
DESC ] [ ,...n ]
WITH
[ '
.n] ]
ON filegroup ]
s fyzickou strnkou uloen daju, a proto se podrobn synt
-
5/21/2018 SQL-kniha
18/49
jmno_sloupceN datov_typ [DEFAULT vraz]]
CREATE TABLE
35
;
id_zak int PRIMARY KEY .
id_obj int PRIMARY KEY.
id_zak int NOT NULL .
FOREIGN KEV
Omezen FOREIGN KEY definuje ciz klc v jin tabulce. Ciz
klc definuje vztah k primrnmu klci jin nebo stejn tabulky .
Kapitola 5 - Prkazy jazyka DDL
FOREIGN KEY (id_zak) REFERENCES zakaznici(id_zak)
) ;
Takto definovan ciz klc se vztahuje k primrnmu klci
v tabulce:
CREATE TABLE zakaznici
(
DEFAULT
Pokud uivatel pri vkldn zznamu nezad hodnotu urcitho
sloupce, bude vloena implicitn hodnota.
CREATE TABLE pokus_default
(
stav VARCHAR(10) OEFAULT ???
;
CREATE TABLE objednavky
(
omezen
Pro zabrnen zadvn nesprvnch hodnot do databzovch
tabulek je v nekterch prpadech vhodn zavst pro nekter
sloupce urcit omezen. Syntaktick zpis je nsledujc:
sloupec [CONSTRAINT jmno_omezen] typ_omezen
Vechny omezen mueme pridvat i odebrat, nelze je vak
upravovat. Pridn i odebrn omezen se realizuje pomoc pr-
kazu ALTERTABLE.
ir:=;rj
1C:i~
~~
~ iiIIm
~~ ~
~ ~
- I
~I ,;I
.J
,,=1 iInm
~ ~
..-=
-'
3 J
~ ~
I
JI-
I ~
~ ~
I -
.~ i :3
INTEGER PRIMARY KEY.
CHARACTER VARYING(25).
CHARACTER VARYING(20).
OATE.
OEClMAL( 7.2).
SMALLI NT
id_prac
jmeno
funkce
nastoupil
mzda
id_pobocky
);
34
RE TEINDEX
jmno_sloupce datov_typ [DEFAULT vraz] [.
jmno_sloupce2 datov_typ [DEFAULT vraz].
Prkazem CREATETABLEvytvorme v databzi novou tabulku.
pln definice syntaxe tohoto prkazu je pomerne sloit, proto
zde uvedeme zjednoduenou verzi tohoto prkazu.
~~ I{
CREATE TABLE [schma. ]jmno_tabul ky
(
Naprklad:
GE CREATE BITMAP INDEX ix_pohla vi ON seznam(pohlavi);
MySQL
pln syntaktick definice zn takto:
YN ~g
CREATE [UNIQUEIFULLTEXT] INDEX jmno_indexu ON jmno_tabulky
(sloupec_tabulky [(dlka)], ... )
Fulltextov indexy mueme samozrejme pout jen na textov
datov typy CHAR a VARCHAR a jen na tabulky MyISAM.
Volba DEFAULT specifikuje implicitn hodnotu, kter se poui-
je pri vkldn novho rdku, pokud pro dan sloupec nebyln
uvedena konkrtn hodnota.
GE
CREATE TABLE pracovni ci
(
-
5/21/2018 SQL-kniha
19/49
~ CREATE [OR REPLACE] [FORCE] [NOFORCE] VIEW nzev_pohledu
[ aliasl [. alias2]... ] AS vnoren_dotaz [seznam_omezen]
iI
~
3
7
Kapitola 5 Pr kazy jazyka DDL
KEY nazev_akce. cas akce
sloupec INT UNIQUE
;
sloupec INT CONSTRAINT unikatniklic UNIQUE
;
Nebo zjednoduene:
Prkazem CREATE VIEW vytvorme v databzi nov pohled.
Zjednoduen syntaxe prkazu pro vytvoren pohledu je nsle
dujc:
Primrn klc je mon vytvorit bud nad jednm, nebo v prpa
de potreby i nad vce sloupci. Naprklad:
CREATE VIEW
UNIQUE
Toto omezen vyaduje uniktn hodnoty. To znamen, e slou
pec nebo kombinace sloupcu) mus bt jednoznacn pro
vechny zznamy v tabulce.
CREATE TA8LE pokus_unique_key
CREATE TABLE pokus_primary_key
nazev_akce VARCHAR 20 .
cas_akce DATETIME.
CONSTRAINT pk_akce PRIMARY
;
CREATE TABLE pokus_primary_key
sloupec INT PRIMARY KEY
:
CREATE TA8LE pokus_unique_key
~
~
3
3
~
ii
~
~
~
.nIm
ij)
IW ;]
t-=~
GIm
~~
~ I
.;; i
~r
~
~
J
~
S;;
a;
~
~
to:
~
~
~
sloupec INT NOT NULL
);
NOT NULL
Sloupec, na kter se toto omezen vztahuje, nesm obsahovat
hodnotu NULL.
CREATE TABLE
Nebo zjednoduene:
sloupec INT.
CHECK sloupec BETWEEN 1 AND 40
};
sloupec INT CONSTRAINT primklic PRIMARY KEY
);
sloupec INT CONSTRAINT identifikator NOT NULL
;
PRIMARV KEV
Primrn klc jednoznacne identifikuje kad zznam v tabu cl.: .
Primrnm klcem mue bt jeden sloupec, prpadne kombinace
vce sloupcu. Kad tabulka mue mt maximlne jeden
pril1l:r-
n klc. Toto omezen tak zabezpec, e dn sloupec,
kter
je
soucst primrnho klce, nebude obsahovat hodnotu NUL ..
GIm CREATE TABLE pokus_primary-key
Nebo zjednoduene:
GIm
CREATE TABLE pokus_noLnull
GIm CREATE TABLE pokus_noLnull
CHECK
Pomoc omezen CHECK definujeme podmnky a omezen,
kter mus bt splneny pro kad zznam.
GIm CREATE TABLE pokus_check
-
5/21/2018 SQL-kniha
20/49
t=-~3
Pro vymazn daju z databzovch tabulek slou prkaz
DELETE,kter se pouv ve tvaru:
~NTAXE DELETE [FROMJ tabul ka WHERE podm nka
~/NTA)(E INSERT INTO jmno_tabulky [sloupecl [.sloupec2 .. JJ
. VALU ES (hodnota_polokyl [,hodnota_poloky2 .. J)
...
>:
NO
mm
~t.
JI
39
INSERT INTO pracovnici
VALUES (1, 'Novak Ma rtin ', ' general director', '1 6.0 1.1 981',50 000,10);
Vyjmenovn jednotlivch sloupcu mueme vynechat, ale v tom
prpade musme pochopitelne zadat hodnoty pro vechny
sloupcc v takovm porad, v jakm byly uvedeny pri nvrhu
Cseln hodnoty zpravidla zadvme bez uvozovek, znakov
retezce a hodnoty pro datum a cas zadvme v jednoduchch
uvozovkch.
Prkaz INSERT se pouv pro pridvn novch zznamu do
databze, presneji receno pro pridvn novch rdku do data
bzovch tabulek. Zjednoduen syntaxe zn takto:
Pomoc prkazu DELETE bez uveden omezujc podmnky
dojde ke smazn vech rdku v tabulce. Nicmne przdn
tabulka v databzi zustane.
INSERT
DELETE
Prkazy
jazyka DML
Jazyk DML (Data Manipulation Language) slou pro manipula
ci s daji. Prkazy z tto podmnoiny umonuj vber daju,
jejich vkldn, aktualizaci i vymazn.
~
3
~
3
k~'~~
I-
=~
tE
jij
. ~
~~
l ~
E~
31
E
fiij ;ji
F.= ;ji
: ~
I-~
~
~-:-
ti
t:
a;
~ ii
~
CREATE VIEW
DROP TABLE
Pro odstranen pohledu slou jednoduch prkaz DROP VIEW.
,Y~f~.~~
ROP VIEW nzev_pohledu
38
DROPINDEX
DROP VIEW
Naprklad:
mm DROP VIEW funkce:
Prklad umonuje odstranit tabulku v aktuln databzi. Prkaz
potvrd vechny neukoncen transakce a vykon nevratn
zmeny.
j ~f~'
DROP TABLE jmno_tabulky
Naprklad:
mm DROP TABLE pobocky;
Index odstranme prkazem:
~ ~f~~
ROP I NDEX jmno_tabulky.
Naprklad:
mm DROP INDEX ix_prac:
Naprklad:
mm CREATE VIEW funkce AS SELECT jmeno, funkce FROM pracovnici
~-----------~--------_ I I I
-
5/21/2018 SQL-kniha
21/49
E=3
INSERT
~~
Kapitola 6 - Prkazy jazyka DML
_ sama o sobe by nebyla pouiteln bez dvou pseudosloupcu
It ~
NEXTVAL a CURVAL. NEXTVAL pri pouit vygeneruje dal
hodnotu sekvence a CURVALvrac aktuln hodnotu sekvence.
~ ~ CREATE TABLE zbozi
E ~ (
E:-~
~ ijI
IE
(1-
(~~
;~
I~ ~
-I
.:II
U--i
(~-~ ~
I~
n
I~
H
O
I
______ I_t
V prkazu deklarujeme, e chceme generovat hodnotu sloupce
id_zb od poctecn hodnoty
1
s prrustkem
1.
tabulky. Pri vkldn daju nekdy vyvstane poadavek genero
vat uniktn hodnoty primrnch klcu.
CREATE SEQUENCE nzev_posloupnosti
[START WITH cslo]
[INCREMENT BY cslo]
[MAXVALUE cslo]
[MINVALUE cslo]
[CYCLE
I
NOCYCLE]
[CACHE cslol NOCACHE];
...
>:: :
NC
IV IV
~~
Q N
,~
U)
41
uniktnho identifiktoru klauzuli
id_zb int auto_increment PRIMARY KEY,
nazev varchar 30),
id_zb int NOT NULL,
nazev varchar 30),
):
);
INSERT INTO zbozi nazev) VALUES Kanc. papir );
SELECT [*] [seznam_poloek_vstupn_sestavy]
FROM jmno_tabulky
WHERE podmnka_vberu
GROUP BY poloky
Prkaz SELECTslou pro vber daju z databzovch tabulek.
Umonuje realizovat minimlne operace vberu, omezen,
projekce a spojen.
plnej a presnej definici pro prkaz SELECTby se nm asi
teko podarilo vytvorit . Syntaxe prkazu SELECTje pomerne slo
it a v nekterch detailech a podrobnostech se pro jednotliv
databzov servery dost li. Zjednoduene bychom jeho synta
xi mohli definovat takto;
SELEtT
CREATE SEQUENCE id_zb INCREMENT BY 1;
INSERT INTO zbozi VALUES id_zb.nextval, Kanc. papir );
MySQL
Pouv pro generovam
auto_increment.
CREATE TABLE zbozi
~
~
t )
~NTAXE
3
~
mrm
~
identifiktoru se pouv prkaz
zjednoduenou syntaxi mclIl l. :
id_zb int IDENTITY 1, 1) NOT FOR REPLICATION PRIMARY KEY,
nazev varchar 30).
);
4
Parametr za klauzul STARTWITH definuje poctecn hodnoll l
genertoru, implici tne se zacn od csla
1.
Pomoc parametru Z:I
klauzul INCREMENT BY definujeme interval mezi clvelll:1
Z:I
sebou jdoucmi cslicemi. Implici tn hodnota tohoto parall1l l lIl
je tak 1. Hodnoty mueme generovat i cyklicky, pokud pou;,i
jeme klauzuli CYCLE. Maximln a minimln hodnotu l1asl:11 11
jeme parametry za klauzulemi MAXVALUEA MINVALUI :.1 :11 :1
metrem CACHE specifikujeme, kolik hodnot bude vygencf ::iE
NO
a a
~~
D N
. 1,
U)
7
NAZEV
ACCOUNTI NG
RESEARCH
SALES
OPERATIONS
Zoubkova M rosl ava
Ticha Jana
Kouma 1 Pet r
Zoubkova Miroslava
Ticha Jana
Zoubkova Mi rosl ava
Ticha Jana
Ticha Jana
FUNKCE
general d rector
developer
marketing manager
instalater
Novak Martn
Kouma 1 Pet r
Kernova Jana
Zoubek Mroslav
JMENO
INNER JOIN vnitrn spojen
Tabulka bude po spojen obsahovat jen ty zznamy, kde se
hodnoty spojovacch atributu shoduj. Jedn se o ekvivalent
spojen pomoc klauzule WHERE. Naprklad:
Novak Martin
Novak Martin
Kernova Jana
Kernova Jana
Kernova Jana
Koumal Petr
Koumal Petr
Zoubkova Miroslava
FULL JOIN pln spojen
Pri tomto spojen se vyp i takov rdky, kter nesplnuj spo
jovac kritrium. Pro kombinaci pracovnci - pobocky bude
dotaz pro pln spojen vypadat naprklad takto:
SELECT * FROM pracovnici AS p FULL JOIN pobocky AS o ON
p.id_prac ~ o.d_pobocky;
e~
~~
~~
IFi ;ji
E iI
E~
E~
~iI
5==~
Fii:~
ImmI
E--~
E t
E~
li ~
~~
F= ~
F= i i
~. ~
Kernova Jana
Koumal Petr
jmeno
Novak Martin
Novak Martin
46
jmeno
E.mD
~lu~~
I
-
5/21/2018 SQL-kniha
25/49
JOIN- spojovn tabulek
SELECT pracovnici.id_prac, pracovnici .jmeno, pobocky.id_pobocky,
- pobocky.nazev
FROM pracovnici RIGHT OUTER JOIN pobocky
ON pracovnici .id_pobocky - pobocky.id_pobocky;
RICHT OUTER JOIN - venkovn spojen z prav strany
Pri tomto spojen se vyp i rdky, kter nesplnuj spojovac kri
trium. Pri spojen z prav strany jsou prirazovni pracovnci
k pobockm. Vypsan budou tedy vechny pobocky, ale pra
covnci, kter nejsou prirazeni k nejak pobocce, se ve vpisu
neobjev.
...
>:iE
NC
1010
iE~
D.N
10
' ..
10 ACCOUNTlNG
30 SALES
20 RESEARCH
40 OPERATlONS
ID_POBOCKY NAZEV
10_POBOCKY NAZEV
Kapitola 6 - Prkazy jazyka DML
pracovnici. jmen o, pobocky.id_pobocky,
JOIN pobocky
pobocky.id_pobocky;
JMENO
1 Novak Martin
10 ACCOUNTlNG
2 Kernova Jana
30 SALES
3 Koumal Petr
20 RESEARCH
4 Zoubek Miroslav
40 OPERATlONS
5 Ticha Jana
1 Novak Martin
2 Kernova Jana
3 Koumal Petr
4 Zoubek Miroslav
IIU RI\C
ID_PRAC JMENO
Klauzule ORDER BY pro trden daju m v prpade, e se tr
den vyaduje, pevn msto v SYNTAXI prkazu SELECT.daje
lze trdit vzestupne, tj. od nejmen hodnoty po nejvy, nebo
sestupne od nejvy hodnoty po nejni. Pro vzestupn trde
n se pouv klauzule ASC (implicitn hodnota), pro sestupn
DESe. Pozice techto klauzul v prkazu SELECT je za nzvem
sloupce, podle kterho se trden poaduje.
ORDER BY
SELECT rracovni ci. id_prac,
- pobocky.nazev
,IWM pr acovnici LEFT OUTER
ON rracovnici.id_pobocky
F+;J
lt ~ii;1
1r
I~
I
E=~
IF- ~
E=- iii
E,:
ii
=
;I
ii;=- ~
=
;;pD
~iI
=
~~ iI
. ~
: 1i
;
iii
J;
i i
: ~
LEFT OUTER JOIN - venkovn
spojen z lev strany
Pri tomto spojen dojde k vyps:
n i takovch rdku, kter spojo
vac kritrium nesplnuj. V prpa
de spojen z lev strany budou
prirazovan pobocky k pracov
nkum. To znamen, e se vyp
vichni pracovnci, tedy
i ti,
kter nejsou prirazeni do dn
pobocky. Pobocka bez pracovn
ka se ve vpise neobjev.
........M Vi U
C ro C
Q)
01 E 'O
'e-
VJ
L
L aJ
o o>
+-' '
U c
aJ '
L E
00000
00000
00000
ONLDCOCO
Lf) M ev) r- I r- I
. . . . .. .
-
5/21/2018 SQL-kniha
26/49
Nebo:
SELECT
*
FROM pracovnici ORDER BY mzda DESC:
SYN~AK~ SELECT .. FROM .. [WHERE .. ] ORDER BY sloupec
[ASC/DESC][.sloupec [ASC/DESC] ... ]
Naprklad:
SELECT * FROM pracovni ci ORDER BY nastoupi 1 ASC:
...
::iE
~c
~t\'I
:i:~
Qo,
51
50000,00
35000,00
32000,00
18000,00
18000,00
MZDA
Kapitola 6 - Prkazy jazyka DML
FUNKCE
general director
developer
marketing manager
instalater
secretary
Datov typ
varchar(15)
varchar(l5)
varchar(l5)
Novak Martin
Koumal Petr
Kernova Jana
Zoubek Miroslav
Ticha Jana
Nzev
pri jmeni
jmeno
funkce
Pokud jsou za prkazem SELECTvyjmenovan sloupce, mue
IIH~ do klauzule ORDER BY zadat i poradov cslo sloupce,
podle kterho chceme trdit. V naem prpade je sloupec mzda
tr
U
'
co
.-- C o L
+-' ,L
C +-' L
aJ
. -- - ' r-
u
-
5/21/2018 SQL-kniha
27/49
ii
ii1
~
MZDA
50000
32000
35000
26000
18000
ID_PRAC
JMENOUNKCEASTOU PIL
MZDA
D_POBOC KY
1
Novak Martin
eneral di rector
6.01.81
0000
0
2
Kernova Jana
arketing manager
3.07.842000
0
3
Koumal Petr
developer
1.09.925000
0
4
Zoubkova Miroslava secretary
28.02.89
60000
5
Ticha Jana
secretary
8.06.8980000
53
V praxi se velmi casto pouv kombinace projekce a restrikce,
kdy vypisujeme jen urcit sloupce z vybranch zznamu, napr
klad:
Kapitola 6 - Prkazy jazyka DML
Omezen realizujeme pomoc podmnky nsledujc za klauzul
WHERE.
WHERE- pouit klauzule pro spojen tabulek
Ze Zkladnho principu optimlnch relacnch databz vyplv
skutecnost, e daje jsou zpravidla uloen ve vce tabulkch,
obvykle spojench relacnmi vazbami. daje z vce tabulek
meme spojit pomoc klauzule WHERE. Naprklad:
SELECT jmeno. mzda FROM pracovnici WHERE mzda >33000;
loe se vztahuje na kombinace vech sloupc, kter jsou za
klauzul DISTINCT uveden. Naprklad:
SELECT DISTlNCT jmeno funkce nastoupi 1 mzda FROM pracovnici:
JMENO
Novak Martin
Kernova Jana
Kouma 1 Petr
Zoubkova Miroslava
Ticha Jana
SELECT FROM pracovnici WHERE mzda >33000;
SELECT pracovnici .jmeno pracovnici .funkce. pobocky.nazev
FROM pracovnici. pobocky .
WHERE pracovnici .id_pobocky - pobocky.id_pobocky;
; i
;p
I l'EIi: m
~
t~ ~
I ?~
~-p
Ic=-~
DmI
1 -1
~ ~
~-i1
E
ii
a:;
F
E-~
3
I 3
...
~
..
~
a;
I~
WHERE - pouit klauzule pro omezen
Klauzule WHERE slou jednak pro restrikci (omezen vberu)
zznamu a takt pro spojovn tabulek. Pod pojmem restrikcL:
rozumme vber definovanch zznam. Mnoinu zznamll
musme popsat pomoc nejak podmnky, kterou jsme schoPlli
formulovat slovne nebo matematicky. Jednm ze zkladnch
omezen je vyloucen duplicit pomoc modifiktoru DISTINCT,
kter mus nsledovat ihned za klcovm slovem SELECT,Pf'()-
zjistme, e databzov server odpov chybovm hlenm ve
smyslu, e blok dotazu m nesprvn pocet sloupc vsledku.
V prvnm dotaze to je jeden sloupec a v druhm ji dva. Proto
musme sloupce jmno a prjmen sloucit do jednoho.
5
SELECT jmeno FROM pracovnici
UNION
SELECT prijmeni I I , I I jmeno AS jmeno_zakaznika FROM zakaznici:
Kecal Jozef
Kernova Jana
Kouma 1 Pet r
Kubikova Jana
Novak Alfonz
Novak Martin
Plha Jan
Rach Petr
Ticha Jana
Zoubek Miroslav
UNION - spojovn nehomogennch tabulek
Pokud pouijeme opertor UNION, zacneme se pribliov;11
poadavku vypsat jmna pracovnk a kontaktnch osob v jed
nom vpisu. Pokud intuitivne pouijeme prkaz:
SELECT jmeno FROM pracovnici
UNION
SELECT prijmeni. jmen o FROM zakaznici;
~ jmeno_zakazni ka
-
5/21/2018 SQL-kniha
28/49
WHERE- pouit klauzule pro spojen tabulek
'~~
I.
I.
. ;
,
~
3
UPDATE
Slovne by se tato konstrukce dala popsat nsledovne: Vyber pr-
slun zznamy z tabulek pracovnci a pobocky tak, aby spojo-
van rdky vyhovovaly podmnce:
pracovnici id_pobocky pobocky id_pobocky
Vznam opertoru
Sctn
Odctn
Nsoben
Delen
Celocseln delen (modulo)
Binrn opertor OR(mezi bity operandu)
Binrn opertor XOR(mezi bity operandu)
Binrn opertor AND (mez bty operandu)
Posunut bitu operandu doleva
Posunut bitu operandu doprava
Aritmetick a porovnvac operace mueme provdet i s hod-
notami data a casu. Nejmen celocselnou jednotkou je den,
prpadne jeho zlomkov cst. Pokud k urcitmu' datu pripoct-
me cel cslo, pripoctme tm pocet dn, kter toto cslo repre-
zentuje. Pokud k datu pripoctme desetinn cslo, naprklad
H,25, pripoct se 8 dn (cel cslo pred desetinnou crkou
reprezentuje pocet dnO a jete 1/4 dne, to jest 6 hodin. Pre-
hledneji to lze vyjdrit pomoc tabulky:
55
Aritmetick opertory
+
Aritmetick opertor
v
jazyce SQL jsou implementovan tri druhy opertoru:
,Iritmetick
porovnvac
logick
opertory
~
~. I
-,
~i1
~'.
E=
E
; I
e;
(:::I
~ :~
~= ;~
t :3
I - '3
IL,-i
i~
:. II ,:::::I
I). i3
ACCOUNTI NG
RESEARCH
SALES
OPERA TI ONS
NAZEV
U N KC E
general di rector
developer
marketing manager
instalater
Novak Martin
Kouma 1 Pet r
Kernova Jana
Zoubek Miroslav
Prkaz UPDATE slou pro zmenu hodnoty nekterch daju
v databzovch tabulkch. Jeho zjednoduen syntaktick
zpis je:
~ f ~~.
PDATE tabul ka
SET sloupec1 ~ hodnota1 [ sloupec2 ~ hodnota2
J
WHERE podmnka
Prkaz UPDATE mueme uplatnit pro celou tabulku nebo jen na
nekter konkrtn zznamy. Pokud pomoc restrikce, tedy
pomoc podmnky v klauzuli WHERE, nespecifikujeme zznam
nebo zznamy, kterch se m aktualizace tkat, budou se aktu-
alizovat vechny zznamy ve vybran tabulce. Aktualizovat
daje mueme na zklade hodnot jinch sloupcu uloench v t
stejn nebo jakkoliv jin databzov tabulce.
mm UPDATE pracovni ci SET mzda mzda
*
1 1:
~ JMENO
~~
-
5/21/2018 SQL-kniha
29/49
SELECT 2001-07-02 01:02:0 3 INT ERVAL 3 HOUR:
[200 ]-07-02 04:02:03J
SELECT 2001-07-02 01:02:03 - INTERVAL 3 MONTH:
[200 1-0 4-0 2 0]:02 :03 J
SELECT 200]-07-02 01:02 :03 INTERVAL 1 I: ]:] DAY_SECOND;
[200 1-0 7-0 3 02:03:04J
funkce LlKE '%General director')
funkce ~ 'General di rector' )
funkce LlKE '%General director%')
funkce LlKE 'General director%')
funkce 'General director' )
NOT funkce LlKE '%General director%')
NOT funkce LlKE 'General di rector%')
NOT funkce LlKE '%General di rector')
Opertor specifikuje uzavren interval (obe
hranicn hodnoty budou patrit do intervalu)
Opertor specifikuje shodu s jednou hodno
tou ze seznamu
Opertor specifikuje shodu retezce podle
znakovch kritri
Opertor specifikuje hodnotu NULL
WHERE
WHERE
WHERE
WHERE
WHERE
WHERE
WHERE
WHERE
Prklad
LlKE
IN
57
Kapitola 7 - Opertory
BETWEEN . AND .
I 'ro znakov datov typy obycejne pouvme porovnvac ope
rtory trochu jinm zpusobem, a navc tak pouvme oper
tor LTKE.
V kombinovanch podmnkch mueme pout jete dal ope
rtory porovnn:
Konc na
Nezacn na
Nerovn se
Obsahuje
Neobsahuje
Zacnna
IS NULL
Rovn se
ORACLE'
Ql Server
MySQL
I'orovnvac opertory a opertor BETWEEN se casto pouvaj
v souvislosti s datovm a casovm intervalem. Pri porovnvn
datovho a casovho intervalu se v naich koncinch zrejme
V opertom LIKEse nejcasteji pouvaj dva zstupn znaky;
< 1
zastoup libovoln mnostv libovolnch znaku
zastoup jeden libovoln znak
popis porov
nvacho
opertoru
Nekonc na
~ '33000' )
'33000' )
> '33000' )
< '33000' )
>~
'33000' )
=
>
33
_I (
~-::I B
~- ~
Ii ~
..- ~
[i (
13
. ~
I (
~I~
I
~
el
;1
-
5/21/2018 SQL-kniha
30/49
Porovnvac opertory
nejvc projev rozdlnost mezi jednotlivmi databzovmi plat
formami. Tvar, ve kterm jsou implicitne nastaven databzov
servery schopn rozeznat v podmnkch obsahujcch porovn
vac opertory konkrtn datum a cas, je v tabulce:
'Ql Server
' 03 .28.2001 13:30:22'
ORACLE
TO_DATEC'01.05.2001 13:30:22' , 'dd .mm.YYYY, HH24:M1:SS' )
MySQL
' 28 .03.2001 13:30:22'
Logick opertory
NOT (nebo ) Kombinace se uplatn, pokud je nsleduj-
c podmnka nepravdiv.
AND (nebo I I) Kombinace se uplatn, pokud jsou obe
podmnky pravdiv.
OR
(nebo &&) Kombinace se uplatn pokud je alespoi1
jedna z podmnek pravdiv.
priorita opertoru
1. BINARY
2. NOT
4. - (unrn minus)
5. * / %
6.
+-
7.
8. &
9. I
10.
< >= =
IN IS LIKE REGEXP
11. BETWEEN CASE
12. AND
13. OR XOR
58
I \
ei;l
) I
~.~
) (
E~
) (
t==~
) (
~~
) I
I-=i iI
) I (
EI ti
) I (
~I II
)' -1
r
1;::1
I-II
1==1
i I
J;~ ~
~='~
~= ~
I I I
1;=1
ti ~
~
a ;
~
I ;
I (
I: 3
Funkce
Funkce jsou bloky kdu, kter vykonvaj na zklade paramet
ri'1poadovanou operaci, naprklad matematickou, statistickou,
nebo naprklad operaci s textovm retezcem, a v prpade bez
chybnho prubehu vrt nejak vsledek. Mueme je rozdelit do
dvou skupin.
Agregacn funkce
pracuj nad mnoinou rdku, pricem vra
cej jeden vsledek pro celou vstupn mnoinu daju. U nekte
rch funkc se pouvaj modifiktory DISTlNCT a ALL. Modifi
ktor DISTINC zpusob, e se kad hodnota zapoct jen jeden
krt, modifiktor ALLnaopak zpusob zapoctn prslun hod
noty pri kadm jejm i opakovanm vskytu.
Jednordkov funkce
pracuj jen s jednm rdkem, pricem
pro kad rdek vrac jednu hodnotu. Mohou mt libovoln
pocet parametru nebo nemus mt parametr dn. Parametrem
mue bt jmno sloupce, hodnota promenn nebo uivatelem
zadan konstanta. Obecn syntaktick zpis pro funkce v jazy
ce SQL je:
funkceCparam1, param2, ... ).
Pro vetinu prkladu jednordkovch funkc nm stac jednodu
ch testovac tabulka TEST. Tabulka m jeden sloupec NN
VARCHAR2 (1) a jeden zznam, kter ve sloupci NN obsahuje
hodnotu X . Nejjednodu prklad pouit t to tabulky je pou
it databzovho serveru jako kalkulacky.
SELECT 1 1 FROM test; [2J
Pro MS SQL a MySQL lze pout i zkrcen prkaz
SELECT 1 1.
59
Funkce
J
,...
-
5/21/2018 SQL-kniha
31/49
ABS
61
[240J
ORACLE
BIT_TO_NUM
ATAN
BIT_TO_NUM (posloupnost)
FlInkce BIT_TO_NUM prekonvertuje binrn cslo na dekadick.
Bin,rn cslo je reprezentovan posloupnost nul a jednicek
odd(]ench crkami.
5[L[CT BIN_TO_NUM(I.I.l.l.0.0.0.0) FROM test;
Kapitola
8 -
Funkce
kitml ';IIICI
IISIN(0,5) FROM test;
r~~II. ~,%359lJ17559829893]
.iiI
~ l~INrAX~.
\TIINII)
) I
I
l, lInkce i\Ti\N vrt hodnotu hlu v radinech, kter je vsled-
. . kelll inverzn goniometrick funkce tangens s parametrem n.
I ~I scu:cr IITIIN(0.5) FROM test;
::::
I iI~
) I ( I (U6364760900080609]
i AVG
I
E-
I .rNTAxE IIVG([O ISTI NCT I ALLJ vraz)
~;;: ~ .
i \gregacn funkce AVG vrt aritmetick prumer z mnoiny hod-
j -
I
I
nol. Z matematickho hlediska je to soucet hodnot vydelen
~_ ~ jejich poctem. Do poctu se nezahrnuj hodnoty NULL.
.-CI
--I . SELECT AVG(mzda) AS Prumerna mzda FROM pracovnici;
E Prumerna mzda
I I I
U U
E iI 30600.00
~ .
I_I I
~i
~rNTAXE
I~I
I
I
I~I ;ij
II mu
I~-=II ;J
I~~~
ji (
'~ri~
[l80.0J
[lOJ
[24.01.03J
Funkce ABS vrac absolutn hodnotu csla n. Kladn cslo zusta
ne nezmenen, zporn cslo se zmen na kladn. Naprklad:
SELECT ABS(-10) FROM.test;
SELECT ACOS(-I) *180/PI() FROM test;
ORACLE
ADD_MONTHS
SELECT ACOS(-I) FROM test;
[3.1415926535897931J
ACOS
Funkce ADD_MONTHS vrt nov datum, vytvoren z puvodn
ho data, kter bude posunut o dan pocet mescu.
Pokud chceme zskat vsledn hel msto v radinech ve stup
nch, mueme pout naprklad prkaz:
Funkce ACOS vrt hodnotu hlu v radinech, kter je vsled
kem inverzn goniometrick funkce kosinus s parametrem n.
SELECT ADD_MONTHS(SYSDATE. 2) FROM test;
ASIN
Funkce ASIN vrt hodnotu hlu v radinech, kter je vslcd
kem inverzn goniometrick funkce sinus s parametrem n.
r~ 4 ~BS (n)
~NI4 ~ACOS (n)
~I~~DD_MONTHS(datum. pocet_meScu)
~X~J4 E
ASI N(n)
r E ~
-
5/21/2018 SQL-kniha
32/49
Funkce I I I
-------------------l.
I I
:CI.
) I I
~I.
J )irNrAx~ COS(
JI)
~i'
\ll1k~~COS vrt hodnotu kosinu hlu, pricem hel zadvme
r:itli:ll1ech.
~i LI SIII:CT COS(0.8) FROM test;
~ . IO.G9G70670934716539J
) I I
COUNT
~I NTAXE COONT([DISTINCTIALLJ vraz)
I Jr
IjJC
Agregacn funkce COUNT vrt pocet hodnot v mnoine daju.
I
Ve spojen s klauzul DISTINCT mueme zjisti t pocet zznamu
I=iCI.
bez duplicit.
I -, I ( 'om.
korektora; Funkce COUNT(*) je vjimkou v agregacnch
~G: ~
funkcch, nebot poct i zznamy s hodnotami NULL.)
-I' I ml I
SELECT COUNT(*) AS Pocet pracovniku FROM pracovnici;
~=l~
I
I
wm
~~~~~ ~~ ~~~~ ~~
EI
_I
~i ~ CURDATE
~I ~
My5QL
~ I ~YNTAX( CURDATE()
a.;
i
~
Funkce CURDATE vrt aktuln datum v retezcovm tvaru
~_:::I RRRR-MM-DD nebo v cselnm tvaru RRRRMMDD,pokud pou-
. i ~ ijeme cselnou konstantu .
. ~ SELECT CURDATE(); [2004-12-09J
j ~:.:.t.Wo:II S ELECT CURDA TE () + o; [20021209J
I; u
ii
i -(
~~ J
SELECT nazev, CAST(nazev AS char(5)) FROM pobocky;;
SELECT nazev, CONVERT(char(5). nazev) FROM pobocky;
63
Kapitola 8 Funkce
RESEA
SALES
Hl ' ,I I IHCI I
',1111.:
cos
[4J
ACCOU
RESEA
SALES
ACCOU
[ , mJ )
nazev
ACCOUNTING
RESEARCH
SALES
Funkce CAST je urcen pro konverzi datovch typu.
SELECT nazev, CAST(nazev AS char(5)) FROM pobocky;
CAST
SELECT CEILING(3.14159265359) FROM test;
CEILlNG
Funkce CEILING vrac hodnotu nejmenho celho csla, kter
je vet ne parametr n.
CONVERT
Funkce CONVERT je urcen pro konverzi datovch typu, pri
cem lk je pomocn parameter pro rozsah datovch typl 1
nchar, nvarchar, char, varchar, binary a datovho typu varbina
ry a parametr styl slou pro formtovn hlavne pri prevodu
data a casu nebo csel na retezce.
Nebo;
ACCOU NT NG
nazev
6
.~ ~ A ~
AST (vraz AS datov typ)
mt~~EILING(n
at
Server
siijt~~CONVERT (datov typ [ ( dlka) J , vraz [ , styl J)
Funkce
E-
r
tli
-
5/21/2018 SQL-kniha
33/49
URTIME
URRENT_TIMEST MP
65
Kapitola 8 - Funkce
Zkratka dne v tdnu
Sun ..Sat
Den v mesci 00..31
Nzev mesce January..December
Nzev dne v tdnu SundaV..Saturdav
Porad dne v mesci podle angliCk specifikace radovch cslo
vek (1St, 2nd, 3rd,
Rok cslem na 4 cslice
Rok cislem na 2 cslice
Rok pro tden zacnajc nedel i na 4 cslice (pouv se ve spo
jen s '%V')
Rok pro tden zacnajCpondelkem na 4 cslice (pouv se ve
spojen s '%v')
%x
%X
%D
%M
%d
%y
%y
Funkce DATE_FORMAT vrt datum ve tvaru urcenm formto
vacm retezcem. Syntaxe formtovacho retezce udv tabulka:
speCifiktor popis
%a
%W
D TE_ DD
I I I
~liI
I
I (
rU
) I
I MySQL.
I.NTAXE
UATC DD(uatum, INTERVAL vraz. typ)
) I ( FUllkct: Di\TE_ADD pripoct hodnotu specifikovanou pomoc
ri
U
paral11t: trLIvraz a typ. Vraz se vkld ve tvaru retezce, kter jev tahulce u funkce EXTRACT,naprklad pro interval
DAY_SECOND
E.: -
St: vkl;d retezec ve tvaru
dny hodiny:minuty:sekundy .
Vraz
I
I _I 11IlICt i zporn cslo.
~ SELECT DATE ADD( 2001-07-02 01:02:03 . INTERVAL 3 HOUR):
I [2001-07-0204:02:03J
~I ~ SELECT DATE_ADD( 2001-07-02 01:02:03 . INTERVAL 3 MONTH);
I
I
I
[2001-07-0204:02:03J
-=:=
SELECT DATCADD( 2001-07-02 01:02:03 . INTERVAL 1 1:1:1
l'
DIIY_ SECOND); 2001-07-03 02:03:04J
1==1
D TE_FORM T
I
-I
I MySQL.
r-
ilNTAXE
DATE_ FORMAT
-
5/21/2018 SQL-kniha
34/49
67
Kapitola 8 - Funkce
DATEDIFF
SQL Server
DIITE01FF(cst_data, datum1, datum2)
Funkce DATEDIFF vrt pocet sekund, dn, . ..roku, podle zada
nho parametru cscdata, kter je mezi dvema daty, kter jsou
zadan parametry datum1, datum2. Pokud chceme zjistit pocet
dn lJ)ezi 1. lednem 2001 a 1. lednem 2002, pouijeme prkaz:
SUHT OATEDIFF(day.
01/01/2001 . 01/ 01/2002
FROM test: [365]
Neho prkazem zjistme, kolik sekund m jeden den.
SELECT oATEAOOlday,-7,GEToATEI) FROM test;
_L2002-11-17 10:43:06. 687]
Pokud zadme parametr cslo zporn, vrtme se o sedm dn
do minulosti.
DATEADD
SQL Server
DIITEIIoo(cst_datumu, cslo, datum)
Funkce D TEADD vrt novou hodnotu data a casu, vygenero
vanou z pvodn hodnoty, kterou udv parametr datum. K tto
hodnote se pripoct prslun pocet (dan parametrem cslo)
c:Sl data, prpadne casu. Pokud bychom chteli posunout dne
n dalum o 7 dn, pouili bychom prkaz::
SEI. ECT oATEAOOlday,7,GEToATE( FROM test:
_[2002-12-01 10:41:06.753]
', 1 11
1I\( '( ;D TE_SUB odpoct hodnotu specifikovanou pomoc
P:II' :II11clr( 1raz a typ. Vraz se vkld ve tvaru retezce, kter
jc v 1:lhuln; u funkce EXTRACT.
~;ILECl DIITE_SUB( 2001-07-02 01:02:03 , INTERVAL 11:1:1
_DIIY_SECONo); [2001-07-01 00:01 :02]
~.~
-
II
'I~
I
I
I;~
I
II
II.
) I \
~I.
~ .
I
~ I
NfAXE
EJ. 111
~411
rkJ
iI__
jlJ Wll
1;=
-
~
-II~I
EI411
~
~~
' ,.
-=:11 II
I~ ~
ia;-
~ m1
IJ;J
I~ \
Den v mesci
0..31
Mesc 01..12
Mesfc (1..12)
Zkratka mesce (Jan..Dec)
Den v roku
001..366
Hodiny
00..23
Hodiny 0..23
HOdiny
01..12
Hodiny
01..12
Hodiny (1..12)
Minuty
00..59
cas ve 12hodinovm formtu hh:mm:ss [AP/M
cas ve 12hodinovm formtu
hh:mm:ss
Sekundy (00..59)
Sekundy (0..59)
AMnebo PM
Den v tdnu
0=Sundav..6=Saturdav
Tden
00..53 ,
zacn nedel
Tden
00..53 ,
zacn pondelm
Tden
01..53 ,
zacn nedeJ[(pouva seve spojen s '%X')
Tden
01..53 ,
zacn nedel (pouva seve spojen s '%x)
Znak %.
DATE_ UB
66
Specifiktor popis
%e
%m
%c
%b
%j
%H
%k
%h
%1
%1
%i
%r
%T
%5
%s
%p
%w
%U
%u
%V
%v
Funkce
My5QL
SYNTAXE oATE_SUB(datum, INTERVAL vraz, typ)
Naprklad pro vpis data a casu podle naich zvyklost bycholJ)
pouili formtovac retezec
'%d.%m.%Y %H:%i :%5':
El1D SELECT oATEJoRMAT( '2001-07-02 01:02:03'. '%d.%m.%Y
-%H:%i :%S '); [ 02 .07.200101 :02:03]
F=-~
I
Funkce
-
5/21/2018 SQL-kniha
35/49
68
Prpadne zjistme, kolik dn zbv do Vnoc.
SELECT OATEOIFF(day, GETOATE(). 12/24/2002 ) FROM test; [30J
DAV
S'Q1. Server
~y~t~
DAY(datum)
Funkce DAY vrt cselnou hodnotu dne ze zadanho data,
naprklad;
SELECT DAY( 11/24/2002 ) FROM test; [24J
[228J
[15J
[SaturdayJ
Funkce DAYNAME vrt nzev dne v tdnu ve forme textovho
retezec.
Funkce DAYOFMONTH vrt cselnou hodnotu odpovdajc
poradovmu cslu dne v mesci, tedy v rozsahu hodnot 1 a 31.
Funkce DAYOFWEEK vrt poradov cslo dne v tdnu podle
standardu ODBC 1 - nedele, 2 - pondel, .... 7 - sobota).
SELECT DAYOFWEEK( 2000-01-01 ); [7]
DAVOFWEEK
DAVOFVEAR
DAVOFMONTH
DAVNAME
tC:iJ
(
~i1J
I MySQL
~
j]NTAXE DAYNAME( datum)
(
~i
I
1iC:.
P
S ELECT DAY NA ME ( 2000-01-01 ) ;
I
FCiI
MySQL
I::
~N TA X~ D AY OFM ON TH (d at um)
I
~i
I
~ am SELECT DAYOFMONTH( 2000-01-15 );
I
~ I
MySQL
~ QNTAXE DAYOFWEEK(datum)
i .
E? 1J
~::-mm
~m
I=- II
MySQL
- I YNTAX~ DAYOFYEAR(datum)
I:- I II
Funkce DAYOFYEAR vrt poradov cslo dne v roku, tedy
I
v rozsahu hodnot 1 a 366.
~ I i1 H.t41 SELECT DAYOFYEAR( 2000-08-15 );
[
a;-I 1I
\
~I JI
[86~OOJ
ELECT DATEDIFF(second, 0I/0I/2002 , 0I/02/2002 ) FROM test;
DATEPART
5 01.
Server
~~~T~DATEPART(cst_datumu. datum)
Funkce DATEPART vrt cselnou hodnotu csti data zadanou
prvnm parametrem pro datum zadan druhm parametrem.
Naprklad zjistme aktuln mesc:
SELECT DATEPARHmonth. GETDATE( FRDM test; [lIJ
DATENAME
5'Q1.
Server
~~~~ DATENAME(cst_datumu. datum)
Funkce DATENAMEvrt pojmenovanou cst data zadanou prv
nm parametrem pro datum zadan druhm parametrem. Napr
klad zjistme aktuln mesc;
SELECT DATENAME(month. GETDATE( FRDM test; [NovemberJ
Funkce I Kapttola 8 - Funkce
-
5/21/2018 SQL-kniha
36/49
---------------I. _
DBTIMEZONE ~ EXTRACT '
ORACLE I I
MWSCll
~ ijI~ E~BTIMEZONE ~ .NrAx~ I:XIHIICr Lyp FROM datum)
~.
.J.
~.
,
~.
t=.
II==
~ .
~ ~
~
ji
~ ~
.-==
ID
IC-
1
ij
. ~
3
I
SELECT SYSDATE. EXTRACT YEAR FROM SYSDATE) FROM DUAL;
Funkce DBTIMEZONE vrt nastavenou hodnotu casovho
posunu databzovho casu oproti svetovmu casu GMT.
71
[3J
[2J
[1]
[2J
[7]
[2001]
[203J
[102J
[201J
Roky
roky-mesice
hodiny:minuty:sekundy
dny hodiny:minuty
dny hodiny:minuty:sekundy
Mesce
minuty:sekundy
hodiny:minuty
dny hodiny
Sekundy
Minuty
Hodiny
Dny
Funkcevrt
EXTRACT SECONO FROM 2001-07-02 01:02:03 );
EXTRACT MINUTE FROM 2001-07-02 01:02:03 ):
EXTRACT HOUR FROM 2001-07-02 01:02;03 ):
EXTRACT DAY FROM 2001-07-02 01:02:03~):
EXTRACT MONTH FROM 2001-07-02 01;02:03 ):
EXTRACT YEAR FROM 2001-07-02 01:02:03 ):
EXTRACT MINUTE_SECOND FROM 2001-07-02 01:02:03 ):
EXTRACT HOUR_MINUTE FROM 2001-07-0201:02:03 ):
EXTRACT DAY_HOUR FROM 2001-07-02 01;02:03 );
Naprklad:
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
IIOUI{
Typ
Sr:COND
MJNUTE
l,'lIlIkce I~XTRACTvybere tu cst data nebo casu, naprklad rok,
IIIl:sc, den, hodinu, minutu, sekundu, kter je zadan paramet
rl:lll typ. Vsledek tvor kompaktn retezec. Naprklad cas
III:II?:03 je vyjdren retezcem 10203. V na tabulce jsme kvuli
prehlednosti vkldali znaky, kter se zadvaj ve funkcch dato
v a casov aritmetiky.
)i\Y
MONTH
YEAR
MINUTE SECOND
IIOUR_MINUTE
DAY_HOUR
YEAR_MONTH
IIOUR_SECOND
Di\Y_MINUTE
DAY_SECOND
2004
[+OI;OOJ
EXTRACT YEARFROMSYSDATE)
ORACLE
SELECT DBTIMEZONE FROM test;
EXP
Funkce vrac hodnotu n-t mocniny csla e (zklad prirozench
logaritmu). Funkce je inverzn k funkci LN.
SELECT EXP 3) FROM test; [20.085536923187668J
EXTRACT
Funkce EXTRACT na zklade specifikace urcen prkazovm
retezcem vrt poadovan csti, ze kterch se skld datum,
kter je tak soucst prkazovho retezce. Prkazov retezec se
zadv ve tvaru cst FROM datum , kde z data mueme
vybrat klasick komponenty, naprklad YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND (rok, mesc, den, hodina, minuta,
sekunda) nebo TIMEZONE_REGION, TIMEZONE_ABBR.
SYSDA TE
08.01.2004 21;46:50
70
~ 8,~gE
EXP n)
~ 8I~~XTRACT prkazov_retezec)
r c-~_~~~~ ,
Funkce
.
-
5/21/2018 SQL-kniha
37/49
7
sig ~ FLOOR(n)
Funkce FLOOR vrac hodnotu nejvetho
lho
csla, kter je
men ne parametr n.
MySQL
~ ~fAXE
FROM_OAYSCpocet dn)
Funkce FROM_DAYS vrt datum, kter vznikne pripoctnm
zadanho poctu dn k poctku naeho letopoctu.
SELECT FROM_OAYS(500000); [1368-12-14]
7
dn zbv od
Kapitola 8 Funkce
[30.11.2002 20:14:41]
[2002-11-24 21:48:58.443] ,
HOUR
CHAR
~ .
ei~
~ i_I ',IIICI lIIcIIIICDIlTEC) FROM test;
J;'
r
r M .6QL
~ .NIAX~ IIOUr(CCdS)
I
1,'llnkCl;I-IOURvrt hodnotu hodin ze zadanho casu.
: r :m W:T IIOUR{'IUH9' [111
I
~ ,aNIAX~ CIIA (Ccslo)
I Funkce CHAR prekonvertuje binrn reprezentaci znaku na
~ 141
znale
. I
.Jri.rm.1I
SELECT CHAR(65) FROM test; [A]
:;z: 1 SU.ECT CHAR(65) +CHAR(66) +CHAR(67) FROM test; [ABC]
I
~I
LAST DAV
~ .. ORAC~E'
I SYNTAXE LIIST_DAYCdatum)
i
Funkce LAST_DAY vrt nov datum, vytvoren z puvodnho
ata tak, e nastav posledn den v mesci.
~i
t..
S[LECT LAST_OAYCSYSDATE) FROM test;
E=j
Pomoc tto funkce lze naprklad zjistit, kolik
onkrtnho zadanho data do konce mesce:
~i~
SELECT SYSDATE, LAST_DAYCSYSDATE) - SYSDATE
'''Do konce mesce zbyva dnu FROM test;
r~SIl ~
I~~ :- ~::[:~:~------------~_~~~~:_~:~:c:_~~~~~_~~~
n
?~.11.2004 20:19:36 6
I~III iI
I
~j~.
H ~
[200107]
[10203J
[20102J
[2010203J
[3]
[2002-11-24 22:48:58.443]
SELECT EXTRACTCYEAR_MONTH FROM 2001-07-0201:02:03 ) ;
SELECT EXTRACTCHOUR_SECONO FROM 2001-07-0201:02:03 ) ;
SELECT EXTRACT(OAY_MINUTE FROM 2001-07-02 01 :02:03 );
S ELECT EXTRAC TCOA Y_SEC ON O FROM 2001-07-02 01:02:03 );
FLOOR
SELECT FLOORC3.14159) FROM test;
FROM_DAVS
SELECT GETDATEC) FROM test;
GETDATE
5'01. Server
~ ~f~E GETDATEC)
Funkce GET DATE vrt aktuln hodnotu data a casu, napr
lad;
GETUTCDATE
5'Q1 Server
~~ ~ GETUTCDATEC)
Funkce GETUTCDATE vrt aktuln hodnotu data a casu pf
-
5/21/2018 SQL-kniha
38/49
LEFT
CURRENT_TIMESTAMP
OCAL1IMESTAMP
?~.11.04 20:06:05.000001 24.11.04 20:06:05.000001 +01:00
MAX
Kapitola 8 - Funkce
LOWER(retezec)
Funkce LOWERprekonvertuje vechna psmena vstupnho tex-
tovho retezce na mal psmena abecedy. Ostatn znaky, napr-
klad cslice a jin, zustanou nezmenen.
SELECT LOWER(' Nahoru - Dol u 123 cH ) FROM test:
-[nahoru - dolu 123 ctJ
LTRIM(retezec)
Funkce LTRIModstran vechny mezery z lev strany Cod zact-
ku) vstupnho textovho retezce.
SCLECT LTRIM(' Pred textem je 5 mezer') FROM test:
-[f'r'ed textem je 5 mezerJ
75
MAX(vr'iJz)
i\gr
-
5/21/2018 SQL-kniha
39/49
Minimal ni mzda
50000,00
10,8003069
[January]
25.11.02
77
SYSOtlTE MONTHS_BETWEEN(SYSDATE,TO_DATEC '1.1.2002', 'DD.MM.YYYY'))
Desetinn cslo vyjadruje zlomek mesce, v naem prpade pri-
hline H desetin mesce (presne
0.8003069).
SELECT MONTHNAME( '2000-01-01');
ORACLE
MONTHS_BETWEENCdatuml, datum2)
Funkce MONTHS_BETWEEN vrt cslo (datov typ NUMBER,
v tomto prpade desetinn), kter vyjadruje pocet mescu mezi
dvema daty. Pokud je parametr datuml vet ne datum2, je
vsledn cslo kladn, v opacnm prpade je vsledkem cslo
zporn.
SELECT SYSDATE, MONTHS_BETWEEN(SYSDATE,
-TO_DATEC '1.1.2002', 'DD.MM.YYYY')) FROM test;
MONTHS_BETWEEN
MySQL
MONTHNAME(datum)
Funkce MONTHNAME vrt nzev mesce ve forme textovho
rL:lCZce.
Funkce I vIONTHvrt cselnou hodnotu mesce ze zadanho
data, naprklad;
SELECT MONTHC'11/24/2002') FROM test; [11]
MONTHNAME
~iI
~D
~ itfID
I
J:i;1 a
-I
(I i NTAXE
ILJa
,~~
e
CI
1==1 ft
. j ~NTAXE
:1==1
a
:~ a
iE G
\~J:O
I
_J
.mII m
:~1a
IEII
CI
IE ?'G
IJ;ii:::
I~=
I~J
[I
[35]
ELECT MINUTEC'1l;35;59');
7
MINUTE
SELECT MAX(mzda) AS Maximalni mzda FROM pracovn ici;
MIN
18000,00
Funkce MAX a MIN mueme pout prakticky pro kad dato-
v typ. V prpade cselnch datovch typu je maximum a mini-
mum plne jednoznacn. U datovho typu datum bude maxi-
mum predstavovat nejnovej zznam a minimum zznam nej-
star. U znakovch datovch typu budou hodnoty serazen
podle abecedy.
~ Maximal ni mzda
1fLi ~.
MINCvraz)
Agregacn funkce MIN vrt minimln hodnotu z mnoiny
daju. Hodnoty NULLse ignoruj.
SELECT MIN(mzda) AS Minimalni mzda FROM pracovn ici;
My5QL.
X t~E
MINUTECcas)
Funkce MINUTE vrt hodnotu minut ze zadanho casu.
MONTH
s'Ql Server
:S N f.~~
MONTH(datum)
~.
Kapitola 8 - Funkce
r
~1i J
Funkce
-
5/21/2018 SQL-kniha
40/49
ORACLE
25.11.02 01.12.02
SYSDATE NEXT_DAY
9
[3J
Funkce R IGH T vrt dan poce t z na ku, kter urc me parametrem
dlka z prav cs ti od konce) vs tupnho textovho retezce.
SI:l.ECT RIGHT( 'Jozefina Kristina Novakova' ,8) FROM t est; [Novakova]
REPLACE
e i1I
1311
1, l lllk \ ; QIJAlrl EI{ vrt por adov cs lo kvar tlu v r oku, tedy
~i
v
1
I/.s:d
U
hodnot 1 a 4.
gl~ ~IILCI iJlJi\I{JEIW2000-08-15');
~I;a
I
SYNTAXE
REI'LAC[C ~eLezec1. retezec2 [, retezec3J)
E:i
Funkce ImPLACE vrt nov retezec vytvoren z puvodnho
t t ce rctezec1, pricem nahrad vechny vskyty retezce2
ei
retbcem3. Pokud parametr retezec3 chyb, budou vechny
skyty retezc e2 v retez cn vymaz an .
E:i
SELECT REPLACEC' Snehurka cekal a'. 'Snehurka', 'Popel ka')
rROM Lest; [Popelka cekalaJ
EI. SELECT REPLACEC'JACK and JUE', 'J', 'BL') FROM test;
~I -UJLACK and BLUEJ
~I.
)YNTAX~
RICHT
I=i=, IU G HT( retezec, del ka)
sJ.
,,~ ~l[Ll)j
'5i .
IE::: ROUND
_I, ~NTAX ROUNOCn ,m)
~-I
I -,
Funkce ROUND vrac hodnotu cs la n zaokrouhlenho na poa-
1rc=J
dovan pocet des etinnch mst. Z aokrouhlen s e provede podle
I
zn:mch matematickch pravidel. Parametr m ud v pocet plat-
I~::'~
nch ms t za desetinnou crkou. Pokud je tento parametr zpor-
I
n, kles pocet platnch cslic i pred des etinnou crkou.
I~ I
~1IlIIU.ECT ROlJNOC3.14159) FROM test; [3.00000J
II l aJ :lInelr m
=
-2 znamen zaokrouhlen na stovky.
I
J;
I iI
/.
~T~
[2002-12-09 19;17;18J
[20021209191718 J
SELECT NOW();
SELECT NOW()
+
O;
NOW
Funkce NOW vrt aktuln datum ve tvaru RRRR-MM-DD
HH ;mm:SS nebo R RR RMMD DH HmmSS, pokud pou ijeme
cselnou konstantu.
Funkce NEXCDA Y vrt nov datum, vytvoren z puvodnho
data, kter by pripadlo na nsledujc zadan den v tdnu. Para
metr den_v_tdnu obsahuje den v tdnu v nastavenm jazyce,
v naem prpade v cetine.
SELECT SYSDATE. NEXT_DAy(SYSDATE. 'NEOELE') FROM test;
NEXT_DAV
POWER
F unkce POW ER vrac hodnotu n- t mocniny cs la m.
SELECT POwERe2,10) FROM test; [1024J
OUARTER
jx~t~~ NEXT_DAYCdatum. den_v_tdnu)
MySQL
~~f~i.
OWe)
MySQL
xrt: ME
QUARTERedatum)
l~ ~~OWER(m, n )
Kapitola 8 - Funkce
t-.=W
Funkce
-
5/21/2018 SQL-kniha
41/49
80
RPAD
ORACLE
~rIi,XE RPAD(retezecl. dlka. retezec2)
Funkce vrt nov retezec, vytvoren z puvodnho retezce rett:
zec1 tak, e dopln zprava cyklicky se opakujc posloupnost
znaku danou parametrem retezec2. Nov retezec bude Inl
dlku danou parametrem dlka.
SELECT RPAD(jmeno. 20. '*') AS pracovnk FROM pracovnci;
81
') FROM test;
RTRIM(retezec)
RTRIM
I IUICOVN I K
Funkce RTRIModstran vechny mezery z prav csti (z konce)
vstupnho retezce.
Graf mezd
Novdk MarLin********
Kernovu ana
Koumal PeLr*********
Zou~ck Miroslav*****
II cl1i1()ana**********
Novak Martin
Kernova Jana
Koumal Petr
Zoubek Miroslav
Ticha Jana
I ullkce je uitecn hlavne pro kreslen prehlednch vodorov
nch sloupcovch grafu v textovm mdu.
Potkbujeme jen nahradit cselnou hodnotu retezcem proporci
oll: ln dlky, sloenm z prslunch znaku, naprklad hvezdi
cek. Pokud bychom tento pomer nechteli stanovit fixne, ale
vdy jej vypoctat tak, aby maximln hodnota predstavovala
sloupec o rce 50 znaku, pouijeme vnoren dotaz SQL. Zby
tek je u jednoduch matematika.
SELECT RPAD(jmeno.20) I I RPAD(' 50* mzda
(SELECT MAX(mzda) FROM pracovnici), '*') AS Graf mezd
-'FROM pracovni ci;
SELECT RTRIM( 'Za textem je 5 mezer
-'[Za textem je 5 mezerJ
EU
E~
I
~:a
I
~I iiI
-
IF=I
a
l.Ja
rJiG
tEto
J.Jm[l 1
~:=I U-
-=1
(I==i
1 l
a
1Er
1(1
~=ii l1
~::ii
JNTAXE
I=f: ilI
1,,--11
Dm
II
IS;--II
II
I-=- II ~
~
I~~N ~
II
[1500J
ROUND
SELECT ROUND(1492,-2) FROM test;
ORACLE
i~JA[~
ROUND(datum, zaokrouhlen)
Funkce ROUND vrt zaokrouhlen datum. Pokud nezadme
parametr zaokrouWen, zaokrouhluje se na cel dny.
Parametr zaokrouhlen urcuje, na jakou casovou dobu bude
datum zaokrouhlen, naprklad;
YEAR -
zaokrouhlen na cel roky (od l.cervence se zao
krouhluje nahoru),
MONTH - zaokrouhlen na cel mesce (od 16. se zaokrouhlu-
je nahoru),
DDD -
zaokrouhlen na cel dny,
DA Y - zaokrouhlen na prvn den v tdnu,
HH -
zaokrouhlen na cel hodiny,
MI - zaokrouhlen na cel minuty.
SELECT SYSDATE, ROUND(SYSDATEJ FROM test;
-'[24.11.2002 21;13;44 25.11.2002 OO;OO;OOJ
Funkce
Kapitola 8 - Funkce
E;.
-
5/21/2018 SQL-kniha
42/49
82
SICN
83
153000.00
SUM( [D ISTINCTIALLJ vraz )
gregacn funkce SUM vrt soucet hodnot v mnoine daju.
51: I. I:CI SUM(mzda) AS Mzdy cel kem FROM pracovn ic i:
Funkce SUBSTRING vrt podmnoinu vstupnho retezce, kter
je urcen zactkem a poctem znaku.
SI~I.ECT SUBSTRING( 'Jozefina K.ristina Novakova' .10.8)
- RDM test; [KristinaJ
13371.611720357423
SURSTRING(fetzec. zacatek, dlka)
SUM
St.i1llllardni odchyl ka mzdy
Sl N( II)
Jltll1lm.:
SIN
vrt hodnotu goniometrick funkce sinus, kde
p;lr:lIl1elr n je hel v radinech.
~;III:CI 5IN(PI()/4) FROM test; [0.70710678118654746J
IIwly col kelll
SUBSTRINC
STDEV
STD[V([DISTlNCTIALLJ vraz)
gregacn funkce STDEV vrt standardn odchylku (odmocninu
t vari:lI1ce) pro skupinu zznamu.
~;L I. LCI STDEVCmzda) AS Standardni odchy lka mzdy FROMpracovni ci
SIN
E ~
e: G
I
SYN IAXE
E,Q
I
~I
gJa1l
~ a
e GHAX~
I
E, GI
I
Jmz;JJJ
'CI
~ 61111m
lEn(I
IE ~J
(I
I ,
(~.I (lITAXE
~~I:
]I
ie: 'rl
~Ja
(E'-J
.fAXE
(E; h
I~: am
-II
I
~':-I
(~- ;a
I
[59J
ELECT SECONO(' 11: 35: 59' );
SESSOINTIMEZONE
SECOND
ORACLE
~ ij~~ESSIONTIMEZONE
Funkce SESSIONTIMEZONE vrt nastavenou hodnotu casov
ho posunu pripojen (session) oproti svetovmu casu GMT.
SELECT SESSIONTIMEZONE FROM test; [+01:00J
SEC_TO_ TIME
MySQL
~ ~I~.
SECTO_TIMECpocet sekund)
Funkce SEC_TO_TIME prevede pocet sekund od pulnoci na
prslun cas. Vsledek vrt ve tvaru 'HH-MM-SS' nebo
HHMMSS, pokud pouijeme cselnou konstantu.
SELECT SEC_TO_TIME(3000); [00;50;00J
SELECT SEC_TO_TIME(3000)+ o [005000J
MySQL
Iijf~~SECOND(cas)
Funkce SECOND vrt hodnotu sekund ze zadanho casu.
ijf~g
SIGN(n)
Funkce SIGN ns informuje o znamnku csla n. Pro kladn csla
vrac 1, pro nulu vrac O a pro zporn csla vrac hodnotu -I.
SELECT SIGN(-5) FROM test; [-IJ
SELECT SIGN(O) FROM test; [OJ
SELECT SIGN(5) FROM test; [IJ
Kapitola 8 - Funkce
I
Funkce
-
5/21/2018 SQL-kniha
43/49
84
MySQL
st~f~ SYSDATE()
ORACLE
~f~( SYSTIMESTAMP (presnost)
85
[41759J
[0.99999999999999989J
ORACLE
TO_DATE
TAN( II)
I-' l l1kc
-
5/21/2018 SQL-kniha
44/49
SELECT TO_DATE( 25.12 .1998 13:30:22 ,
dd.mm.YYYY, HH24:MI:SS ) FROM test;
nac pro formtovn data a casu vypeme prklad u ns nej
pouvanejho formtu.
87
Meslc vyjdren pomoc trojpsmenn zkratky, kde prvn psme
no zkratky je velk
Mescvyjdren celm jmnem velkmi psmeny
Mescvyjdren celm jmnem, kde prvn pismeno jmna je
velk a ostatn psmena jsou mal
Mesc vyjdren rmskmi cslicemi
Kvartl (ctvrtrok)
Posledni dvojCSlroku
Rok vyjdren pomoc ctyr cslic
Symbol pro vyjdren sekund v rozpet mnuty
Symbol pro vyjdren sekund od pulnoci
Symbol pro vyjdren tdne v rmci mesce
Symbol pro vyjdreni tdne v roce
Symbol pro vyjdren roku seznamnkem, t.j . roky pred nam
letopoctem maj znamnko -
Symbol pro slovn vyjdren roku velkmi psmeny
Symbol pro slovn vyjdren roku, pricem prvn psmeno je
velk a ostatn psmena jsou mal
Symbol pro vyjdren posledn cslice roku
Symbol pro vyjdren poslednch dvou cslic roku
Symbol pro vyjdren poslednch tr cslic roku
Symbol pro vyjdren vech ctyr cslicroku
Symbol pro vyjdren vech ctyr cslic roku scrkou
Funkce
TO_DAYS vrt pocet dn od poctku naeho letopoctu.
SEtICT TO_DMS( 2002-12-09 ); [731558J
YYYY
Y,YYYY
Yei1r
yyy
TO_DAYS
y
Y R
yy
w
Syyyy
ww
RRRR
SS
SSSSS
RM
Q
RR
MONTH
Mon
Month
MySQL
.YNrAX~
iO_OflYS(< atum)
I
E:.
I
I
~I
I
~I.
E
I
~I.
g
E
I;i:
I;i:
-
EE
IE=
I~=
_II
I~=ii
fE=-1I
II
[~-ii~
~~=II
ill
Ij:; ~II iiI
U~
III
Popis
Symbol pro n letopocet bez interpunkcnch znamnek
Symbol pro n letopocet s interpunkcnmi znamnky
(Before Christ) symbol pro vyjdren etapy pred nam letopo
ctem bez interpunkcnch znamnek
Symbol pro vyjdren etapy pred naim letopoctem s inter
punkcnmi znamnky
Vyjdren stoleti ( toto cslo je o jednicku vy ne prvn dvojcsl
roku)
Celjmno epochy
Zkrcen jmno epochy
Den v tdnu vyjdren slovne velkmi psmeny
Den v tdnu vyjdren slovne, pricem prvni psmeno slova je
velk a ostatn psmena jsou mal
Den v mesci vyjdren cslem
Den v roce vyjdren cslem, poct se od prvnho ledna
Den v tdnu vyjdren pomoc trojpsmenn zkratky jmna dne
Symbol fze dne (dopoledne) bez interpunkce
Symbol fze dne (dopoledne) s interpunkc
Symbol fze dne (odpoledne) bez interpunkce
Symbol fze dne (odpoledne) s interpunkc
Hodina
Hoama vyjdren ve 12hodinovm formtu
Hodina ve 24hodinovm formtu
Symbol pro Julinsk kalendr
Symbol pro vyjdren minut v rozpet hodiny
Mesc vyjdren cslem
Mesc vyjdren pomoc trojpsmenn zkratky velkmi psmeny
Symbol
-
D
.D.
C
B.C.
-
CC
-
\
DAV
Day
-
DD
DDVM.M.M.M.HHH12-
H24
-
MI
-
MMON
86
Funkce
Kapi tola 8 - Funkce
e:;
I
-
5/21/2018 SQL-kniha
45/49
ORACLE'
88
89
Naprslun pozici je crka.
Naprslun pozici je tecka.
Csloje zobrazen jako hodnota vynsoben 10
*
n, kde n j e
pocet cislic zasymbolem v.
Csloje zobrazen ve vedeck notaci.
Csloje zobrazen velkmi rmskmi cslicemi.
Csloje zobrazen malmi rmskmi cslicemi.
Csloje zobrazen bez vodnch mezer.
popis
ORACLE'
Funkce TO_LOB prekonvertuje textov datov typy LONG
ncbo LONG RAW na datov typ LOB. Tuto funkci mueme pou
t
jcn v csti SELECTprkazu INSERT INTO.
TO_ LOB
symbol
INSERT INTO new_prinLmedia
(SELECT p.product_id, p.ad_id, TO_LOB(p.press_release)
-'FROM pm.print_media p);
TO_NUMBER
v
Rn
E