К списку
SQL и базы данныхSeniorТехническое

Основные характеристики и особенности Primary Key в SQL

Краткий ответ

Primary Key — это уникальный идентификатор строки в таблице, который не допускает NULL и всегда уникален. Он может состоять из одного или нескольких полей и автоматически индексируется для оптимизации поиска.

Развёрнуто

Краткий ответ

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


Как это работает

В SQL Primary Key служит для однозначной идентификации каждой строки в таблице. Его основные свойства:

  • Уникальность: значения в столбце или наборе столбцов первичного ключа не повторяются.
  • NOT NULL: столбец(ы) не могут содержать NULL, что исключает неопределённость.
  • Составной ключ: первичный ключ может включать несколько колонок, образуя уникальный набор значений.
  • Автоматический индекс: при создании первичного ключа СУБД автоматически создаёт индекс, чтобы повысить производительность запросов по ключу.

Пример таблицы с первичным ключом:

id (PK) username email
1 user_one user1@example.com
2 user_two user2@example.com

Пример

CREATE TABLE Users (
    id INT PRIMARY KEY, -- уникальный идентификатор
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100)
);

-- составной первичный ключ
CREATE TABLE Orders (
    order_id INT,
    product_id INT,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

В данном примере Users.id — простой первичный ключ, а в таблице Orders используется составной ключ из двух колонок.

Что важно знать на собеседовании

  • Primary Key обеспечивает уникальную и не пустую идентификацию строк.
  • Составной ключ может включать несколько колонок для комплексной уникальности.
  • Автоматическое создание индекса повышает скорость выборок по ключу.
  • NULL значения в первичном ключе запрещены.
  • Primary Key отличается от Unique тем, что всегда не допускает NULL.

Тема: SQL и базы данных | Уровень: senior