Назад к вопросам
Junior
79
questionbank
Что такое внешние ключи (Foreign Key) в базе данных?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Внешний ключ (Foreign Key) — это столбец или набор столбцов в таблице (дочерней таблице), который ссылается на первичный ключ (Primary Key) другой таблицы (родительской таблицы).
Основные функции и концепции:
- Связывание таблиц: Внешние ключи устанавливают взаимосвязь между двумя таблицами, представляя собой link. Например, в таблице
ordersможет быть внешний ключcustomer_id, ссылающийся на первичный ключidв таблицеcustomers. - Целостность данных: Обеспечивает ссылочную целостность (referential integrity), гарантируя, что данные во дочерней таблице корректно ссылаются на существующие данные в родительской таблице. Нельзя вставить запись в дочернюю таблицу с внешним ключом, который не соответствует существующему первичному ключу в родительской таблице.
- Взаимодействие при изменениях: Поведение при удалении или обновлении записей в родительской таблице может быть настроено с помощью правил CASCADE, RESTRICT, SET NULL, SET DEFAULT или NO ACTION.
Пример создания таблицы с внешним ключом в SQL:
CREATE TABLE categories (
category_id INT PRIMARY KEY,
category_name VARCHAR(255)
);
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255),
category_id INT,
FOREIGN KEY (category_id) REFERENCES categories(category_id) ON DELETE CASCADE
);
Здесь category_id в таблице products является внешним ключом, ссылающимся на category_id (первичный ключ) в таблице categories. ON DELETE CASCADE означает, что при удалении категории будут удалены и все связанные с ней продукты.