Odnośniki
|
[ Pobierz całość w formacie PDF ] i : Wartość CHAR(4) Wymagana pamięć VARCHAR(4) Wymagana pamięć Wartości pobrane z kolumn i będą w obu przypadkach takie same, ponieważ z kolumn w momencie pobierania wartości z tabeli usuwane są końco- we spacje. Począwszy od MySQL 4.1 wartości w kolumnach i są sortowane i po- równywane według porządku sortowania zestawu znaków przypisanego do kolumny. W wersjach wcześniejszych sortowanie i porównania były wykonywane na podstawie porządku sortowania zestawu znaków serwera. Użytkownik może deklarować kolumnę z atrybutem , aby podczas sortowania i porównywania brana była pod uwagę wiel- kość liter, ponieważ użyte zostaną wartości liczbowe kodu, a nie porządek leksykalny. Atrybut nie wpływa na sposób, w jaki kolumna jest przechowywana i pobierana. Od MySQL 4.1.0 typ jest aliasem typu . Jest to spowodowane wymogami kompatybilności. 146 Rozdział 4. f& Typy kol mn Atrybut jest trwały. Oznacza to, że jeśli kolumna z atrybutem zostanie użyta w wyrażeniu, całe wyrażenie będzie traktowane jako wartość . Od wersji 4.1.0 można określać dla typu atrybut . Przypisuje on zestaw znaku . Od wersji 4.1.0 można określać dla typu atrybut . Przypisuje on zestaw znaku . Podczas tworzenia tabeli typ kolumny lub może zostać zmieniony bez informowania o tym użytkownika (patrz podpunkt 6.2.5.2). 4.4.2. Typy BLOB i TEXT jest skrótem angielskiej nazwy binary large object (wielki obiekt binarny). Cztery typy : , , i różnią się tylko maksymalną długo- ścią wartości, które mogą przechowywać (patrz podrozdział 4.5). Cztery typy : , , i odpowiadają czterem typom i mają te same maksymalne długości i wymagania co do pamięci. Kolumny typu są traktowane jako łańcuchy binarne. Kolumny są traktowane zgodnie z ich zestawem znaków. Podczas sortowania i porównywania wartości nie jest brana pod uwagę wielkość liter. Od wersji 4.1 MySQL operacje sortowania i porównywania wartości w kolumnach typu są wykonywane według porządku sortowania zestawu znaków przypisanego do kolumny. Wcześniej sortowanie i porów- nywanie tych kolumn było wykonywane na podstawie porządku sortowania zestawu znaków serwera. Podczas zapisu i pobierania nie jest wykonywana żadna konwersja związana z wielkością liter. Jeśli do kolumny lub zostanie przypisana wartość, która przekroczy maksymal- ną długość tego typu kolumny, wartość zostanie przycięta. W pewnym sensie kolumnę można traktować jako kolumnę o dowolnej wielkości. Podobnie kolumnę można traktować jako kolumnę . Typy i różnią się od typów i następującymi cechami: Kolumny i mogą mieć indeksy dopiero od wersji 3.23.2 MySQL. Starsze wersje programu nie obsługiwały indeksowania tych typów kolumn. Dla indeksów na kolumnach i należy określić długość przedrostka indeksu. Dla typów i jest to opcjonalne. Dla kolumn i nie ma usuwania końcowych spacji podczas zapisywania lub pobierania wartości. To odróżnia je od kolumn (spacje końcowe są usuwane w momencie pobierania wartości) i od kolumn (spacje końcowe są usuwane w momencie zapisywania wartości). Kolumny typu i nie mogą mieć wartości . 4.4. Typy łańc chowe 147 Od MySQL 4.1.0 typ i odpowiada typowi danych . Jest to mechanizm dodany dla kompatybilności. Interfejs Connector/ODBC deklaruje wartości jako , a wartości jako . Ponieważ wartości i mogą być niezwykle długie, podczas ich stosowania można spotkać się z pewnymi ograniczeniami: Jeśli na kolumnie typu lub ma być wykonana operacja lub , wartość kolumny należy przekształcić na obiekt o stałej długości. Standardowo wykonuje się to za pomocą funkcji , na przykład: L T T W przeciwnym razie podczas sortowania użyte zostaną tylko pierwsze bajty kolumny. Domyślna wartość zmiennej wynosi 1024 i można ją zmienić przy użyciu opcji podczas uruchamiania serwera . Istnieje możliwość wykonania operacji grupowania na wyrażeniu, które jest związane z wartościami lub za pomocą aliasu lub przez określenie położenia kolumny: L T T L T T Maksymalny rozmiar obiektu lub określa jego typ, ale o tym, jaką największą wartość można w rzeczywistości przesłać między klientem a serwerem, decyduje ilość dostępnej pamięci i rozmiar buforów komunikacyjnych. Rozmiar bufora wiadomości można zastąpić, zmieniając wartość zmiennej , ale trzeba to zrobić dla serwera i programu klienckiego. Na przykład na zmianę wartości opcji po stronie klienta pozwalają i . Każda wartość i jest wewnętrznie reprezentowana przez obiekty o oddzielnie przydzielanej pamięci. To odróżnia je od wszystkich innych typów kolumn, dla których pamięć jest przydzielana raz na całą kolumnę w momencie otwarcia tabeli. 4.4.3. Typ Enum to obiekt łańcuchowy z wartością wybieraną z listy dozwolonych wartości, które są w sposób jawny wyliczone w deklaracji kolumny podczas tworzenia tabeli. W pewnych warunkach wartość może być również pustym łańcuchem ( ) lub wartością : Jeśli do kolumny zostanie wstawiona niepoprawna wartość (czyli łańcuch nienależący do listy dopuszczalnych wartości), to zostanie zastąpiona pustym 148 Rozdział 4. f& Typy kol mn łańcuchem reprezentującym błędną wartość. Można go odróżnić od zwykłego pustego łańcucha, ponieważ jego wartość liczbowa jest równa 0. Więcej o tym za chwilę. Jeśli w deklaracji kolumny dopuszczone będzie użycie wartości , będzie ona wartością prawidłową i wtedy wartością domyślną jest . Jeśli kolumna zostanie zadeklarowana jako , jej wartością domyślną będzie pierwszy element na liście dozwolonych wartości. Każda wartość wyliczenia ma indeks: Wartości należące do listy dopuszczalnych elementów w deklaracji kolumny są ponumerowane, rozpoczynając od 1. Wartość indeksu pustego łańcucha reprezentującego błąd wynosi 0. Oznacza to, że poniższa instrukcja pomoże odszukać wiersze, którym przypisano niepoprawne wartości : L T Indeksem wartości jest . [ Pobierz całość w formacie PDF ] |
|||
Sitedesign by AltusUmbrae. |