Назад к вопросам
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. Это гарантирует, что каждый заказ связан с существующим пользователем.