🔒 Clase 049 - CREATE TABLE

Restricciones a Nivel de Columna

🎯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 valor

UNIQUE

No permite valores repetidos

Cada valor debe ser único

PRIMARY 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.

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.
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.

📊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

⚠️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

🎓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