Jestem nowy w MySQL i chciałbym wiedzieć:
Jak mogę utworzyć bazę danych za pomocą zestawu znaków, utf-8
tak jak to zrobiłem w Navicat?
create mydatabase;
... wydaje się używać jakiegoś domyślnego zestawu znaków.
Uwaga: Następujące jest teraz uważane za lepszą praktykę (patrz odpowiedź bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Oryginalna odpowiedź:
Spróbuj tego:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Aby uzyskać więcej informacji, zobacz Zestaw znaków bazy danych i układanie w Podręczniku MySQL.
utf8mb4
jest tym, co nazywają reszta z nasutf8
. Więc o coutf8
pytasz MySQL ? Jest to ograniczona wersja utf-8, która działa tylko dla podzbioru znaków, ale zawodzi w przypadku takich rzeczy jak emoji. Później dodali, żeutf8mb4
jest to poprawna implementacja, ale MySQL musi pozostać kompatybilny z poprzednimi błędami, dlatego dodano nowe kodowanie zamiast naprawiać stare. Wszystkie nowe bazy danych powinny korzystaćutf8mb4
.COLLATE utf8mb4_unicode_520_ci
lubutf8mb4_0900_ai_ci
lub nawet narodowe specyficzne, nputf8mb4_vi_0900_ai_ci
. W przypadku MariaDB 10.2.2+ masz zestawienia „nopad”utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.htmlutf8mb4_0900_ai_ci
. Wydaje się, że jest lepszy niżutf8mb4_unicode_ci
Powinieneś użyć:
Pamiętaj, że
utf8_general_ci
nie jest już zalecaną najlepszą praktyką. Zobacz powiązane pytania i odpowiedzi:Jaka jest różnica między utf8_general_ci i utf8_unicode_ci w przypadku przepełnienia stosu.
źródło
utf8mb4_0900_ai_ci
. Wydaje się, że jest lepszy niżutf8mb4_unicode_ci