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
TEXT
do przechowywania długich tekstów orazBLOB
dla dużych danych binarnych -
typy specjalne
SET
do 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 |