CHECK en SQL

La restricción CHECK valida una condición antes de guardar cada fila y protege la calidad de los datos.

CHECK en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

Esta lección sobre CHECK en SQL forma parte del tutorial SQL de The Data Schools. Cada ejemplo está pensado para ejecutarse en el editor con las tablas de demostración Clientes, Productos o Pedidos.

Lee la sintaxis, ejecuta el ejemplo tal cual y después modifica columnas, filtros o valores para comprobar que entiendes el comportamiento de la sentencia.

Consejo: escribe consultas pequeñas y verifica el resultado antes de combinar varias cláusulas. Así localizas errores de sintaxis más rápido.

Errores frecuentes: olvidar la indentación en bloques if, for o def; confundir = con ==; no importar un módulo antes de usarlo.


Sintaxis CHECK

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

    CREATE TABLE tabla (
    valor INTEGER CHECK (valor > 0)
);
  

Ejemplo CHECK en precios

Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.

Solo precios positivos

    CREATE TABLE Productos_Check (ID INTEGER PRIMARY KEY, Nombre TEXT NOT NULL, Precio REAL CHECK (Precio > 0));
INSERT INTO Productos_Check VALUES (1, 'Teclado', 29.99), (2, 'Ratón', 12.50);
SELECT Nombre, Precio FROM Productos_Check ORDER BY Nombre;
  
Abrir en editor
NombrePrecio
Ratón12.50
Teclado29.99

Ejemplo CHECK con rango

Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.

Edad laboral válida

    CREATE TABLE Empleados_Check (ID INTEGER PRIMARY KEY, Nombre TEXT NOT NULL, Edad INTEGER CHECK (Edad >= 18 AND Edad <= 65));
INSERT INTO Empleados_Check VALUES (1, 'Laura', 32), (2, 'Miguel', 28);
SELECT Nombre, Edad FROM Empleados_Check ORDER BY Nombre;
  
Abrir en editor
NombreEdad
Laura32
Miguel28

Resumen CHECK

  • Rechaza filas que no cumplen la expresión.
  • Puede validar rangos y combinar condiciones.
  • La sintaxis exacta puede variar entre motores.

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.