Claves primarias, claves foráneas y restricciones
Explique las claves, la unicidad y la integridad referencial como espera escucharlo un entrevistador
Claves primarias, claves foráneas y restricciones es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.
Por qué las claves aparecen en todas las entrevistas
Después de definir SQL, los entrevistadores suelen pasar a las claves y restricciones. El concepto que las conecta es la integridad: reglas que la base de datos aplica para impedir que se introduzcan datos incorrectos.
Qué es una clave primaria
Una clave primaria identifica de forma única cada fila. Siempre es única y NOT NULL, y una tabla tiene como máximo una. Expréselo con claridad para sumar puntos.
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
email VARCHAR(255) NOT NULL,
name VARCHAR(100)
);Claves naturales frente a claves sustitutas
¿Datos reales o un número generado? Una clave natural utiliza datos únicos ya existentes; una clave sustituta es un identificador generado. La mayoría de los equipos prefieren las sustitutas porque son estables.
Claves primarias compuestas
Una clave primaria puede abarcar más de una columna: es una clave compuesta. Es habitual encontrarlas en tablas de unión, donde dos claves foráneas identifican juntas cada fila.
CREATE TABLE enrollments (
student_id INTEGER,
course_id INTEGER,
enrolled_on DATE,
PRIMARY KEY (student_id, course_id)
);Clave primaria frente a restricción de unicidad
Una pregunta casi segura: clave primaria frente a restricción de unicidad. Ambas garantizan la unicidad, pero una tabla tiene una sola clave primaria, que es NOT NULL, y puede tener muchas restricciones de unicidad, cada una de las cuales permite un NULL.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(255) UNIQUE,
username VARCHAR(50) UNIQUE
);Qué es una clave foránea
Una clave foránea hace referencia a la clave primaria de otra tabla y garantiza la integridad referencial: no se puede añadir una fila hija que apunte a un registro padre inexistente.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER REFERENCES customers(id),
amount NUMERIC(10,2)
);Acciones referenciales: ON DELETE / ON UPDATE
"¿Qué sucede con los pedidos si se elimina el cliente?" Esa es una acción referencial: RESTRICT lo impide, y es la opción predeterminada; CASCADE elimina las filas hijas y SET NULL borra el valor de la clave.
CREATE TABLE order_items (
id INTEGER PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE
);NOT NULL, CHECK y DEFAULT
Tres restricciones más completan la integridad: NOT NULL prohíbe los valores ausentes, CHECK impone una regla como stock >= 0 y DEFAULT proporciona un valor alternativo.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
price NUMERIC(10,2) NOT NULL DEFAULT 0,
stock INTEGER CHECK (stock >= 0)
);Ejemplo práctico: diseñar con integridad
Diseñemos la tabla de préstamos de una biblioteca. El código siguiente utiliza dos claves foráneas, una fecha de devolución NOT NULL y una regla de unicidad para impedir que un libro se preste dos veces al mismo tiempo.
CREATE TABLE loans (
id INTEGER PRIMARY KEY,
book_id INTEGER NOT NULL REFERENCES books(id),
member_id INTEGER NOT NULL REFERENCES members(id),
due_date DATE NOT NULL,
returned BOOLEAN DEFAULT false
);Cómo hablar de integridad
Mencione los tres tipos de integridad para demostrar un conocimiento profundo: de entidad, proporcionada por las claves primarias; referencial, proporcionada por las claves foráneas; y de dominio, proporcionada por NOT NULL, CHECK y los tipos de datos.
Cómo añadir restricciones a una tabla existente
¿Le han pedido añadir restricciones a una tabla existente? Utilice ALTER TABLE ... ADD CONSTRAINT. Un detalle importante que conviene mencionar: la operación puede fallar si las filas actuales ya infringen la nueva regla.
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id);Comprobación rápida
Diferencie una clave primaria de una restricción de unicidad.
Resumen
Resumen: una clave primaria es única y NOT NULL, y solo puede haber una por tabla; una restricción de unicidad permite un NULL y puede haber varias; una clave foránea garantiza la integridad referencial.
Preguntas frecuentes
¿La lección «Claves primarias, claves foráneas y restricciones» es gratis?
Sí — el texto completo de «Claves primarias, claves foráneas y restricciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Claves primarias, claves foráneas y restricciones»?
Explique las claves, la unicidad y la integridad referencial como espera escucharlo un entrevistador Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Coding Interview Prep?
No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Claves primarias, claves foráneas y restricciones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?
Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Qué es SQL y por qué lo preguntan en las entrevistas
- Orden lógico de ejecución de una consulta
- Claves primarias, claves foráneas y restricciones
- Leer un esquema bajo presión