Curso de MySQL
Crear una base de datos en MySQL: CREATE DATABASE paso a paso
Por Víctor Peña · Publicado el

Hola, ¿cómo están? Continuando con el curso de MySQL, hoy creamos nuestra primera base de datos. Con la seguridad ya configurada, es momento de empezar a construir.
¡Empecemos!
La sentencia básica
CREATE DATABASE clinica;
Eso es todo. Ya tienes una base de datos vacía, lista para recibir tablas.
Para ver que existe:
SHOW DATABASES;
Verás la tuya junto a las del sistema —information_schema, mysql, performance_schema, sys—, que como dijimos no hay que tocar.
Evitar el error si ya existe
Si ejecutas CREATE DATABASE sobre una base que ya existe, MySQL lanza un error. Para evitarlo:
CREATE DATABASE IF NOT EXISTS clinica;
Es lo que se usa en los scripts de instalación, para que se puedan ejecutar más de una vez sin fallar.
El juego de caracteres: la línea que evita dolores
Aquí está lo más importante de esta lección, y lo que casi todos los tutoriales omiten.
CREATE DATABASE clinica
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Ponlo siempre. Es la diferencia entre que tu base guarde bien las tildes, las eñes y los emojis, o que un día aparezcan como á y ñ.
Por qué utf8mb4 y no utf8
Este detalle es peculiar de MySQL y conviene conocerlo: el utf8 de MySQL no es UTF-8 real. Es una implementación incompleta que solo admite hasta 3 bytes por carácter, lo que deja fuera los emojis y algunos caracteres asiáticos.
El UTF-8 verdadero, con sus 4 bytes, se llama utf8mb4 —de multi-byte 4—. Es el que quieres siempre.
Si alguna vez viste una aplicación que se rompe cuando un usuario escribe un emoji en un comentario, la causa suele ser exactamente esta.
Qué es la collation
El CHARACTER SET define cómo se guardan los caracteres. La COLLATE define cómo se comparan y ordenan.
utf8mb4_unicode_ci— elcisignifica case insensitive: no distingue mayúsculas. Buscar «ana» encuentra «Ana». Además ordena correctamente en español.utf8mb4_bin— distingue mayúsculas y acentos. Útil para códigos o contraseñas, poco práctico para nombres.utf8mb4_general_ci— más antigua y ligeramente más rápida, pero con reglas de ordenación menos correctas.
Para la mayoría de proyectos, utf8mb4_unicode_ci es la elección adecuada.
Nombrar bien la base de datos
Reglas que evitan problemas:
- Todo en minúsculas. En Linux los nombres distinguen mayúsculas; en Windows no. Una base llamada
Clinicafunciona en tu máquina y falla en el servidor. - Sin espacios ni tildes. Usa guiones bajos:
clinica_dental, noclínica dental. - Descriptivo pero corto. Vas a escribirlo muchas veces.
- Evita palabras reservadas de SQL como
order,groupotable.
Seleccionar la base de datos
Antes de trabajar con sus tablas, hay que indicarle a MySQL cuál usar:
USE clinica;
A partir de ahí, todas las sentencias se aplican a esa base. Para saber cuál está activa:
SELECT DATABASE();
Si olvidas el USE, obtendrás el error «No database selected», que es de los más frecuentes al empezar.
En Workbench también puedes hacer doble clic en el nombre de la base en el panel izquierdo: se pone en negrita y equivale al USE.
Ver la definición de una base
SHOW CREATE DATABASE clinica;
Devuelve la sentencia completa con la que fue creada, incluidos el juego de caracteres y la collation. Es útil para comprobar que una base heredada esté bien configurada.
Modificar una base existente
Si te diste cuenta tarde de que quedó en utf8 en vez de utf8mb4:
ALTER DATABASE clinica
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Un aviso importante: esto cambia el valor por defecto para las tablas nuevas, pero no convierte las que ya existen. Esas hay que alterarlas una por una:
ALTER TABLE pacientes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Es otra razón para hacerlo bien desde el principio.
Eliminar una base de datos
DROP DATABASE clinica;
Esta sentencia no pide confirmación y no se puede deshacer. Borra la base y todo lo que contiene, al instante.
Antes de ejecutarla en cualquier servidor que no sea tu máquina, comprueba dos cosas: que el nombre es el correcto, y que existe un respaldo reciente.
Una versión más segura para scripts:
DROP DATABASE IF EXISTS clinica;
Crearla desde las herramientas
En Workbench: el icono de base de datos con un signo más, en la barra de herramientas. Te pide el nombre, el juego de caracteres y la collation. Antes de aplicar, muestra el SQL que va a ejecutar, lo cual es una buena forma de aprender la sintaxis.
En phpMyAdmin: pestaña Bases de datos, escribe el nombre, elige utf8mb4_unicode_ci en el desplegable y pulsa Crear.
En ambos casos se ejecuta exactamente el CREATE DATABASE que vimos.
La base de datos del curso
Vamos a trabajar con un sistema de clínica, el que diseñamos en la lección del diagrama:
CREATE DATABASE IF NOT EXISTS clinica
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE clinica;
Ejecútalo, porque a partir de la próxima lección empezamos a crear sus tablas.
Errores comunes
- Olvidar
utf8mb4y descubrirlo cuando aparecen caracteres raros. - Usar
utf8creyendo que es UTF-8. - Nombres con mayúsculas, que fallan al pasar de Windows a Linux.
- Olvidar
USEantes de trabajar con las tablas. - Ejecutar
DROP DATABASEsin respaldo.
Para cerrar
Crear una base de datos es una línea, pero esa línea decide cómo se van a guardar los textos durante toda la vida del sistema. La versión completa —con utf8mb4 y utf8mb4_unicode_ci— cuesta lo mismo de escribir y te ahorra un problema que después es tedioso de arreglar.
En la siguiente lección veremos los tipos de datos, que es lo que necesitas antes de crear tablas.
Saludos y éxitos.
Norvic Software
Desarrollamos el software que tu empresa necesita
Somos una fábrica de software en Bolivia. Construimos sistemas a medida y aplicaciones móviles, y llevamos Inteligencia Artificial a las empresas que ya tienen un sistema funcionando.
- Chatbots con Inteligencia Artificial
- Creación de agentes de IA
- Integración de IA en tus sistemas
- Desarrollo de software a medida
- Aplicaciones móviles iOS y Android
- Consultoría y asesoramiento técnico
Cotización sin costo · Respuesta directa por WhatsApp