CHARACTER SET oznacza zestaw znaków używany do przechowywania tekstu w bazie danych, tabeli lub kolumnie. Ma znaczenie przy zapisie liter narodowych, np. polskich znaków: ą, ć, ę, ł, ń, ó, ś, ź, ż.
Przykład w MySQL
CREATE TABLE adres (
ulica VARCHAR(70)
) CHARACTER SET utf8;
W tym przykładzie tabela adres ma używać zestawu znaków utf8, co umożliwia przechowywanie wielu znaków spoza podstawowego alfabetu łacińskiego.
Czy CHARACTER SET jest wymagane?
Nie zawsze. Jeśli baza danych ma już ustawiony odpowiedni domyślny zestaw znaków, nie trzeba go podawać przy każdej tabeli.
Przykład bez jawnego kodowania:
CREATE TABLE adres (
ulica VARCHAR(70)
);
Tabela zostanie wtedy utworzona z domyślnym zestawem znaków określonym dla bazy danych lub serwera.
utf8 i utf8mb4
W MySQL często spotyka się utf8, ale obecnie zalecane jest utf8mb4, ponieważ obsługuje pełniejszy zakres znaków Unicode, np. emoji i niektóre znaki specjalne.
CREATE TABLE adres (
ulica VARCHAR(70)
) CHARACTER SET utf8mb4;
Ważne na egzaminie
CHARACTER SET utf8nie jest obowiązkowe w każdym poleceniuCREATE TABLE.- Odpowiednie kodowanie pozwala zapisywać polskie znaki.
- Brak jawnego
CHARACTER SETnie musi oznaczać, że polskie znaki nie będą działać — zależy to od ustawień domyślnych bazy.