plik


ÿþ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êSciej 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. JeSli jesteS 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 Wydawnictwo Helion ul. KoSciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis tre[ci Wstp ............................................................................................5 MySQL 5 ........................................................................................7 Widoki 7 Trygery 7 Procedury skBadowane 7 Kursory 8 Nowe mechanizmy skBadowania danych 8 Zdarzenia bazy danych 9 1. Instalacja ..................................................................................... 10 Pobieranie MySQL 10 Konfiguracja 11 Uruchomienie 14 Ustawianie hasBa gBównego 15 Replikacja 15 2. Narzdzia wiersza poleceD ........................................................ 18 3. Typy danych ................................................................................22 Liczby 23 AaDcuchy 29 3 4. SQL ..............................................................................................41 Rozró|nianie wielko[ci liter 41 LiteraBy42 Identyfikatory 43 Komentarze 45 Instrukcje 46 Zasady dotyczce transakcji 106 5. Operatory ..................................................................................108 Priorytety operatorów 108 Operatory arytmetyczne 109 Operatory porównania 109 Operatory logiczne 111 6. Funkcje .......................................................................................113 Funkcje agregujce 113 Funkcje ogólnego przeznaczenia 115 7. Rodzaje tabel ............................................................................ 137 8. Procedury i funkcje skBadowane .............................................. 138 Parametry 138 Logika 139 Kursory 143 ObsBuga zdarzeD i warunki 144 9. Trygery ......................................................................................146 Skorowidz ................................................................................. 147 4 | MySQL. Leksykon kieszonkowy RozdziaB 3. Typy danych We wszystkich typach danych nawiasami kwadratowymi ([]) oznaczane s fragmenty opcjonalne. Poni|szy przykBad pokazuje sposób prezentacji typu BIGINT, opisanego dalej w tym rozdziale: BIGINT[(wielko[_pokazywana)] Oznacza to, |e sBowo BIGINT mo|e wystpi samodzielnie lub z pokazywan warto[ci. U|ycie kursywy wskazuje, |e nie nale|y wpisywa sBowa wielko[_pokazywana, ale poda wBasn war- to[. Oto przykBady u|ycia: BIGINT BIGINT(20) Poza typem BIGINT tak|e wiele innych typów danych MySQL uwzgldnia 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 zmieniaBa podany typ kolumny, nie infor- mujc 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 przeksztaBcana w kolumn CHAR. CHAR -> VARCHAR Je[li tabela zawiera co najmniej jedn kolumn o zmiennej dBugo[ci, wszystkie kolumny typu CHAR dBu|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 wikszy od 14 powoduje przyjcie 14. Wszelkie liczby nieparzyste s zamieniane na nastpn liczb parzyst. 22 | MySQL. Leksykon kieszonkowy Liczby MySQL obsBuguje liczbowe typy danych zgodne z ANSI SQL 2. Typy te dzielimy na caBkowitoliczbowe, dziesitne i zmiennoprze- cinkowe. W ramach tych grup dzielimy typy dalej, wedBug zaj- mowanej przez nie pamici. W przypadku typów liczbowych mo|na poda rozmiar wy[wie- tlania, który wpBywa na sposób pokazywania przez MySQL wy- ników. Rozmiar ten nie ma |adnego zwizku z wielko[ci pamici zajmowanej przez dany typ. Dodatkowo w przypadku liczb zmiennoprzecinkowych i dziesitnych mo|na poda liczb cyfr znajdujcych si za kropk dziesitn. 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 byBa mniejsza o dwa od rozmiaru wy[wietlania. PrzykBadowo, MySQL automatycznie zmieni FLOAT(6,5) na FLOAT(7,5). Próba wstawienia do kolumny warto[ci przekraczajcej dopusz- czalny zakres tej kolumny powoduje obcicie tej warto[ci do najmniejszej (dla liczb ujemnych) lub najwikszej (dla liczb dodat- nich) warto[ci dla danej kolumny dopuszczalnej. Je[li takie ob- cicie jest robione podczas wykonywania instrukcji ALTER TABLE, LOAD DATA INFILE, UPDATE lub wielowierszowej instrukcji INSERT, MySQL pokazuje ostrze|enie. Wyjtkiem jest korzystanie z My- SQL w wersji 5 lub nowszej w trybie peBnej zgodno[ci ze stan- dardem SQL, gdy| wtedy w przypadku instrukcji INSERT i UPDATE zgBaszany jest bBd. Atrybutu AUTO_INCREMENT mo|na u|y do co najwy|ej jednej kolumny caBkowitoliczbowej w tabeli. Atrybut UNSIGNED mo|e by Bczony z dowolnym liczbowym typem danych. U|ycie tego atry- butu powoduje, |e do kolumny nie mo|na wpisywa liczb ujem- nych. Atrybut ZEROFILL nakazuje wypeBnienie kolumny od lewej RozdziaB 3. Typy danych | 23 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 pamici 8 bajtów Opis Najwikszy z typów caBkowitoliczbowych, pozwalajcy 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 dziaBaD na liczbach tego typu, nale|y unika operacji na liczbach BIGINT bez znaku wikszych ni| 9 223 372 036 854 775 807, gdy| mo|e to zaowocowa nieprawi- dBowymi wynikami. BIT BIT[(bity)] Rozmiar w pamici w przybli|eniu bity bitów+7 lub 8 bitów Opis W wersjach MySQL 5.0.3 i starszych, pola typu BIT dziaBaBy 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 wypeBni zerami bity od lewej strony. 24 | MySQL. Leksykon kieszonkowy DEC Synonim typu DECIMAL. DECIMAL DECIMAL[(dokBadno[, [skala])] [UNSIGNED] [ZEROFILL] Rozmiar w pamici ró|nie Opis Pozwala zapisywa liczby zmiennoprzecinkowe w sytuacjach, kiedy istotna jest dokBadno[  na przykBad przy operowaniu kwotami pienidzy. Stosujc typ DECIMAL, trzeba poda dwa jego parametry, dokBadno[ i skal. DokBadno[ to liczba znaczcych cyfr, za[ skala to liczba znaczcych cyfr po kropce dziesitnej. PrzykBadowo, kolumna SALDO typu DECIMAL(9,2) pozwoliBaby zapisywa liczby dziewiciocyfrowe, przy czym na prawo od kropki dziesitnej mogByby 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 zawierajca wicej cyfr po przecinku, ni| przewiduje to definicja, liczba zostanie zaokrglona. Warto[ci spoza zakresu DECIMAL s obcinane tak, aby si w nim zmie[ciBy. W wersjach MySQL starszych ni| 5, warto[ci DECIMAL nie byBy zapisywane jako liczby zmiennoprzecinkowe, lecz jako BaDcuchy znaków. Na ka|d cyfr zu|ywany byB jeden znak w przypadku skali wikszej od 0, poza tym jeden dodatkowy znak zu|ywany jest w przypadku liczb ujemnych. Je[li skala wynosi 0, liczby nie maj cz[ci uBamkowej. SQL zgodnie z norm ANSI pozwala pomija dokBadno[ i (lub) skal. Je[li brak dokBadno[ci, przyjmowane jest ustawienie RozdziaB 3. Typy danych | 25 domy[lne charakterystyczne dla implementacji. Je[li brak skali, przyjmowane jest zero. W MySQL domy[lna warto[ dokBadno- [ci to 10. DOUBLE DOUBLE[(rozmiar_wy[wietlany, cyfr)] [ZEROFILL] Rozmiar w pamici 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 pamici 4 bajty 26 | MySQL. Leksykon kieszonkowy Opis Liczba zmiennoprzecinkowa pojedynczej precyzji. Ten typ da- nych pozwala zapisywa maBe 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 pamici 4 bajty Opis Podstawowy rodzaj liczb caBkowitych 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 pamici 3 bajty RozdziaB 3. Typy danych | 27 Opis Liczby caBkowite 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 pamici 2 bajty Opis Liczby caBkowite 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 pamici 1 bajt 28 | MySQL. Leksykon kieszonkowy Opis Liczby caBkowite od  128 do 127 (od 0 do 255 w przypadku liczb bez znaku). AaDcuchy MySQL obsBuguje dwie kategorie BaDcuchów: BaDcuchy tekstowe oraz BaDcuchy binarne. Obie kategorie maj swoje specyficzne typy do obsBugi 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 uwzgldnia bdz 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 sBowem kluczowym BINARY, kolumna pozostaje ko- lumn tekstow, ale dane s porównywane ze sob binarnie. BINARY BINARY(rozmiar) Rozmiar wedBug rozmiar, w zakresie od 0 do 255 Rozmiar w pamici rozmiar bajtów Opis Typ danych BINARY to binarny odpowiednik typu CHAR. Podsta- wowa ró|nica midzy tymi dwoma typami polega na tym, |e pole typu BINARY zawiera dane binarne, wielko[ tych danych jest mierzona nie w znakach, lecz w bajtach. AaDcuchy zawierajce RozdziaB 3. Typy danych | 29 mniej znaków, ni| to wynika z rozmiaru kolumny, wypeBniane 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 wedBug rozmiar, do 255 Rozmiar w pamici zale|ny od rozmiaru i od u|ytego zestawu znaków Opis Pole tekstowe ustalonej dBugo[ci. AaDcuchy zawierajce mniej znaków, ni| to wynika z rozmiaru kolumny, wypeBniane s po prawej stronie spacjami. Podczas pobierania danych z bazy te dodatkowe spacje s usuwane. Pola CHAR(0) zostaBy zachowane w celu zapewnienia zgodno[ci ze starymi systemami, w których w kolumnach nie s zapisywane |adne warto[ci. CHARACTER Synonim CHAR. 30 | MySQL. Leksykon kieszonkowy CHARACTER VARYING Synonim VARCHAR. LONGBLOB Binarny odpowiednik LONGTEXT. LONGTEXT LONGTEXT [CHARACTER SET zestaw] [COLLATE porównywanie] Rozmiar 0 do 4 294 295 Rozmiar w pamici DBugo[ 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 protokoBu komunikacyjnego MySQL oraz ilo[ pamici przeznaczonej na komunikacj na ser- werze i na stacji klienckiej. MEDIUMBLOB Binarna posta MEDIUMTEXT. MEDIUMTEXT MEDIUMTEXT [CHARACTER SET zestaw] [COLLATE porównywanie] RozdziaB 3. Typy danych | 31 Rozmiar 0 do 16 777 215 Rozmiar w pamici DBugo[ 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 32 | MySQL. Leksykon kieszonkowy Rozmiar w pamici DBugo[ 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 pamici DBugo[ warto[ci tekstowej+1 bajt Opis Pozwala zapisywa krótkie dane tekstowe. VARBINARY VARBINARY(rozmiar) Rozmiar WedBug parametru rozmiar RozdziaB 3. Typy danych | 33 Rozmiar w pamici 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- ciwieDstwie do warto[ci typu BINARY, nie s niczym dopeBniane. 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 bdzie potrzebne, zale|y zatem od zestawu znaków u|ytego w danej kolumnie Rozmiar w pamici 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 dBugo[ci. W wer- sjach poprzedzajcych MySQL 5 z warto[ci VARCHAR usuwane s spacje koDcowe; wersja MySQL 5 i nowsze standardowo nie usu- waj spacji koDcowych. 34 | MySQL. Leksykon kieszonkowy Daty Typy datowe MySQL s wyjtkowo elastycznym narzdziem, pozwalajcym zapisywa wszelki informacje dzienne. MySQL jest bardzo tolerancyjny i zakBada, |e to aplikacja, a nie baza da- nych, ma sprawdza poprawno[ tych danych. MySQL sprawdza jedynie, czy miesic nie wykracza poza zakres 0  12 i czy dzieD 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 zastpowa t cz[ daty, której dokBadnie 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 wewntrznym MySQL w celu unikni- cia nieporozumieD. MySQL zawsze zakBada, |e rok jest pierwszym elementem po lewej stronie daty. Je[li w operacji SQL podana zostanie nieprawidBowa warto[ daty, MySQL wstawi w jej miej- sce zero. MySQL w kontek[cie liczb caBkowitych automatycznie konwertuje daty i czas na liczby caBkowite. DATE DATE Format YYYY-MM-DD (2001-01-01) Rozmiar w pamici 3 bajty RozdziaB 3. Typy danych | 35 Opis Data kalendarza gregoriaDskiego 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 pamici 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') wedBug kalendarza gregoriaDskiego. TIME TIME Format hh:mm:ss (06:00:00) Rozmiar w pamici 3 bajty Opis Zapisuje czas od póBnocy ('00:00:00') do sekundy przed póBnoc ('23:59:59'). 36 | MySQL. Leksykon kieszonkowy TIMESTAMP TIMESTAMP[(rozmiar_wy[wietlania)] Format YYYY-MM-DD hh:mm:ss (2001-01-01 01:00:00) Rozmiar w pamici 4 bajty Opis Zapis chwili z dokBadno[ci do sekundy od póBnocy 1 stycznia 1970 roku do minuty przed póBnoc 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 wBcznie, w wersji 5.1 nie jest ju| obsBugiwany. YEAR YEAR[(rozmiar)] Format YYYY (2001) Rozmiar w pamici 1 bajt RozdziaB 3. Typy danych | 37 Opis Pozwala zapisa rok z kalendarza gregoriaDskiego. Parametr roz- miar umo|liwia zapisywanie roku dwu- lub czterocyfrowo. Zakres YEAR(4) rozciga si od 1900 do 2155, dla YEAR(2) od 1970 do 2069. Domy[lnie przyjmowane jest YEAR(4). Typy zBo|one ZBo|one typy danych MySQL, ENUM i SET, s po prostu specjal- nymi przypadkami typów BaDcuchowych. Opisujemy je osobno, gdy| s bardziej zBo|one pojciowo i stanowi wprowadzenie do typów danych SQL3, które by mo|e MySQL bdzie obsBugiwaB w przyszBo[ci. ENUM ENUM(warto[1, warto[2, ...) Rozmiar w pamici 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 BaDcuchó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 BaDcucha. 38 | MySQL. Leksykon kieszonkowy Do listy dopuszczalnych warto[ci mo|na si odwoBywa przez indeks, przy czym pierwszy element otrzymuje numer 0. Na przykBad: SELECT COLID FROM TBL WHERE COLENUM = 0; Je[li COLID jest kolumn z kluczem gBównym, a COLENUM kolumn typu ENUM, taka instrukcja SQL spowoduje pobranie kluczy gBów- nych wszystkich wierszy, dla których COLENUM jest pierwsz warto- [ci z listy. Analogicznie, sortowanie wzgldem kolumn ENUM powoduje sortowanie wedBug indeksu, nie BaDcucha. Najwiksza mo|liwa liczba elementów kolumny ENUM to 65 535. SET SET(warto[1, warto[2, ...) Rozmiar w pamici 1  8 elementów: 1 bajt 9  16 elementów: 2 bajty 17  24 elementy: 3 bajty 25  32 elementy: 4 bajty 33  64 elementy: 8 bajtów Opis Lista warto[ci wybieranych z okre[lonego wcze[niej zbioru. Pole mo|e zawiera dowoln liczb BaDcuchów wskazanych w instrukcji SET, szczególnie mo|e nie zawiera |adnej takiej warto[ci. SET jest podobny do ENUM, ale ka|de pole mo|e zawiera wicej ni| jedn z podanych warto[ci. Dane typu SET nie s jednak zapisy- wane za pomoc indeksów, ale w zBo|onej mapie bitowej. Je[li dany jest zbiór SET, zawierajcy elementy: Mandarynka, Pomidor, RozdziaB 3. Typy danych | 39 Gruszka i Banan, ka|dy z tych elementów jest reprezentowany jako wBczony bit w bajcie, jak to pokazano w tabeli 3.1. Tabela 3.1. Reprezentacja zbioru elementów w MySQL Element Warto[ dziesitna Zapis bitowy Mandarynka 1 0001 Pomidor 2 0010 Gruszka 4 0100 Banan 8 1000 W powy|szym przykBadzie zapisanie jednocze[nie warto[ci Man- darynka i Gruszka wymaga u|ycia warto[ci 5 (bitowo 0101). W kolumnie SET mo|na zapisa najwy|ej 64 warto[ci. Wprawdzie t sam warto[ mo|na w jednym wyra|eniu SQL wpisa wielo- krotnie, ale w bazie danych warto[ ta zostanie zapisana raz. 40 | MySQL. Leksykon kieszonkowy

Wyszukiwarka

Podobne podstrony:
informatyka mysql leksykon kieszonkowy wydanie ii george reese ebook
informatyka excel 2007 pl leksykon kieszonkowy wydanie ii curt frye ebook
SQL Leksykon kieszonkowy Wydanie II sqllk2
Wyrazenia regularne Leksykon kieszonkowy Wydanie II wyrlk2
Wyrazenia regularne Leksykon kieszonkowy Wydanie II wyrlk2
Fotografia Cyfrowa Leksykon Kieszonkowy Wydanie II
Nagrywanie plyt CD i DVD Leksykon kieszonkowy Wydanie II
C 3 0 Leksykon kieszonkowy Wydanie II cshlk2
PHP i MySQL Dla kazdego Wydanie II phmdk2
MySQL Leksykon kieszonkowy msqllk
MySQL?rmowa?za?nych cwiczenia praktyczne Wydanie II cwmsq2
BIOS Leksykon kieszonkowy Wydanie III biosl3

więcej podobnych podstron