Команда (для PostgreSQL/SQLite):
CREATE TABLE books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
year INTEGER,
author_id INTEGER,
FOREIGN KEY (author_id) REFERENCES authors(id)
);
Разбор:
PRIMARY KEY — уникальный идентификатор строки. Не может быть NULL.
AUTOINCREMENT (в SQLite) или SERIAL/GENERATED ALWAYS AS IDENTITY (в PostgreSQL) — автоматическое увеличение значения.
NOT NULL — поле обязательное.
FOREIGN KEY ... REFERENCES authors(id) — внешний ключ: значение должно существовать в таблице authors. Гарантирует целостность.
В PostgreSQL:
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
year INTEGER,
author_id INTEGER REFERENCES authors(id)
);
SERIAL — псевдотип, разворачивающийся в INTEGER + последовательность (sequence).