Typy łańcuchowe
Można je podzielić na 3 grupy:
-
klasyczne łańcuchy (stringi) znaków
-
CHAR- łańcuchy o stałej długości -
VARCHAR- łańcuchy o zmiennej długości
-
-
typy
TEXTdo przechowywania długich tekstów orazBLOBdla dużych danych binarnych -
typy specjalne
SETdo określonego zbioru wartości orazENUM- typ wyliczeniowy, gdzie można wybrać jedną wartość spośród określonego zbioru wartości
Zwykłe typy łańcuchowe
Stosowaliśmy już tworząc tabele bazy ksiegarnia_internetowa, a następnie omawiając zastosowane w tabelach typy danych. Zapamiętaj, że długość łańcuchów jest mierzona liczbą znaków je tworzących. Łańcuchy zapisywane w kolumnach typu CHAR, zostają automatycznie uzupełnione spacjami aż do całkowitego wyczerpania ich długości. W kolumnach typu VARCHAR, łańcuchy zajmują tyle pamięci, ile wynosi ich rzeczywista długość. W przypadku występowania dodatkowych spacji, zostają one automatycznie usunięte. Tak więc w przypadku danych typu CHAR MySQL usunie dodatkowe spacje podczs pobierania danych z bazy, natomiast w przypadku VARCHAR, dodatkowe spacje są eliminowane podczas zapisywania danych.
| Typ | Zakres | Opis |
|---|---|---|
| [NATIONAL] CHAR(M) [BINARY | ASCII I UNICODE] | 1-255 znaków | Łańcuch znaków stałej długości M, gdzie M może przyjmować wartości od 1 do 255. Słowo kluczowe NATIONAL, wymusza zastosowanie domyślnego zbioru znaków. BINARY wyłącza rozpoznawanie wielkości liter (domyślnie wielkość liter jest rozpoznawana). ASCII lub UNICODE definiują używany w kolumnie zestaw znaków. |
| CHAR | 1 | Synonim typu CHAR(1) |
| [NATIONAL] VARCHAR(M) [BINARY] | 1-255 | Łańcuch znaków różnej długości. Pozostałe słowa kluczowe, jak wyżej |
Typy TEXT i BLOB
W praktyce, jedyna różnica między tymi typami polega na tym, że BLOB rozróżnia wielkość liter, natomiast TEXT - nie. Z definicji BLOB to Binary Large Objects - duże obiekty binarne. Mogą one przechowywać każdy rodzaj danych, jak obrazy, dźwięki, itp.
| Typ | Maksymalna długość | Opis |
|---|---|---|
| TINYBLOB | 28 - 1 (co daje 255) | Mały obiekt BLOB |
| TINYTEXT | 28 - 1 (co daje 255) | Krótkie pole tekstowe |
| BLOB | 216 - 1 (co daje 65535) | Zwykły obiekt BLOB |
| TEXT | 216 - 1 (co daje 65535) | Zwykłe pole tekstowe |
| MEDIUMBLOB | 234 - 1 (co daje 16777215) | Średni obiekt BLOB |
| MEDIUMTEXT | 234 - 1 (co daje 16777215) | Ple tekstowe średniej długości |
| LONGBLOB | 232 - 1 (co daje 4294967295) | Duży obiekt BLOB |
| LONGTEXT | 232 - 1 (co daje 4294967295) | Duże pole tekstowe |
Typy specjalne SET i ENUM
SET - typ zbiorowy, służy do zawężenia wartości danych, które mogą być zapisywane w danej kolumnie, do zdefiniowanego zbioru wartości. Zbiór wartości może zawierać co najwyżej 64 elementy.
ENUM - typ wyliczeniowy, tym różni się od typu zbiorowego, że kolumny tego typu mogą zawierać tylko jedną spośród zdefiniowanego zbioru wartosci lub wartość NULL. Zbiór dopuszczalnych wartości może zawierać do 65535 elementów.
| Typ | Maksymalna ilość wartości w zbiorze | Opis |
|---|---|---|
| SET('wartość1', 'wartość2'...) | 64 | W kolumnie tego typu, może się znajdować podzbiór zbioru wartości dopuszczalnych lub NULL |
| ENUM('wartość1', 'wartość2'...) | 65535 | W kolumnie tego typu, może się znajdować tylko jedna wartość ze zbioru wartości dopuszczalnych lub NULL |