Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как работает UNIQUE constraint?

Вопрос проверяет понимание ограничения UNIQUE в реляционных базах данных, которое гарантирует уникальность значений в столбце или группе столбцов, предотвращая дублирование данных.

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

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

Длинный ответ

Ограничение UNIQUE — это фундаментальный механизм обеспечения целостности данных в реляционных СУБД, таких как PostgreSQL, MySQL или SQL Server. Оно применяется к столбцу или группе столбцов таблицы, чтобы гарантировать, что все значения в этом наборе будут отличаться друг от друга. Это отличается от первичного ключа (PRIMARY KEY), который также подразумевает уникальность, но дополнительно запрещает NULL значения.

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

При попытке вставить или обновить строку, приводящую к нарушению уникальности, СУБД генерирует ошибку и откатывает операцию. Важный нюанс: в большинстве систем (согласно стандарту SQL) несколько NULL значений допускаются в столбце с UNIQUE, поскольку NULL трактуется как «неизвестное значение» и не считается равным другому NULL.

Где применяется

UNIQUE constraint часто используется для полей, которые должны быть уникальными, но не являются первичным ключом. Типичные примеры:

  • Адреса электронной почты (email) в таблице пользователей.
  • Номера паспортов или идентификационные номера.
  • Комбинации полей, например, уникальная пара «проект + задача».

Пример создания и использования

Создать ограничение можно при определении таблицы или добавить позже.

-- Создание таблицы с UNIQUE на столбце email
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

-- Или для группы столбцов (композитный UNIQUE)
CREATE TABLE project_tasks (
    project_id INT,
    task_code VARCHAR(10),
    description TEXT,
    UNIQUE (project_id, task_code)
);

-- Попытка вставить дубликат вызовет ошибку:
-- INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
-- INSERT INTO users (username, email) VALUES ('bob', 'alice@example.com'); -- Ошибка!

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • SQL

Ключевые слова

#SQL

#UNIQUE constraint

#database

#integrity

#relational

Подпишись на Java Developer в телеграм