Creación y Relaciones de Tablas en SQL

Clase 11 de 24Curso de Fundamentos de Bases de Datos

Resumen

SQL ofrece una manera natural y clara para gestionar bases de datos, especialmente cuando se trata de crear tablas y definir relaciones entre ellas. Entender cómo funcionan los comandos básicos para crear tablas, asignar tipos de datos, establecer columnas únicas y manejar relaciones con llaves externas (foreign keys) es fundamental para construir una estructura eficiente y organizada.

¿Cómo crear tablas correctamente en MySQL?

El comando básico para crear una tabla en MySQL comienza con:

CREATE TABLE IF NOT EXISTS nombre_tabla (
  columna TipoDato Restricciones,
  ...
);

Al crear una tabla, es recomendable nombrar claramente las columnas según lo que contengan, utilizando sustantivos específicos:

  • Utiliza nombres descriptivos como ProductID en lugar de simplemente ID.
  • Considera claramente los tipos de datos adecuados (VARCHAR, FLOAT, INTEGER, etc.).

¿Cuál es la importancia del campo slug y por qué hacerlo único?

El campo slug es especialmente relevante para mejorar la accesibilidad de URL. Debe guardarse como único porque:

  • Facilita la optimización SEO en páginas web.
  • Proporciona enlaces autodescriptivos, fáciles de identificar.

Ejemplo práctico de creación del campo slug:

slug VARCHAR(200) NOT NULL UNIQUE

¿Cómo manejar campos Text y restricciones de longitud en MySQL?

Cuando se espera almacenar textos largos o desconocidos en longitud, utiliza el tipo de dato TEXT:

  • Ideal para descripciones, contenido multilingüe o caracteres extendidos.
description TEXT NULL

¿Qué son las llaves externas ('Foreign Keys') y cómo configurarlas?

Una foreign key crea una relación estricta entre tablas, permitiendo mantener integridad referencial:

  • Define claramente qué registros dependen de otros.
  • Evita inconsistencias al modificar o borrar datos relacionados.

Ejemplo sencillo:

FOREIGN KEY (ClientID) REFERENCES Clients(ClientID)

¿Cómo actuar cuando necesitamos modificaciones dinámicas usando ENUM?

El tipo de datos ENUM permite definir estados específicos para una columna:

  • Opciones limitadas claramente definidas.
  • Se asigna automáticamente un valor por defecto si es necesario (OPEN).
status ENUM('OPEN', 'PAID', 'LOST') NOT NULL DEFAULT 'OPEN'

Ten en cuenta que modificar un ENUM posteriormente puede requerir ajustes directos en la base de datos, así como actualizaciones previas en datos existentes.

¿Cuál es el valor de usar 'cascade' en llaves externas?

Utilizar ON UPDATE CASCADE y ON DELETE CASCADE en llaves externas hace posible:

  • Actualizar automáticamente los campos relacionados cuando se modifica la clave principal.
  • Borrar automáticamente registros relacionados al eliminar el registro principal.

Sin embargo, debe hacerse cautelosamente, como muestra el ejemplo:

FOREIGN KEY (ClientID) REFERENCES Clients(ClientID)
ON UPDATE CASCADE
ON DELETE CASCADE

¿Cómo verificar estructuras existentes en tablas creadas?

Para revisar la creación y estructura actual de una tabla, utiliza:

SHOW CREATE TABLE nombre_tabla;

Esta instrucción expone claramente las llaves y restricciones aplicadas.

Te invitamos a poner estos conocimientos en práctica creando tus propias tablas y relaciones ¿Te has encontrado algún desafío particular implementando estos comandos? Comparte tu experiencia y cualquier duda en los comentarios.