Crear tablas en MySQL

Crear tablas en MySQL

¡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.

Anuncio

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 tablas en mysql workbench

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”.
Crear tabla clientes mysql workbench

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

Ejecutar consulta crear tabla cliente mysql workbench

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.
Crear tabla mascotas mysql workbench

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.

Crear relación entre tablas mysql workbench

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

Detalle consulta crear table mascota mysql workbench

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.

Consulta SQL crear 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

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.

2 comentarios en “Crear tablas en MySQL”

  1. Pingback: ¿Cómo crear tabla en base de datos MySQL? - Pharos

  2. 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *