Wydawnictwo Helion
ul. Kociuszki 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.
Jeli 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
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
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
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ñ.
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
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.
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
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
Łwietlany, cyfr)] [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
Łwietlany, cyfr)] [ZEROFILL]
Rozmiar w pami
ýci
4 bajty
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
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
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
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
.
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]
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
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
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.
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
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'
).
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
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
Łð1, wartoŁð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.