Что делает ограничение UNIQUE в SQL?

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

Ответ

Ограничение UNIQUE гарантирует, что все значения в указанном столбце (или комбинации столбцов) таблицы будут различаться. Попытка вставить или обновить запись, нарушающую это правило, приводит к ошибке СУБД.

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

CREATE TABLE users (
    id INT PRIMARY KEY,
    email VARCHAR(255) UNIQUE,
    username VARCHAR(50) UNIQUE
);

В этом примере значения в столбцах email и username не могут повторяться.

Ключевые отличия от PRIMARY KEY:

  • PRIMARY KEY неявно включает ограничение NOT NULL, а UNIQUE — нет. В большинстве СУБД столбец с UNIQUE может содержать одно значение NULL.
  • В таблице может быть только один PRIMARY KEY, но множество ограничений UNIQUE.

Применение: Обеспечение целостности данных для атрибутов, которые должны быть уникальными (email, номер паспорта, артикул товара).