UNIQUE en SQL
La restricción UNIQUE impide valores duplicados en una columna o combinación de columnas. Es ideal para correos, códigos y otros identificadores alternativos.
UNIQUE 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 UNIQUE 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 UNIQUE
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 (
ID INTEGER PRIMARY KEY,
valor TEXT UNIQUE NOT NULL
);
Ejemplo UNIQUE en Email
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.
Usuarios con correo único
CREATE TABLE Usuarios_Unique (ID INTEGER PRIMARY KEY, Email TEXT UNIQUE NOT NULL, Nombre TEXT NOT NULL);
INSERT INTO Usuarios_Unique VALUES (1, 'ana@ejemplo.com', 'Ana'), (2, 'luis@ejemplo.com', 'Luis');
SELECT Email, Nombre FROM Usuarios_Unique ORDER BY Nombre;
| Nombre | |
|---|---|
| ana@ejemplo.com | Ana |
| luis@ejemplo.com | Luis |
Ejemplo UNIQUE en códigos
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.
Códigos de país sin duplicados
CREATE TABLE Codigos_Pais (ID INTEGER PRIMARY KEY, Codigo TEXT UNIQUE NOT NULL, Nombre TEXT NOT NULL);
INSERT INTO Codigos_Pais VALUES (1, 'ES', 'España'), (2, 'FR', 'Francia'), (3, 'IT', 'Italia');
SELECT Codigo, Nombre FROM Codigos_Pais ORDER BY Codigo;
| Codigo | Nombre |
|---|---|
| ES | España |
| FR | Francia |
| IT | Italia |
Ejemplo UNIQUE con NULL permitido
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.
Teléfonos únicos
CREATE TABLE Telefonos (ID INTEGER PRIMARY KEY, Numero TEXT UNIQUE, Contacto TEXT);
INSERT INTO Telefonos VALUES (1, '600111222', 'Ana'), (2, '600333444', 'Luis');
SELECT Numero, Contacto FROM Telefonos;
| Numero | Contacto |
|---|---|
| 600111222 | Ana |
| 600333444 | Luis |
Resumen UNIQUE
- Evita duplicados sin convertir la columna en clave primaria.
- Puede combinarse con
NOT NULL. - Una tabla puede tener varias restricciones UNIQUE.
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.