🎯Restricciones a Nivel de Columna
Las restricciones de columna se aplican directamente después del tipo de datos y controlan qué valores pueden almacenarse en cada campo.
CREATE COLUMN TABLE tabla_ejemplo (
campo1 INTEGER NOT NULL,
campo2 VARCHAR(50) UNIQUE,
campo3 INTEGER PRIMARY KEY
);
🔐Tipos de Restricciones
NOT NULL
No permite valores nulos en el campo
Obliga a introducir un valorUNIQUE
No permite valores repetidos
Cada valor debe ser únicoPRIMARY KEY
Combina NOT NULL + UNIQUE
Identifica registros únicamente🚫Restricción NOT NULL
🧪 Ejemplo Práctico
CREATE COLUMN TABLE prueba_restriccion (
valor1 INTEGER NOT NULL
);
❌ Inserción Fallida
INSERT INTO prueba_restriccion VALUES (NULL);
-- Error: No se puede insertar NULL
✅ Inserción Exitosa
INSERT INTO prueba_restriccion VALUES (123);
-- Se inserta correctamente
💡 Uso Práctico:
Similar a campos obligatorios en formularios web. Garantiza que información crítica como nombres, emails, etc., no quede vacía.
Similar a campos obligatorios en formularios web. Garantiza que información crítica como nombres, emails, etc., no quede vacía.
⭐Restricción UNIQUE
🧪 Ejemplo Práctico
CREATE COLUMN TABLE prueba_restriccion (
valor1 INTEGER UNIQUE
);
✅ Primera Inserción
INSERT INTO prueba_restriccion VALUES (1);
-- Se inserta correctamente
❌ Inserción Duplicada
INSERT INTO prueba_restriccion VALUES (1);
-- Error: Constraint UNIQUE violada
🤔 Caso Especial con NULL:
Los valores NULL se pueden repetir en campos UNIQUE porque NULL representa "ausencia de valor", no un valor en sí mismo.
Los valores NULL se pueden repetir en campos UNIQUE porque NULL representa "ausencia de valor", no un valor en sí mismo.
INSERT INTO prueba_restriccion VALUES (NULL); -- ✅ Permitido
INSERT INTO prueba_restriccion VALUES (NULL); -- ✅ También permitido
🔑Restricción PRIMARY KEY
🧪 Ejemplo Práctico
CREATE COLUMN TABLE prueba_restriccion (
valor1 INTEGER PRIMARY KEY
);
❌ NULL No Permitido
INSERT INTO prueba_restriccion VALUES (NULL);
-- Error: No se puede insertar NULL
❌ Duplicados No Permitidos
INSERT INTO prueba_restriccion VALUES (1);
INSERT INTO prueba_restriccion VALUES (1);
-- Error: Constraint UNIQUE violada
🎯 Concepto de Clave Primaria:
Campo o conjunto de campos que identifica de forma única cada registro en la tabla. Como el DNI para las personas.
Campo o conjunto de campos que identifica de forma única cada registro en la tabla. Como el DNI para las personas.
📊Ejemplo: Tabla de Alumnos
| ID (PRIMARY KEY) | Nombre (NOT NULL) | Email (UNIQUE) | DNI (UNIQUE) |
|---|---|---|---|
| 1 | Daniel | daniel@email.com | 12345678A |
| 2 | María | maria@email.com | 87654321B |
| 3 | Juan | juan@email.com | 11223344C |
CREATE COLUMN TABLE alumnos (
id INTEGER PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
dni VARCHAR(10) UNIQUE
);
⚡Ventajas del PRIMARY KEY
🚀 Beneficios Automáticos:
• Índice automático: Se crea automáticamente para búsquedas rápidas
• Identificación única: Garantiza que cada registro sea único
• Búsquedas optimizadas: Las consultas por clave primaria son más rápidas
• Integridad referencial: Base para relaciones entre tablas
• Índice automático: Se crea automáticamente para búsquedas rápidas
• Identificación única: Garantiza que cada registro sea único
• Búsquedas optimizadas: Las consultas por clave primaria son más rápidas
• Integridad referencial: Base para relaciones entre tablas
⚠️Consideraciones Importantes
🔍 Limitaciones de las Restricciones:
• Las restricciones no son infalibles (ej: un espacio en blanco pasa NOT NULL)
• Son controles a nivel de base de datos, no reemplazan validaciones en la aplicación
• PRIMARY KEY de un campo se hace a nivel de columna
• Para claves primarias compuestas se necesitan restricciones a nivel de tabla
• Las restricciones no son infalibles (ej: un espacio en blanco pasa NOT NULL)
• Son controles a nivel de base de datos, no reemplazan validaciones en la aplicación
• PRIMARY KEY de un campo se hace a nivel de columna
• Para claves primarias compuestas se necesitan restricciones a nivel de tabla
🎓Resumen
📝 Puntos Clave:
• NOT NULL: Obliga a introducir un valor
• UNIQUE: No permite duplicados (excepto NULL)
• PRIMARY KEY: Combina NOT NULL + UNIQUE + índice automático
• Las restricciones se evalúan al insertar/actualizar datos
• Los errores incluyen código y descripción para manejo de excepciones
• NOT NULL: Obliga a introducir un valor
• UNIQUE: No permite duplicados (excepto NULL)
• PRIMARY KEY: Combina NOT NULL + UNIQUE + índice automático
• Las restricciones se evalúan al insertar/actualizar datos
• Los errores incluyen código y descripción para manejo de excepciones