Что такое первичный ключ (Primary Key) в реляционной БД?

«Что такое первичный ключ (Primary Key) в реляционной БД?» — вопрос из категории Базы данных и SQL, который задают на 24% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Первичный ключ (Primary Key, PK) — это ограничение, накладываемое на столбец или группу столбцов таблицы для уникальной идентификации каждой строки.

Обязательные свойства:

  1. Уникальность: В таблице не может быть двух строк с одинаковым значением PK.
  2. Отсутствие NULL: Все столбцы, входящие в PK, не могут содержать значения NULL.
  3. Один на таблицу: У таблицы может быть только один первичный ключ.

Примеры создания:

-- PK на один столбец
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY, -- Первичный ключ
    name VARCHAR(100) NOT NULL
);

-- Составной PK (из нескольких столбцов)
CREATE TABLE Order_Items (
    order_id INT,
    product_id INT,
    quantity INT,
    PRIMARY KEY (order_id, product_id) -- Составной ключ
);

Зачем он нужен?

  • Гарантия целостности данных: Предотвращает дублирование записей.
  • Связи между таблицами: PK является целевым столбцом для внешних ключей (Foreign Key) в других таблицах.
  • Индексирование: По умолчанию для PK создается уникальный индекс, что ускоряет поиск и операции соединения (JOIN).