Какую роль выполняет PRIMARY KEY в SQL?

«Какую роль выполняет PRIMARY KEY в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

PRIMARY KEY (первичный ключ) — это ограничение в SQL, которое обеспечивает уникальность и непустоту (NOT NULL) для каждой строки в таблице. Его основное назначение:

  1. Уникальная идентификация записи — гарантирует, что каждая строка может быть однозначно найдена по значению ключа (например, user_id).
  2. Создание кластеризованного индекса (в большинстве СУБД) — ускоряет поиск и операции соединения (JOIN).
  3. Организация связей между таблицами — на PRIMARY KEY ссылается FOREIGN KEY в связанных таблицах, обеспечивая целостность данных.

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

-- Простой первичный ключ
CREATE TABLE users (
    id INT PRIMARY KEY, -- Столбец id является PK
    username VARCHAR(50) NOT NULL
);

-- Составной первичный ключ (из нескольких столбцов)
CREATE TABLE order_items (
    order_id INT,
    item_id INT,
    quantity INT,
    PRIMARY KEY (order_id, item_id) -- PK состоит из двух столбцов
);

Почему это важно: Без PRIMARY KEY невозможно гарантировать целостность данных и эффективно строить реляционные связи.