Я новичок в MySQL, и я хотел бы знать:
Как я могу создать базу данных с utf-8
набором символов, как я это сделал в Navicat?
create mydatabase;
... кажется, использует какую-то кодировку по умолчанию.
Примечание: следующее теперь считается лучшей практикой (см . Ответ bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Оригинальный ответ:
Попробуй это:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Для получения дополнительной информации см. Набор символов базы данных и сопоставление в Справочном руководстве MySQL.
utf8mb4
это то, что остальные называютutf8
. Так что же такое MySQL,utf8
спросите вы? Это ограниченная версия utf-8, которая работает только для подмножества персонажей, но не подходит для таких вещей, как эмодзи. Позже они добавили,utf8mb4
что это правильная реализация, но MySQL должен оставаться обратно совместимым со своими старыми ошибками, поэтому добавил новую кодировку вместо исправления старой. Все новые базы данных следует использоватьutf8mb4
.COLLATE utf8mb4_unicode_520_ci
илиutf8mb4_0900_ai_ci
или даже локаль конкретные, например:utf8mb4_vi_0900_ai_ci
. Для MariaDB 10.2.2+ у вас есть сопоставления nopadutf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/ru/charset-unicode-sets.htmlutf8mb4_0900_ai_ci
. Кажется, лучше, чемutf8mb4_unicode_ci
Вы должны использовать:
Обратите внимание, что
utf8_general_ci
больше не рекомендуется лучшая практика. Смотрите соответствующие вопросы и ответы:В чем разница между utf8_general_ci и utf8_unicode_ci в переполнении стека.
источник
utf8mb4_0900_ai_ci
. Кажется, лучше, чемutf8mb4_unicode_ci