[ Pobierz całość w formacie PDF ]
rać dowolną z przedstawionych w zestawieniu wartości. Dodatkowo zaprezentowana
została wartość indeksu każdej wartości:
Wartość Indeks
Wyliczenie może zawierać maksymalnie 65 535 elementów.
Począwszy od wersji 3.23.51 MySQL wartości należące do mają automatycznie
usuwane spacje końcowe w momencie tworzenia tabeli.
Podczas przypisywania wartości do kolumny nieistotna jest wielkość liter. Wartości
pobrane pózniej z takiej kolumny są jednak wyświetlane przy użyciu liter o wielkości
użytej w definicji kolumny.
Jeśli wartość zostanie pobrana w postaci liczbowej, zwrócony zostanie indeks
wartości kolumny. W następujący sposób można na przykład pobrać wartość liczbową
z kolumny :
L T
Jeśli do kolumny zostanie wpisana liczba, będzie ona traktowana jako wartość
indeksu, a przechowywana wartość będzie elementem wyliczenia o tym indeksie (nie
zadziała to jednak z instrukcją , ponieważ traktuje ona wszystkie dane wej-
4.4. Typy łańc chowe 149
ściowe jako łańcuchy). Nie zaleca się deklarowania kolumn z wartościami wyli-
czenia, które wyglądem przypominają liczby, ponieważ może to łatwo doprowadzić do
pomyłki. Poniższa kolumna zawiera na przykład elementy wyliczenia, których warto-
ści łańcucha , i mają wartości liczbowe indeksu równe , i :
Sortowanie wartości odbywa się na podstawie porządku, w którym elementy
wyliczenia zostały wymienione w deklaracji kolumny (innymi słowy wartości są
sortowane według przypisanych im wartości indeksu), na przykład zostanie usta-
wione przed dla , ale stanie przed dla .
Pusty łańcuch zostaje ustawiony przed łańcuchem niepustym, wartości zostaną
umiejscowione przed wszystkimi innymi wartościami wyliczenia. Aby zapobiec nie-
oczekiwanym wynikom, należy w deklaracji kolumny wymienić wartości wyliczenia
listy w porządku alfabetycznym. Można również zastosować
lub , aby upewnić się, że kolumna zostanie uporząd-
kowana alfabetycznie, a nie według liczb w indeksie.
Aby ustalić wszystkie możliwe wartości dla kolumny , należy użyć instrukcji
i przetworzyć definicję w drugiej
kolumnie danych wyjściowych.
4.4.4. Typ SET
to obiekt łańcuchowy składający się z zera lub większej liczby wartości, z których
każda musi być wybrana z listy dozwolonych wartości, wyliczonych w deklaracji kolum-
ny podczas tworzenia tabeli. W przypadku wartości kolumny typu , składających się
z wielu elementów zestawu, elementy te są oddzielane przecinkami ( ). Z tego powodu
wartości elementów nie mogą zawierać przecinków.
Kolumna zadeklarowana na przykład jako może mieć
jedną z następujących wartości:
Typ SET może zawierać maksymalnie 64 różne elementy.
Od wersji 3.23.51 MySQL podczas tworzenia tabeli z elementów należących do zestawu
wartości automatycznie usuwane są spacje końcowe.
W MySQL wartości przechowywane są w postaci liczbowej, w której bit mniej zna-
czący przechowywanej wartości odpowiada pierwszemu elementowi zestawu. Wartość
pobrana w postaci liczbowej ma ustawione bity odpowiadające elementom zestawu,
które tworzą wartość kolumny. Można na przykład pobrać wartości liczbowe z kolum-
ny w następujący sposób:
L T
150 Rozdział 4. f& Typy kol mn
Jeśli liczba jest zapisana w kolumnie , bity włączone w binarnej reprezentacji liczby
określają elementy zestawu w wartości kolumny. Dla kolumny zadeklarowanej jako
elementy mają następujące wartości dziesiętne i binarne:
Element SET Wartość dziesiętna Wartość binarna
Jeśli do takiej kolumny przypisze się wartość 9, odpowiada to binarnej wartości 1001,
czyli wybrane są pierwszy i czwarty element wartości i , dlatego w wyniku
otrzymamy wartość .
W przypadku wartości zawierającej więcej niż jeden element , nie ma znaczenia
kolejność, w jakiej elementy są wymienione podczas wstawiania wartości. Nie ma rów-
nież znaczenia, ile razy dany element jest wymieniony w wartości. Kiedy pózniej war-
tość jest pobierana, każdy element w wartości będzie pojawiać się raz z elementami
wymienionymi zgodnie z porządkiem, w którym zostały podane podczas tworzenia
tabeli. Jeśli kolumna została zadeklarowana jako , wtedy warto-
ści , i pojawią się w momencie pobrania jako .
Jeśli do kolumny zostanie przypisana wartość nieobsługiwana., zostanie ona zigno-
rowana.
Wartości są sortowane według porządku liczbowego. Wartości są ustawiane
przed niezerowymi wartościami .
Zazwyczaj element zestawu wyszukuje się za pomocą funkcji lub operato-
ra :
L T T
L T L
Pierwsza instrukcja znajduje wiersze, w których kolumna zawiera element ze-
stawu . Druga jest podobna, ale nie taka sama: odszukuje wiersze, w których
kolumna zawiera wartość w dowolnym miejscu, nawet jako podłańcuch innego
elementu zestawu.
Poniższe instrukcje są również prawidłowe:
L T
L T
Pierwsza z tych instrukcji powoduje wyszukanie wartości zawierających pierwszy
element zestawu, druga wyszukanie elementu, który dokładnie pasuje do wzorca.
Z porównaniami drugiego typu należy uważać. Porównywanie wartości zestawu do
zwróci inny wynik niż porównanie wartości do . Wartości
należy podawać dokładnie w tej samej kolejności, w której są zadeklarowane w defi-
nicji kolumny.
4.5. Rozmiar pamięci potrzebnej dla typów kol mn 151
Aby ustalić wszystkie możliwe wartości dla kolumny , należy użyć instrukcji
i przetworzyć definicję w drugiej kolumnie
wyniku.
4.5. Rozmiar pamięci
potrzebnej dla typów kolumn
Rozmiar pamięci dla każdego z typów kolumn, obsługiwanych przez MySQL, został
wymieniony według kategorii.
Maksymalny rozmiar wiersza w tabeli wynosi 65 534 bajty. Każda kolumna
typu lub stanowi tylko 5 do 9 bajtów tego rozmiaru.
Jeśli tabela lub zawiera jakieś typy kolumn o zmiennej długości, także
i format rekordu będzie zmiennej długości. Podczas tworzenia tabeli, MySQL może
spowodować w pewnych okolicznościach zmianę typu kolumny zmiennej długości na
kolumnę stałej długości lub na odwrót (patrz podpunkt 6.2.5.2).
Rozmiar pamięci potrzebnej dla typów liczbowych
Typ kol mny Wymagany rozmiar pamięci
1 bajt
2 bajty
3 bajty
, 4 bajty
8 bajtów
4 bajty jeśli , 8 bajtów jeśli
[ Pobierz całość w formacie PDF ]