Назад к вопросам
Junior
112
questionbank
Что такое первичный ключ (PK) и внешний ключ (FK) в SQL?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Первичный ключ (Primary Key, PK) — это столбец (или набор столбцов) в таблице, который уникально идентифицирует каждую строку в таблице.
Основные свойства первичного ключа:
- Уникальность: Каждое значение PK должно быть уникальным в пределах таблицы.
- Not NULL: Значение PK не может быть пустым (NULL).
- В таблице может быть только один первичный ключ.
Внешний ключ (Foreign Key, FK) — это столбец (или набор столбцов) в одной таблице, который ссылается на первичный ключ в другой таблице (или на тот же PK в той же таблице для самоссылающихся связей).
Основные свойства внешнего ключа:
- Создание связи: FK устанавливает связь между двумя таблицами.
- Целостность данных: Обеспечивает ссылочную целостность, гарантируя, что значения FK соответствуют существующим PK в связанной таблице.
- Значения FK могут быть NULL, если это разрешено ограничением.
Пример:
-- Таблица "users" с первичным ключом "user_id"
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL
);
-- Таблица "orders" с первичным ключом "order_id"
-- и внешним ключом "user_id", ссылающимся на таблицу "users"
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
В этом примере user_id в таблице users является первичным ключом, а user_id в таблице orders является внешним ключом, ссылающимся на users.user_id. Это гарантирует, что каждый заказ связан с существующим пользователем.