¡Hola, bienvenid@s a todos! Continuando con el curso de MySQL 8 desde Cero, hoy veremos cómo crear tablas en MySQL utilizando la herramienta MySQL Workbench.
Para crear las tablas de una base de datos, existen dos opciones diferentes. El primero es mediante el uso de la herramienta visual como MySQL Workbench o phpMyadmin, que proporciona una interfaz visual que facilita la creación y diseño de tablas de manera intuitiva. La segunda opción consiste en utilizar consultas SQL.
¡Empecemos!
Crear tablas con una herramienta visual
Lo primero que debemos hacer es iniciar la herramienta de MySQL Workbench. Para ejemplificar, utilizaremos la base de datos de la “clínica-veterinaria” que creamos en una clase anterior (de igual manera, utilizaremos el diagrama entidad-relación, creado en anteriores clases). manejable para el usuario final.

Crear las tablas desde MySQL Workbench
Para crear una tabla en MySQL Workbench entraremos a la opción “schemas” en donde buscaremos la base de datos “clínica_veterinaria”; desplegamos las opciones de la base de datos en la opción “tables”, clic derecho y seleccionamos “Create table”. Se desplegará una pestaña en la cual definiremos la estructura de la tabla.

Crear la tabla Clientes
En primer lugar, crearemos la tabla ”clientes”, está contendrá los siguientes campos: Id, nombre, apellido, zona, dirección y teléfono.
- El campo Id es el identificador de la tabla, tiene que ser único por cada registro a fin de mantener la integridad de los datos. Este atributo se define como clave primaria, no permite nulos y es autoincrementable.
- Los demás campos corresponden al tipo VARCHAR a fin de almacenar cadenas de texto. Para cada uno especificamos la longitud máxima. Una vez llenados los campos, generamos la tabla, haciendo clic en el botón “Apply”.

Se abrirá una ventana emergente con el detalle de la consulta, hacemos clic en el botón “Apply” para generar la tabla clientes.

Crear la tabla Mascotas
De manera similar, vamos a crear la tabla “Mascotas” con los siguientes datos: id, nombre, edad, tipo, color y sexo.
- El campo “sexo” se declara de tipo ENUM para restringir la entrada a solo dos datos: Macho o Hembra.

Además, analizando la relación existente entre la tabla clientes y mascotas, notamos una relación de uno a muchos (Un cliente puede tener muchas mascotas, una mascota pertenece a un solo cliente). Podemos realizar esta relación desde la opción “Foreign Keys”, el campo “client_id” será la llave foránea que hará referencia a la tabla “Clientes”
Una vez definidas las relaciones entre las tablas, hacemos clic en el botón «Apply» para aplicar los cambios. Con esto, aseguramos que las tablas están vinculadas correctamente y se respeten las integridades referencial y de datos.

Se abrirá una ventana emergente con el detalle de la consulta, hacemos clic en el botón “Apply” para generar la tabla “Mascotas”.

Crear tablas desde consultas SQL
Para crear tablas en MySQL utilizando consultas SQL, podemos utilizar la herramienta de MySQL Workbench o una terminal.
Crear la tabla Doctores
En primer lugar, crearemos la tabla “Doctores”, hacemos clic en el botón “Create a new SQL tab”; seguidamente escribimos la sentencia SQL para generar la tabla “Doctores” con los siguientes campos: Id, nombre y apellido, cargo, dirección y teléfono.
CREATE TABLE `clinica_veterinaria`.`doctores`( `id` int NOT NULL AUTO_INCREMENT, `nombre_apellido` varchar(75) NOT NULL, `cargo` varchar(35) NOT NULL, `direccion` varchar(250) NULL, `telefono` varchar(15) NULL, PRIMARY KEY(`id`) )
Una vez escrita la sentencia SQL, hacemos clic en el botón “Execute” para generar la tabla doctores.

Crear la tabla Servicios
De manera similar, crearemos la tabla “Servicios” con los siguientes datos: Id, nombre, costo y detalle. Con la siguiente consulta SQL.
- En el campo detalle seleccionamos el tipo TEXT a fin de poder almacenar un gran volumen de información.
- En el campo costo seleccionamos el tipo DOUBLE a fin de poder almacenar números reales con dos decimales.
CREATE TABLE `clinica_veterinaria`.`servicios`( `id` int NOT NULL AUTO_INCREMENT, `nombre` varchar(75) NOT NULL, `costo` double(7, 2) NOT NULL, `detalle` text(2000) NULL, PRIMARY KEY(`id`) );
Crear la tabla Kardexs
De manera similar, crearemos la tabla ”Kardexs” con los siguientes datos: código, enfermedades y detalle.
Además, si nos fijamos en la relación existente entre las tablas mascotas y kardex. notaremos que es una relación uno a uno (Una mascota tiene un único kardex, un kardex pertenece a una mascota). Expresaremos dicha relación en la tabla “Kardexs”.
CREATE TABLE `clinica_veterinaria`.`kardexs`( `id` int NOT NULL AUTO_INCREMENT, `codigo` varchar(25) NOT NULL, `enfermedades` varchar(250) NULL, `detalle` text(2000) NULL, `mascota_id` int, PRIMARY KEY(`id`), CONSTRAINT `mascota_id` FOREIGN KEY (`mascota_id`) REFERENCES `clinica_veterinaria`.`mascotas`(`id`) );
Crear la relación entre las tablas Doctores y Servicios
La relación existente entre las tablas “Doctores” y “Servicios” es una relación de muchos a muchos (Un doctor realiza muchos servicios, un servicio es realizado por muchos doctores), por lo que debemos generar una tercera tabla: “doctor-servicio”, con los Ids correspondientes a ambas tablas.
CREATE TABLE `clinica_veterinaria`.`doctor-servicio`( `id` int NOT NULL AUTO_INCREMENT, `doctor_id` int NOT NULL, `servicio_id` int NOT NULL, PRIMARY KEY(`id`), CONSTRAINT `doctor_id` FOREIGN KEY (`doctor_id`) REFERENCES `clinica_veterinaria`.`doctores`(`id`), CONSTRAINT `servicio_id` FOREIGN KEY (`servicio_id`) REFERENCES `clinica_veterinaria`.`servicios`(`id`) );
Crear la relación entre las tablas Servicios y Mascotas
De manera similar, la relación existente entre las tablas “Servicios” y “Mascotas” es una relación de muchos a muchos (Un servicio es realizado a muchas mascotas, una mascota es atendido en muchos servicios). Por lo tanto, necesitaremos generar una tercera tabla: “mascota-servicio” con los Ids de ambas tablas y además un campo “fecha” donde se registrará la fecha y hora del servicio realizado, un campo “detalle” donde se especificará el trabajo realizado.
CREATE TABLE `clinica_veterinaria`.`mascota-servicio`( `id` int NOT NULL AUTO_INCREMENT, `fecha` datetime NOT NULL, `detalle` text(2000) NULL, `mascota_id` int NOT NULL, `servicio_id` int NOT NULL, PRIMARY KEY(`id`), CONSTRAINT `mascota_id_1` FOREIGN KEY (`mascota_id`) REFERENCES `clinica_veterinaria`.`mascotas`(`id`), CONSTRAINT `servicio_id_1` FOREIGN KEY (`servicio_id`) REFERENCES `clinica_veterinaria`.`servicios`(`id`) );
Con esto concluimos la clase de crear tablas en MySQL. Si tienes alguna duda o consulta déjanos un mensaje para aclarar tus dudas.
En la siguiente clase veremos a más detalle los que son las Claves primarias, foráneas y relaciones entre tablas.
¡Te espero en la próxima clase!
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
Pingback: ¿Cómo crear tabla en base de datos MySQL? - Pharos
Excelente información , muy puntual y precisa , yo soy una persona sin mucho conocimiento de bases de datos y la instalación de MySQL se me complico un poco , les comparto este manual que dice paso a paso como instalar MySQL