background image

Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63

e-mail: helion@helion.pl

MySQL. Leksykon 

kieszonkowy. II wydanie

Autor: George Reese
T³umaczenie: Tomasz ¯mijewski
ISBN: 978-83-246-1385-4
Tytu³ orygina³u: 

MySQL Pocket 

Reference, 2nd Ed

Format: B6, stron: 160

MySQL to jeden z najpopularniejszych systemów zarz¹dzania bazami danych 

Rozprowadzany na zasadzie open source, MySQL jest wykorzystywany jako zaplecze 
bazodanowe setek tysiêcy serwisów WWW, sklepów internetowych, blogów i galerii. 
Coraz czêœciej siêgaj¹ po niego tak¿e twórcy rozbudowanych aplikacji korporacyjnych, 
poszukuj¹cy stabilnej, bezpiecznej i wydajnej platformy do przechowywania danych. 
W najnowszej wersji, oznaczonej symbolem 5.0, dodano wiele od dawna oczekiwanych 
funkcji, w tym procedury sk³adowane, wyzwalacze, kursory i widoki. Poprawiono tak¿e 
mechanizmy sk³adowania danych. 

Jeœli jesteœ administratorem lub programist¹ baz danych, ksi¹¿ka 

„

MySQL. Leksykon 

kieszonkowy. II wydanie

”

 bêdzie dla Ciebie nieocenion¹ pomoc¹. W skondensowanej 

formie przedstawiono w niej wszystkie najistotniejsze zagadnienia zwi¹zane z instalacj¹ 
i konfiguracj¹ tego systemu, a tak¿e z zarz¹dzaniem nim i wykorzystywaniem go. 
Znajdziesz tu omówienie typów danych, poleceñ jêzyka SQL, funkcji i rodzajów tabel. 
Przeczytasz tak¿e o replikacji, procedurach sk³adowanych, narzêdziach dostêpnych 
z wiersza poleceñ i wyzwalaczach. 

• 

Pobieranie i instalacja MySQL 

• 

Replikacja danych 

• 

Narzêdzia wiersza poleceñ 

• 

Typy danych 

• 

Polecenia SQL 

• 

Operatory 

• 

Procedury sk³adowane 

Dziêki tej ksi¹¿ce Twoja praca z MySQL stanie siê szybsza i efektywniejsza

background image

3

Spis tre

ļci

Wst

ýp ............................................................................................5

MySQL 5  ........................................................................................7

Widoki

7

Trygery

7

Procedury skäadowane

7

Kursory

8

Nowe mechanizmy skäadowania danych

8

Zdarzenia bazy danych

9

1.  Instalacja ..................................................................................... 10

Pobieranie MySQL

10

Konfiguracja

11

Uruchomienie

14

Ustawianie hasäa gäównego

15

Replikacja

15

2.  Narz

ýdzia wiersza poleceħ ........................................................18

3.  Typy danych ................................................................................22

Liczby

23

ãaþcuchy

29

background image

4

_

MySQL. Leksykon kieszonkowy

 4.  SQL  .............................................................................................. 41

RozróĔnianie wielkoĈci liter

41

Literaäy

42

Identyfikatory

43

Komentarze

45

Instrukcje

46

Zasady dotyczñce transakcji

106

 5.  Operatory .................................................................................. 108

Priorytety operatorów

108

Operatory arytmetyczne

109

Operatory porównania

109

Operatory logiczne

111

6. Funkcje  .......................................................................................113

Funkcje agregujñce

113

Funkcje ogólnego przeznaczenia

115

7. Rodzaje tabel ............................................................................ 137

8.  Procedury i funkcje sk

ĥadowane ..............................................138

Parametry

138

Logika

139

Kursory

143

Obsäuga zdarzeþ i warunki

144

9.  Trygery  ...................................................................................... 146

Skorowidz  ................................................................................. 147

background image

22

_

MySQL. Leksykon kieszonkowy

Rozdzia

ĥ 3. Typy danych

We wszystkich typach danych nawiasami kwadratowymi (

[]

)

oznaczane  sñ  fragmenty  opcjonalne.  PoniĔszy  przykäad  pokazuje
sposób prezentacji typu 

BIGINT

, opisanego dalej w tym rozdziale:

BIGINT[(wielko

Łð_pokazywana)]

Oznacza to, Ĕe säowo 

BIGINT

 moĔe wystñpiè samodzielnie lub

z pokazywanñ wartoĈciñ. UĔycie kursywy wskazuje, Ĕe nie naleĔy
wpisywaè  säowa 

wielko

Łð_pokazywana

,  ale  podaè  wäasnñ  war-

toĈè. Oto przykäady uĔycia:

BIGINT
BIGINT(20)

Poza typem 

BIGINT

 takĔe wiele innych typów danych MySQL

uwzglödnia  deklaracjö  rozmiaru  wyĈwietlania.  JeĈli  nie  powie-
dziano inaczej, musi to byè liczba od 1 do 255.

W wersjach MySQL starszych niĔ wersja 5, baza danych w nie-
których  przypadkach  zmieniaäa  podany  typ  kolumny,  nie  infor-
mujñc o tym uĔytkownika. Obecnie takie podmiany nie majñ juĔ
miejsca.

VARCHAR -> CHAR

JeĈli podana kolumna 

VARCHAR

 ma rozmiar mniejszy od czte-

rech znaków, jest przeksztaäcana w kolumnö 

CHAR

.

CHAR -> VARCHAR

JeĈli tabela zawiera co najmniej jednñ kolumnö o zmiennej
däugoĈci, wszystkie kolumny typu 

CHAR

  däuĔsze  niĔ  trzy

znaki sñ zamieniane na 

VARCHAR

.

Rozmiar wy

Ĉwietlania 

TIMESTAMP

Rozmiar wyĈwietlania pól 

TIMESTAMP

 musi byè zawsze wiel-

koĈciñ parzystñ od 2 do 14. Rozmiar równy 0 lub wiökszy
od  14  powoduje  przyjöcie  14.  Wszelkie  liczby  nieparzyste
sñ zamieniane na nastöpnñ liczbö parzystñ.

background image

Rozdzia

ĥ 3. Typy danych 23

Liczby

MySQL obsäuguje liczbowe typy danych zgodne z ANSI SQL 2.
Typy te dzielimy na caäkowitoliczbowe, dziesiötne i zmiennoprze-
cinkowe. W ramach tych grup dzielimy typy dalej, wedäug zaj-
mowanej przez nie pamiöci.

W  przypadku  typów  liczbowych  moĔna  podaè  rozmiar  wyĈwie-
tlania, który wpäywa na sposób pokazywania przez MySQL wy-
ników. Rozmiar ten nie ma Ĕadnego zwiñzku z wielkoĈciñ pamiöci
zajmowanej  przez  dany  typ.  Dodatkowo  w  przypadku  liczb
zmiennoprzecinkowych i dziesiötnych moĔna podaè liczbö cyfr
znajdujñcych siö za kropkñ dziesiötnñ. Wtedy liczba cyfr powinna
naleĔeè  do  zakresu  od  0  do  30,  czyli  byè  co  najmniej  o  dwa
mniejsza od rozmiaru wyĈwietlania. JeĈli warunek ten nie zostanie
dotrzymany, MySQL automatycznie zmieni liczbö cyfr tak, aby
byäa mniejsza o dwa od rozmiaru wyĈwietlania. Przykäadowo,
MySQL automatycznie zmieni 

FLOAT(6,5)

 na 

FLOAT(7,5)

.

Próba  wstawienia  do  kolumny  wartoĈci  przekraczajñcej  dopusz-
czalny  zakres  tej  kolumny  powoduje  obciöcie  tej  wartoĈci  do
najmniejszej (dla liczb ujemnych) lub najwiökszej (dla liczb dodat-
nich) wartoĈci dla danej  kolumny  dopuszczalnej.  JeĈli  takie  ob-
ciöcie  jest  robione  podczas  wykonywania  instrukcji 

ALTER  TABLE

,

LOAD DATA INFILE

UPDATE

 lub wielowierszowej instrukcji 

INSERT

,

MySQL pokazuje ostrzeĔenie. Wyjñtkiem jest korzystanie z My-
SQL w wersji 5 lub nowszej w trybie peänej zgodnoĈci ze stan-
dardem SQL, gdyĔ wtedy w przypadku instrukcji 

INSERT

 i 

UPDATE

zgäaszany jest bäñd.

Atrybutu 

AUTO_INCREMENT

  moĔna  uĔyè  do  co  najwyĔej  jednej

kolumny caäkowitoliczbowej w tabeli. Atrybut 

UNSIGNED

 moĔe byè

äñczony z dowolnym liczbowym typem danych. UĔycie tego atry-
butu powoduje, Ĕe do kolumny nie  moĔna  wpisywaè liczb ujem-
nych. Atrybut 

ZEROFILL

 nakazuje wypeänienie kolumny od lewej

background image

24

_

MySQL. Leksykon kieszonkowy

strony zerami podczas wyĈwietlania jej wartoĈci. O liczbie tych zer
decyduje szerokoĈè wyĈwietlania danej kolumny.

BIGINT

BIGINT[(rozmiar_wy

Łwietlany)] [AUTO_INCREMENT] [UNSIGNED]

[ZEROFILL]

Rozmiar w pami

ýci

8 bajtów

Opis

Najwiökszy z  typów  caäkowitoliczbowych,  pozwalajñcy  zapisywaè
liczby  od  –9 223 372 036 854 775 808  do  9 223 372 036 854 775 807
(jeĈli bez znaku, to od 0 do 18 446 744 073 709 551 615). Z uwagi
na  sposób  realizacji  dziaäaþ  na  liczbach  tego  typu,  naleĔy
unikaè operacji na liczbach 

BIGINT

 bez  znaku wiökszych  niĔ

9 223 372 036 854 775 807, gdyĔ moĔe to zaowocowaè nieprawi-
däowymi wynikami.

BIT

BIT[(bity)]

Rozmiar w pami

ýci

w przybliĔeniu 

bity

 bitów+7 lub 8 bitów

Opis

W wersjach MySQL 5.0.3 i starszych, pola typu 

BIT

 dziaäaäy tak

samo, jak 

TINYINT(1)

. Omawiany typ pola pozwala przechowy-

waè ustalonñ liczbö bitów. JeĈli podana zostanie wielkoĈè bitów
mniejsza od dozwolonej, MySQL wypeäni zerami bity od lewej
strony.

background image

Rozdzia

ĥ 3. Typy danych 25

DEC

Synonim typu 

DECIMAL

.

DECIMAL

DECIMAL[(dok

ĪadnoŁð, [skala])] [UNSIGNED] [ZEROFILL]

Rozmiar w pami

ýci

róĔnie

Opis

Pozwala  zapisywaè  liczby  zmiennoprzecinkowe  w  sytuacjach,
kiedy istotna jest dokäadnoĈè — na przykäad przy operowaniu
kwotami pieniödzy. Stosujñc typ 

DECIMAL

, trzeba podaè dwa jego

parametry, dokäadnoĈè i skalö. DokäadnoĈè to liczba znaczñcych
cyfr, zaĈ skala to liczba znaczñcych cyfr po kropce dziesiötnej.
Przykäadowo,  kolumna 

SALDO

  typu 

DECIMAL(9,2)

  pozwoliäaby

zapisywaè  liczby  dziewiöciocyfrowe,  przy  czym  na  prawo  od
kropki dziesiötnej mogäyby byè dwie cyfry. Zakres dopuszczal-
nych liczb to w takiej sytuacji od –9 999 999,99 do 9 999 999,99.
JeĈli podana zostanie liczba zawierajñca wiöcej cyfr po przecinku,
niĔ przewiduje to definicja, liczba zostanie zaokrñglona. WartoĈci
spoza zakresu 

DECIMAL

 sñ obcinane tak, aby siö w nim zmieĈciäy.

W wersjach MySQL starszych niĔ 5, wartoĈci 

DECIMAL

 nie byäy

zapisywane jako liczby zmiennoprzecinkowe, lecz jako äaþcuchy
znaków. Na kaĔdñ cyfrö zuĔywany byä jeden znak w przypadku
skali wiökszej od 0, poza tym jeden dodatkowy znak zuĔywany
jest w przypadku liczb ujemnych. JeĈli skala wynosi 0, liczby nie
majñ czöĈci uäamkowej.

SQL zgodnie z normñ ANSI pozwala pomijaè dokäadnoĈè i (lub)
skalö.  JeĈli  brak  dokäadnoĈci,  przyjmowane  jest  ustawienie

background image

26

_

MySQL. Leksykon kieszonkowy

domyĈlne charakterystyczne dla implementacji. JeĈli brak skali,
przyjmowane jest zero. W MySQL domyĈlna wartoĈè dokäadno-

Ĉci to 10.

DOUBLE

DOUBLE[(rozmiar_wy

Łwietlanycyfr)] [ZEROFILL]

Rozmiar w pami

ýci

8 bajtów

Opis

Liczba zmiennoprzecinkowa podwójnej precyzji. Ten typ da-
nych pozwala zapisywaè duĔe wartoĈci zmiennoprzecinkowe.
W  kolumnach  tego  typu  moĔna  zapisaè  wartoĈci  ujemne  od
–1,7976931348623157E+308  do  –2,2250738585072014E–308,
0 oraz  wartoĈci  dodatnie  od  2,2250738585072014E–308  do
1,7976931348623157E+308.

DOUBLE PRECISION

Synonim 

DOUBLE

.

FLOAT

FLOAT[(rozmiar_wy

Łwietlanycyfr)] [ZEROFILL]

Rozmiar w pami

ýci

4 bajty

background image

Rozdzia

ĥ 3. Typy danych 27

Opis

Liczba zmiennoprzecinkowa pojedynczej precyzji. Ten typ da-
nych  pozwala  zapisywaè  maäe  wartoĈci  zmiennoprzecinkowe.
W  kolumnach  tego  typu  moĔna  zapisaè  wartoĈci  ujemne  od
–3,402823466E+38 do –1,175494351E–38, 0 oraz wartoĈci dodatnie
od 1,175494351E–38 do 3,402823466E+38.

INT

INT[(rozmiar_wy

Łwietlany)] [AUTO_INCREMENT] [UNSIGNED]

[ZEROFILL]

Rozmiar w pami

ýci

4 bajty

Opis

Podstawowy  rodzaj  liczb  caäkowitych  od  –2 147 483 648  do
2 147 483 647 (lub od 0 do 4 294 967 295 w przypadku liczb bez
znaku).

INTEGER

Synonim 

INT

.

MEDIUMINT

MEDIUMINT[(rozmiar_wy

Łwietlany)] [AUTO_INCREMENT] [UNSIGNED]

[ZEROFILL]

Rozmiar w pami

ýci

3 bajty

background image

28

_

MySQL. Leksykon kieszonkowy

Opis

Liczby caäkowite od –8 388 608 do 8 388 607 (lub od 0 do 16 777 215
w przypadku liczb bez znaku).

NUMERIC

Synonim 

DECIMAL

.

REAL

Synonim 

DOUBLE

.

SMALLINT

SMALLINT[(rozmiar_wy

Łwietlany)] [AUTO_INCREMENT] [UNSIGNED]

[ZEROFILL]

Rozmiar w pami

ýci

2 bajty

Opis

Liczby caäkowite z zakresu od –32 768 do 32 767 (od 0 do 65 535
w przypadku liczb bez znaku).

TINYINT

TINYINT[(rozmiar_wy

Łwietlany)] [AUTO_INCREMENT] [UNSIGNED]

[ZEROFILL]

Rozmiar w pami

ýci

1 bajt

background image

Rozdzia

ĥ 3. Typy danych 29

Opis

Liczby  caäkowite  od  –128  do  127  (od  0  do  255  w  przypadku
liczb bez znaku).

Ĥaħcuchy

MySQL obsäuguje dwie kategorie äaþcuchów: äaþcuchy tekstowe
oraz äaþcuchy binarne. Obie kategorie majñ swoje specyficzne
typy do obsäugi róĔnych wielkoĈci pól i róĔnych sposobów po-
równywania wartoĈci. W zaleĔnoĈci od sposobu porównywania,
moĔna uwzglödniaè bñdĒ nie wielkoĈè liter, moĔna teĔ porówny-
waè dane binarnie (bajt po bajcie).

Kiedy nazwa typu tekstowego (jak 

CHAR

VARCHAR

 i inne) zostanie

oznaczona  säowem  kluczowym 

BINARY

,  kolumna  pozostaje  ko-

lumnñ tekstowñ, ale dane sñ porównywane ze sobñ binarnie.

BINARY

BINARY(rozmiar)

Rozmiar

wedäug 

rozmiar

, w zakresie od 0 do 255

Rozmiar w pami

ýci

rozmiar

 bajtów

Opis

Typ  danych 

BINARY

  to  binarny  odpowiednik  typu 

CHAR

.  Podsta-

wowa róĔnica miödzy tymi dwoma typami polega na tym, Ĕe pole
typu 

BINARY

 zawiera dane binarne, wielkoĈè tych danych jest

mierzona nie w znakach, lecz w  bajtach. ãaþcuchy  zawierajñce

background image

30

_

MySQL. Leksykon kieszonkowy

mniej znaków, niĔ to wynika z rozmiaru kolumny, wypeäniane
sñ po prawej stronie znakami 0x00 (wersja MySQL 5.0.5 i now-
sze) lub spacjami (wersje starsze).

BLOB

Binarny odpowiednik typu 

TEXT

.

CHAR

CHAR(rozmiar) [BINARY] [CHARACTER SET zestaw]
[COLLATE porównywanie]

Rozmiar

wedäug 

rozmiar

, do 255

Rozmiar w pami

ýci

zaleĔny od rozmiaru i od uĔytego zestawu znaków

Opis

Pole  tekstowe  ustalonej  däugoĈci.  ãaþcuchy  zawierajñce  mniej
znaków, niĔ to wynika z rozmiaru kolumny, wypeäniane sñ po
prawej  stronie  spacjami.  Podczas  pobierania  danych  z  bazy  te
dodatkowe spacje sñ usuwane.

Pola 

CHAR(0)

 zostaäy zachowane w celu zapewnienia zgodnoĈci ze

starymi systemami, w których w kolumnach nie sñ zapisywane
Ĕadne wartoĈci.

CHARACTER

Synonim 

CHAR

.

background image

Rozdzia

ĥ 3. Typy danych 31

CHARACTER VARYING

Synonim 

VARCHAR

.

LONGBLOB

Binarny odpowiednik 

LONGTEXT

.

LONGTEXT

LONGTEXT [CHARACTER SET zestaw] [COLLATE porównywanie]

Rozmiar

0 do 4 294  295

Rozmiar w pami

ýci

DäugoĈè wartoĈci+4 bajty

Opis

Typ  pozwala  zapisywaè  duĔe  wartoĈci  tekstowe.  Teoretyczne
ograniczenie rozmiaru tekstu to ponad 4 GB, ale praktycznymi
ograniczeniami  sñ  ograniczenia  protokoäu  komunikacyjnego
MySQL  oraz  iloĈè  pamiöci  przeznaczonej  na  komunikacjö  na  ser-
werze i na stacji klienckiej.

MEDIUMBLOB

Binarna postaè 

MEDIUMTEXT

.

MEDIUMTEXT

MEDIUMTEXT [CHARACTER SET zestaw] [COLLATE porównywanie]

background image

32

_

MySQL. Leksykon kieszonkowy

Rozmiar

0 do 16 777 215

Rozmiar w pami

ýci

DäugoĈè wartoĈci+3 bajty

Opis

Typ pozwala zapisywaè Ĉredniej wielkoĈci wartoĈci tekstowe.

NCHAR

Synonim 

CHAR

.

NATIONAL CHAR

Synonim 

CHAR

.

NATIONAL CHARACTER

Synonim 

CHAR

.

NATIONAL VARCHAR

Synonim 

VARCHAR

.

TEXT

TEXT [CHARACTER SET 

zestaw

] [COLLATE 

porównywanie

]

Rozmiar

0 do 65 535

background image

Rozdzia

ĥ 3. Typy danych 33

Rozmiar w pami

ýci

DäugoĈè wartoĈci tekstowej+2 bajty

Opis

Typ pozwala zapisywaè typowe wartoĈci tekstowe.

TINYBLOB

Binarny odpowiednik 

TINYTEXT

.

TINYTEXT

TINYTEXT [CHARACTER SET zestaw] [COLLATE porównywanie]

Rozmiar

0 do 255

Rozmiar w pami

ýci

DäugoĈè wartoĈci tekstowej+1 bajt

Opis

Pozwala zapisywaè krótkie dane tekstowe.

VARBINARY

VARBINARY(rozmiar)

Rozmiar

Wedäug parametru 

rozmiar

background image

34

_

MySQL. Leksykon kieszonkowy

Rozmiar w pami

ýci

rozmiar

 bajtów

Opis

Jest to binarna odmiana typu 

VARCHAR

. Podstawowa róĔnica polega

na tym, Ĕe zapisywane sñ dane binarne, a rozmiar pola mierzony
jest w bajtach, nie w znakach. WielkoĈci typu 

VARBINARY

, w prze-

ciwieþstwie do wartoĈci typu 

BINARY

, nie sñ niczym dopeäniane.

VARCHAR

VARCHAR(rozmiar) [BINARY] [CHARACTER SET zestaw]
[COLLATE porównywanie]

Rozmiar

Wskazana przez 

rozmiar

 wartoĈè z zakresu do 65 532 (od 1 do

255 w  wersjach  wczeĈniejszych  niĔ  MySQL  5);  rozmiar  wskazuje
rzeczywistñ wielkoĈè kolumny i jest ograniczony przez dopusz-
czalnñ  wielkoĈè  wiersza  w  znakach;  to,  ile  miejsca  faktycznie
bödzie potrzebne, zaleĔy zatem od zestawu znaków uĔytego
w danej kolumnie

Rozmiar w pami

ýci

ZaleĔy od liczby znaków wskazanych jako rozmiar oraz od liczby
bajtów potrzebnych do zapisu poszczególnych znaków w uĔytym
mechanizmie kodowania znaków

Opis

Pozwala zapisywaè wartoĈci tekstowe zmiennej däugoĈci. W wer-
sjach poprzedzajñcych MySQL 5 z wartoĈci 

VARCHAR

 usuwane sñ

spacje koþcowe; wersja MySQL 5 i nowsze standardowo nie usu-
wajñ spacji koþcowych.

background image

Rozdzia

ĥ 3. Typy danych 35

Daty

Typy datowe MySQL sñ wyjñtkowo elastycznym  narzödziem,
pozwalajñcym zapisywaè wszelki informacje dzienne. MySQL
jest bardzo tolerancyjny i zakäada, Ĕe to aplikacja, a nie baza da-
nych, ma sprawdzaè poprawnoĈè tych danych. MySQL sprawdza
jedynie, czy miesiñc nie wykracza poza zakres 0 – 12 i czy dzieþ
nie wykracza poza zakres 0 – 31. Wobec tego z punktu widzenia
MySQL 31 lutego 2001 roku jest poprawnñ datñ. Bardziej przy-
datnñ  wartoĈciñ  jest  data  0  lutego  2001  roku;  cyfra  zero  moĔe
zastöpowaè tö czöĈè daty, której dokäadnie nie znamy. MySQL 5
jest  jednak  juĔ  bazñ  danych  nieco  bardziej  restrykcyjnñ  co  do
wartoĈci, jakie moĔna zapisywaè w polach datowych.

Wprawdzie MySQL dopuszcza doĈè duĔñ swobodö formatów
wejĈciowych  dat,  to  naleĔy  staraè  siö  w  aplikacjach  daty  forma-
towaè zgodnie z formatem wewnötrznym MySQL w celu unikniö-
cia nieporozumieþ. MySQL zawsze zakäada, Ĕe rok jest pierwszym
elementem po lewej stronie daty. JeĈli w operacji SQL podana
zostanie nieprawidäowa wartoĈè daty, MySQL wstawi w jej miej-
sce zero.

MySQL w kontekĈcie liczb caäkowitych automatycznie konwertuje
daty i czas na liczby caäkowite.

DATE

DATE

Format

YYYY-MM-DD (2001-01-01)

Rozmiar w pami

ýci

3 bajty

background image

36

_

MySQL. Leksykon kieszonkowy

Opis

Data kalendarza gregoriaþskiego z zakresu od 1 stycznia 1000 roku
(

'1000-01-01'

) do 31 grudnia 9999 roku (

'9999-12-31'

).

DATETIME

DATETIME

Format

YYY-MM-DD hh:mm:ss (2001-01-01 01:00:00)

Rozmiar w pami

ýci

8 bajtów

Opis

Zapisuje czas z zakresu od 00:00:00 1 stycznia 1000 roku (

'1000-

01-01  00:00:00'

)  do  23:59:59  31  grudnia  9999  (

'9999-12-31

23:59:59'

) wedäug kalendarza gregoriaþskiego.

TIME

TIME

Format

hh:mm:ss (06:00:00)

Rozmiar w pami

ýci

3 bajty

Opis

Zapisuje czas od póänocy (

'00:00:00'

) do sekundy przed póänocñ

(

'23:59:59'

).

background image

Rozdzia

ĥ 3. Typy danych 37

TIMESTAMP

TIMESTAMP[(rozmiar_wy

Łwietlania)]

Format

YYYY-MM-DD hh:mm:ss (2001-01-01 01:00:00)

Rozmiar w pami

ýci

4 bajty

Opis

Zapis chwili z dokäadnoĈciñ do sekundy od póänocy 1 stycznia
1970 roku do minuty przed póänocñ 31 grudnia 2037 roku. Pod-
stawowym zastosowaniem tego typu jest rejestracja modyfikacji
tabel. Przy wstawianiu do takiej kolumny wartoĈci 

NULL

 wstawiane

sñ  aktualna  data  i  czas.  W  przypadku  modyfikowania  jakiejkol-
wiek wartoĈci w wierszu z kolumnñ 

TIMESTAMP

 pierwsza kolumna

tego typu zostanie zaktualizowana bieĔñcñ datñ i czasem.

Format danych 

TIMESTAMP

 znany z wczeĈniejszych wersji MySQL,

do 4.1 wäñcznie, w wersji 5.1 nie jest juĔ obsäugiwany.

YEAR

YEAR[(rozmiar)]

Format

YYYY (2001)

Rozmiar w pami

ýci

1 bajt

background image

Czytaj dalej...

38

_

MySQL. Leksykon kieszonkowy

Opis

Pozwala zapisaè rok z kalendarza gregoriaþskiego. Parametr 

roz-

miar

 umoĔliwia zapisywanie roku dwu- lub czterocyfrowo. Zakres

YEAR(4)

 rozciñga siö od 1900 do 2155, dla 

YEAR(2)

 od 1970 do

2069. DomyĈlnie przyjmowane jest 

YEAR(4)

.

Typy z

ĥoŜone

ZäoĔone typy danych MySQL, 

ENUM

 i 

SET

, sñ po prostu specjal-

nymi przypadkami typów äaþcuchowych. Opisujemy je osobno,
gdyĔ sñ bardziej zäoĔone pojöciowo i stanowiñ wprowadzenie do
typów danych SQL3, które byè moĔe MySQL bödzie obsäugiwaä
w przyszäoĈci.

ENUM

ENUM(warto

Łð1wartoŁð2, ...)

Rozmiar w pami

ýci

1 – 255 elementów: 1 bajt

255 – 65 535 elementów: 2 bajty

Opis

Typ danych 

ENUM

 pozwala zapisywaè  jeden z wielu  zdefiniowa-

nych wczeĈniej äaþcuchów. Przy tworzeniu kolumny typu 

ENUM

podaje siö listö dopuszczalnych jej wartoĈci. Dane mogñ byè do tej
kolumny wstawiane i aktualizowane jedynie z tej listy; kaĔda
próba wstawienia wartoĈci spoza niej powoduje wstawienie pu-
stego äaþcucha.