Tema SQL
Restricciones: NOT NULL, UNIQUE, PRIMARY KEY, CHECK, DEFAULT
Reglas de integridad en columnas y tabla.
Descripción
NOT NULL prohíbe ausencia de valor; UNIQUE salvo NULL; PRIMARY KEY identifica filas; CHECK valida expresiones; DEFAULT rellena al insertar (manual §6).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
CREATE TABLE t (
id INT PRIMARY KEY,
email VARCHAR(120) NOT NULL UNIQUE,
edad INT CHECK (edad >= 0),
creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- PRIMARY KEY
- Una por tabla; implica UNIQUE y NOT NULL.
- CHECK
- Validación declarativa; soporte y coste varía.
Ejemplos
Ejemplo 1
CREATE TABLE productos (
id INT PRIMARY KEY,
sku VARCHAR(32) NOT NULL UNIQUE,
precio DECIMAL(10,2) CHECK (precio >= 0)
);
Ejemplo 2
ALTER TABLE items ADD CONSTRAINT ck_precio CHECK (precio > 0);
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.