Ответ
Foreign Key (FK, внешний ключ) — это ограничение в реляционных базах данных, которое обеспечивает ссылочную целостность между таблицами. FK указывает, что значения в столбце (или группе столбцов) одной таблицы должны соответствовать значениям первичного ключа (Primary Key) другой таблицы.
Пример создания в SQL:
-- Таблица авторов (родительская)
CREATE TABLE authors (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- Таблица книг (дочерняя) с внешним ключом
CREATE TABLE books (
id INT PRIMARY KEY,
title VARCHAR(200) NOT NULL,
author_id INT,
FOREIGN KEY (author_id) REFERENCES authors(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Действия при удалении/обновлении (ON DELETE/UPDATE):
- CASCADE — удалить/обновить связанные записи
- RESTRICT / NO ACTION — запретить операцию при наличии связей
- SET NULL — установить NULL в FK-столбце
- SET DEFAULT — установить значение по умолчанию
Практическое значение:
- Целостность данных — предотвращает "сиротские" записи (книги без автора)
- Связи между сущностями — реализует отношения "один-ко-многим"
- Оптимизация запросов — индексы на FK улучшают JOIN-операции
В SQL-запросах FK неявно используется в JOIN:
SELECT b.title, a.name
FROM books b
JOIN authors a ON b.author_id = a.id; Видео-ответы
▶
▶
▶
▶
▶
▶