Я новачок у MySQL і хотів би знати:
Як я можу створити базу даних із utf-8
шаблоном, як я робив у navicat?
create mydatabase;
... здається, використовує якусь схему за замовчуванням.
Я новачок у 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.
COLLATE utf8mb4_unicode_520_ci
або utf8mb4_0900_ai_ci
або навіть локаль конкретні, наприклад: utf8mb4_vi_0900_ai_ci
. Для MariaDB 10.2.2+, ви маєте порівняння "nopad" utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/uk/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Здається, кращеutf8mb4_unicode_ci
Ви повинні використовувати:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Зауважте, що utf8_general_ci
це більше не рекомендується найкраща практика. Дивіться відповідні запитання:
Яка різниця між utf8_general_ci та utf8_unicode_ci у стеку Overflow.
utf8mb4_0900_ai_ci
. Здається, кращеutf8mb4_unicode_ci
utf8mb4
це те, що ми називаємо рештаutf8
. Отже, щоutf8
ви запитуєте MySQL ? Це обмежена версія utf-8, яка працює лише для підмножини символів, але не працює для таких матеріалів, як смайли. Пізніше вони додали,utf8mb4
що це правильна реалізація, але MySQL повинен залишатися назад сумісним зі старими помилками, тому додано нове кодування замість виправлення старого. Усі нові бази даних повинні використовуватиutf8mb4
.