Lekcje >> Podstawy MySQL
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

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 oraz BLOB dla dużych danych binarnych
  • typy specjalne SET do określonego zbioru wartości oraz ENUM - 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.

Tabela 3_5_3_1. Zwykłe typy łańcuchowe
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.

Tabela 3_5_3_2. Typy TEXT i BLOB
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.

Tabela 3_5_3_3. Typy specjalne SET i ENUM
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