Soy nuevo en MySQL y me gustaría saber:
¿Cómo puedo crear una base de datos con charset utf-8
como hice en navicat?
create mydatabase;
... parece estar usando algún tipo de juego de caracteres predeterminado.
Soy nuevo en MySQL y me gustaría saber:
¿Cómo puedo crear una base de datos con charset utf-8
como hice en navicat?
create mydatabase;
... parece estar usando algún tipo de juego de caracteres predeterminado.
Respuestas:
Nota: Lo siguiente ahora se considera una mejor práctica (ver la respuesta de bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Respuesta original:
Prueba esto:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Para obtener más información, consulte Conjunto de caracteres de la base de datos y clasificación en el manual de referencia de MySQL
COLLATE utf8mb4_unicode_520_ci
o utf8mb4_0900_ai_ci
o incluso específica para la localización, por ejemplo: utf8mb4_vi_0900_ai_ci
. Para MariaDB 10.2.2+, tiene intercalaciones "nopad" utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Parece que es mejor queutf8mb4_unicode_ci
Deberías usar:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Tenga en cuenta que utf8_general_ci
ya no se recomienda la mejor práctica. Vea las preguntas y respuestas relacionadas:
¿Cuál es la diferencia entre utf8_general_ci y utf8_unicode_ci en Stack Overflow?
utf8mb4_0900_ai_ci
. Parece que es mejor queutf8mb4_unicode_ci
utf8mb4
es lo que el resto de nosotros llamamosutf8
. Entonces, ¿qué es MySQLutf8
que preguntas? Es una versión limitada de utf-8 que solo funciona para un subconjunto de los personajes pero falla para cosas como emoji. Más tarde agregaronutf8mb4
cuál es la implementación correcta, pero MySQL debe ser compatible con sus antiguos errores, por eso se agregó una nueva codificación en lugar de corregir la anterior. Todas las bases de datos nuevas deben usarutf8mb4
.