Saltar al contenido

Tus archivos no se suben

Claves primarias y foráneas

La clave primaria identifica cada fila. La clave foránea apunta a una fila de otra tabla.

Clave primaria

Es la columna, o el grupo de columnas, que identifica cada fila. Debe ser única y no puede quedar vacía.

CREATE TABLE categorias (
  id INTEGER PRIMARY KEY,
  nombre TEXT NOT NULL
);

Cómo elegirla

  • Clave artificial. Un número sin significado, como id. Es la opción más común, porque nunca necesita cambiar.
  • Clave natural. Un dato real, como un código de producto. Sirve si ese dato es estable y no se repite.
  • Clave compuesta. Dos columnas juntas. Es típica en tablas que unen otras, como un detalle de pedido.

Evita usar datos que puedan cambiar o que sean sensibles. Un nombre se repite y cambia, y un dato personal no debería conectar toda tu base.

Clave foránea

Es una columna que guarda la clave primaria de otra tabla. Así se conectan los datos sin copiarlos.

CREATE TABLE productos (
  id INTEGER PRIMARY KEY,
  nombre TEXT NOT NULL,
  categoria_id INTEGER REFERENCES categorias(id)
);

La base impide guardar un producto con una categoría que no existe. También impide borrar una categoría que todavía usan productos, salvo que se indique otra cosa. A eso se le llama integridad referencial.

En SQLite esta revisión debe activarse con PRAGMA foreign_keys = ON. El editor de este sitio ya la trae activa.

Las tres relaciones

RelaciónEjemploCómo se arma
Uno a muchosUna categoría, muchos productosClave foránea en el lado de muchos
Muchos a muchosPedidos y productosUna tabla intermedia con dos claves foráneas
Uno a unoUn producto y su ficha técnicaClave foránea única

Preguntas frecuentes

¿Una tabla puede tener dos claves primarias?

No. Tiene una, que puede estar formada por varias columnas. Otras columnas únicas se marcan con UNIQUE.

¿Una clave foránea puede ir vacía?

Sí, salvo que tenga NOT NULL. Una fila vacía ahí significa que no apunta a nada.

Revisado el 6 de noviembre de 2026.