Resumen

Construir bases de datos confiables empieza por definir relaciones lógicas claras y aplicar buenas prácticas al crear tablas. Aquí verás cómo vincular columnas por ID, leer errores y warnings útiles de MySQL, inspeccionar estructuras con comandos esenciales y evitar pérdidas irreversibles con DROP, todo con un enfoque práctico y directo.

¿Cómo se relacionan lógicamente las tablas sin claves foráneas?

En este enfoque, la relación entre tablas es lógica, no dura: no hay restricción activa y puede existir un libro sin autor. La vinculación se hace por ID coincidentes y tipos de datos iguales en ambas tablas.

  • Usa el mismo tipo y atributos en las columnas relacionadas: por ejemplo, INT UNSIGNED en ambas tablas.
  • Define la llave primaria solo en la tabla dueña del dato (authors), y como entero simple en la referenciada (books).
  • Aclara criterios de nulabilidad: por ejemplo, nombre NOT NULL y país opcional.
  • Adopta una convención de estilo: palabras reservadas en mayúsculas y nombres de tablas/columnas en minúsculas para mejorar lectura.

Ejemplo de tabla de autores y referencia lógica en books:

CREATE TABLE IF NOT EXISTS authors (
  author_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  country_code VARCHAR(3) NULL
);

-- En books, author_id es solo referencia lógica (no PRIMARY KEY)
-- Debe coincidir el tipo: INT UNSIGNED.
ALTER TABLE books
  ADD COLUMN author_id INT UNSIGNED;

Claves prácticas: - PRIMARY KEY y AUTO_INCREMENT donde nace el dato (authors). - En la otra tabla, la columna es solo referencia y no controla la operación de esa tabla. - Mantén coherencia de tipos siempre que una columna relacione dos o más tablas.

¿Qué buenas prácticas y comandos evitan errores al crear tablas?

MySQL ofrece mensajes de error y warnings muy descriptivos. Úsalos a tu favor y protege tus workflows.

  • Crea tablas de forma idempotente con IF NOT EXISTS.
  • Verifica si ya existen tablas con SHOW TABLES.
  • Lee advertencias con SHOW WARNINGS si ves “One warning”.
  • Comprueba contenido inicial con SELECT.

Fragmentos útiles:

-- Crear sin romper el flujo si la tabla ya existe
CREATE TABLE IF NOT EXISTS authors (...);

-- Ver tablas disponibles
SHOW TABLES;

-- Consultar advertencias tras un “Query OK, 1 warning”
SHOW WARNINGS;

-- Verificar que está vacía
SELECT * FROM authors;

Cuidado extremo con DROP: es un “delete sin papelera”. Borra estructura y datos.

-- Confirmar dos veces antes de ejecutar
DROP TABLE authors;  -- irreversible sin respaldo

Notas clave: - IF NOT EXISTS evita errores que pueden romper un workflow automatizado. - Un warning no rompe la ejecución, pero debe revisarse. - DROP elimina todo; más adelante se puede usar TRUNCATE cuando solo se requiere vaciar, no borrar estructura.

¿Cómo inspeccionar estructura, comentarios y palabras reservadas?

Antes de modificar o consultar, entiende la estructura con comandos de inspección. Además, evita choques con palabras reservadas usando comillas invertidas.

  • Usa DESCRIBE o su acrónimo DESC para ver columnas y tipos.
  • Emplea SHOW FULL COLUMNS FROM para ver comentarios, collation y privilegios.
  • Si una columna necesita un nombre reservado (p. ej., YEAR), encierra el identificador con backticks.

Comandos clave:

-- Estructura de una tabla
DESCRIBE authors;
DESC books;

-- Estructura ampliada: comentarios y más metadatos
SHOW FULL COLUMNS FROM books;

-- Evitar ambigüedades con palabras reservadas
CREATE TABLE ejemplo (
  `year` INT,      -- nombre reservado protegido
  `sum` DOUBLE     -- otro ejemplo de identificador sensible
);

Habilidades y conceptos reforzados: - Relaciones lógicas por ID: coherencia de tipos y ausencia de restricción física. - Convención de estilo: SQL en mayúsculas; identificadores en minúsculas para lectura clara. - Tipos de datos: INT, DOUBLE, VARCHAR, TINYINT como bandera booleana. - Nulabilidad: uso de NOT NULL y posibilidad de NULL donde aplica (p. ej., country_code). - Manejo de errores y warnings: lectura del mensaje “near ...” y uso de SHOW WARNINGS. - Seguridad operativa: uso responsable de DROP TABLE. - Metadatos de columnas: comentarios, collation y permisos con SHOW FULL COLUMNS. - Identificadores con backticks: protección ante palabras reservadas y definición de alias sin ambigüedades.

Más adelante, se aplicarán tipos de fecha y se construirá la tabla de clientes como pilar del proyecto, integrando estos principios desde el diseño.

¿Tienes dudas o quieres compartir una práctica que te funcione? Deja tu comentario y conversemos.