Diseñar tablas con CREATE TABLE.
Antes de guardar un solo dato, declaras la forma de la tabla: qué columnas tiene, de qué tipo, y qué restricciones aplica el motor por ti.
01Anatomía de un CREATE TABLE
CREATE TABLE productos ( id INT PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(80) NOT NULL, precio DECIMAL(10,2) DEFAULT 0, stock INT NOT NULL DEFAULT 0 );
INT,VARCHAR(80),DECIMAL(10,2)son tipos.PRIMARY KEYdice “esta columna identifica cada fila de forma única”.NOT NULLprohíbe valores vacíos.DEFAULTrellena un valor cuando el INSERT no lo especifica.AUTO_INCREMENThace que el motor invente el siguiente número él solo.
02Tipos que vas a usar 90% del tiempo
INT, BIGINT para enteros. DECIMAL(p,e) para dinero. FLOAT solo si no te importa la precisión.VARCHAR(n) cuando hay límite razonable. TEXT para texto largo y libre.DATE solo fecha, TIMESTAMP incluye hora. Útiles para auditoría y reportes.BOOLEAN verdadero/falso. En MySQL clásico se usa TINYINT(1).Para dinero usa DECIMAL, nunca FLOAT. FLOAT aproxima y te va a regalar centavos perdidos en facturas.
03Laboratorio · construye tu primera tabla
Ejecuta el ejemplo, mira cómo aparece la tabla. Luego prueba con los chips de abajo para añadir columnas o crear más tablas — verás cómo el lienzo se reorganiza.
CREATE TABLE productos ( id INT PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(80) NOT NULL, precio DECIMAL(10,2) DEFAULT 0, stock INT NOT NULL DEFAULT 0 );
CREATE TABLE y dale Ejecutar.04Modificar el esquema con ALTER
Una tabla creada no es para siempre. ALTER TABLE te deja añadir columnas, quitarlas o renombrarlas — sin perder los datos existentes.
ALTER TABLE productos ADD COLUMN destacado BOOLEAN DEFAULT FALSE; ALTER TABLE productos DROP COLUMN stock;
Cambiar el esquema con tráfico vivo se llama migración. Existen herramientas como Flyway, Liquibase o las migrations de Django/Rails que aplican cambios de forma versionada. Lección para más adelante.
05Desafíos · ponete a prueba
Tres retos de creación y modificación de esquema, de menor a mayor dificultad. Escribí tu consulta y dale Comprobar.
Creá una tabla llamada `empleados` con tres columnas: `id` (INT, clave primaria), `nombre` (VARCHAR(60), NOT NULL) y `salario` (DECIMAL(10,2)). Luego el sistema verificará que la estructura sea correcta.
La tabla `proyectos` ya existe con columnas `id` y `titulo`. Usando ALTER TABLE, agregale la columna `presupuesto` de tipo DECIMAL(12,2). El sistema verificará insertando una fila que use esa columna.
Creá una tabla llamada `asignaciones` con cuatro columnas: `id` (INT, clave primaria), `empleado_id` (INT, NOT NULL), `departamento_id` (INT, NOT NULL, clave foránea que referencia `departamentos(id)`) y `fecha` (DATE, NOT NULL). El sistema verificará insertando una fila válida.