Paso 1 de 5
Autores y libros
Cada autor se guarda una sola vez en su tabla y cada libro apunta a su autor con autor_id. Así, si un autor tiene varios libros, su nombre no se repite (y no puede escribirse distinto en cada uno).
PRIMARY KEY identifica cada fila de forma única y REFERENCES autores(id) declara que autor_id es una clave foránea: tiene que corresponder a un autor que exista.
CREATE TABLE autores (
id INTEGER PRIMARY KEY,
nombre TEXT NOT NULL,
pais TEXT
);
CREATE TABLE libros (
id INTEGER PRIMARY KEY,
titulo TEXT NOT NULL,
anio INTEGER,
autor_id INTEGER NOT NULL REFERENCES autores(id)
);
INSERT INTO autores (id, nombre, pais) VALUES
(1, 'Miguel de Cervantes', 'España'),
(2, 'Gabriel García Márquez', 'Colombia'),
(3, 'Carmen Laforet', 'España'),
(4, 'Isabel Allende', 'Chile'),
(5, 'Federico García Lorca', 'España');
INSERT INTO libros (id, titulo, anio, autor_id) VALUES
(1, 'Don Quijote de la Mancha', 1605, 1),
(2, 'Cien años de soledad', 1967, 2),
(3, 'El amor en los tiempos del cólera', 1985, 2),
(4, 'Nada', 1945, 3),
(5, 'La casa de los espíritus', 1982, 4),
(6, 'Romancero gitano', 1928, 5);
SELECT titulo, anio FROM libros;
titulo | anio
Don Quijote de la Mancha | 1605
Cien años de soledad | 1967
El amor en los tiempos del cólera | 1985
Nada | 1945
La casa de los espíritus | 1982
Romancero gitano | 1928