Tema 4 · Modelado & UTF-8

Creación de Bases de Datos y el Estándar utf8mb4 (Acentos y Emojis)

Aprende a crear bases de datos en phpMyAdmin y por qué la elección del cotejamiento utf8mb4_unicode_ci es indispensable para soportar tildes, eñes y emojis sin corrupción.

Paso a Paso: Crear una Nueva Base de Datos

  1. En la barra lateral izquierda de phpMyAdmin, haz clic en el enlace "Nueva" (o ve a la pestaña superior Bases de datos).
  2. En el campo Nombre de la base de datos, escribe el identificador de tu proyecto utilizando minúsculas y guiones bajos (ejemplo: tienda_online o kilopolis_academia).
  3. En el menú desplegable contiguo Cotejamiento (Collation), selecciona:
    utf8mb4_unicode_ci (o en MySQL 8 moderno utf8mb4_0900_ai_ci).
  4. Haz clic en el botón Crear. ¡Tu base de datos quedará registrada de inmediato en el motor!

¿Por qué NUNCA Debes Usar `latin1` ni `utf8` Antiguo?

Uno de los problemas más dolorosos para los desarrolladores novatos es guardar un texto como "Canción" o un emoji como "🚀" y ver que en la pantalla aparece: Canción o ????.

Juego de Caracteres Bytes por Carácter Comportamiento en Producción
latin1_swedish_ci 1 byte Obsoleto. Solo admite caracteres de Europa occidental. Falla con símbolos modernos y otros alfabetos.
utf8_general_ci (utf8mb3) Máximo 3 bytes Incompleto. La implementación antigua de MySQL solo usaba 3 bytes; se corrompe al recibir emojis de WhatsApp o caracteres asiáticos de 4 bytes.
utf8mb4_unicode_ci 4 bytes completos Estándar Mundial. Soporta el 100% de los idiomas del planeta, acentos, diéresis, caracteres matemáticos y emojis modernos sin corromper la base de datos.

¿Qué Significa el Sufijo `_ci`?

En los nombres de cotejamiento, las letras finales indican cómo compara el motor las cadenas de texto:
• _ci (Case Insensitive): No distingue entre mayúsculas y minúsculas (una búsqueda de 'maria' encontrará 'Maria' y 'MARIA'). Es el comportamiento ideal para usuarios humanos.
• _bin (Binary / Case Sensitive): Compara el valor numérico exacto de cada byte; 'A' es diferente de 'a'.

⚡ Sentencia DDL Equivalente para Creación de Base de Datos

Código SQL estándar generado automáticamente por phpMyAdmin tras bastidores:

crear-base-de-datos.sql
Solo lectura
-- Crear base de datos con juego de caracteres completo utf8mb4
CREATE DATABASE IF NOT EXISTS `tienda_online`
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_unicode_ci;

-- Verificar cotejamiento de la base de datos recién creada
SELECT 
  SCHEMA_NAME, 
  DEFAULT_CHARACTER_SET_NAME, 
  DEFAULT_COLLATION_NAME 
FROM information_schema.SCHEMATA 
WHERE SCHEMA_NAME = 'tienda_online';
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿Por qué en aplicaciones web modernas es obligatorio utilizar el cotejamiento "utf8mb4_unicode_ci" en lugar del antiguo "utf8_general_ci"?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual de phpMyAdmin: Gestión de Bases de Datos y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.