Ответ
Ограничение UNIQUE в SQL гарантирует уникальность всех не-NULL значений в указанном столбце или группе столбцов (составной ключ) таблицы. Это ограничение целостности данных, предотвращающее дублирование.
Синтаксис и применение:
-- При создании таблицы
CREATE TABLE Users (
id INT PRIMARY KEY,
email VARCHAR(255) UNIQUE, -- Один столбец
username VARCHAR(100) NOT NULL UNIQUE,
CONSTRAINT uc_name_domain UNIQUE (username, domain) -- Составной ключ
);
-- Добавление к существующей таблице
ALTER TABLE Users ADD CONSTRAINT uc_email UNIQUE (email);
Ключевые особенности:
- NULL значения: Столбец с
UNIQUEможет содержать многочисленные NULL-значения (если иное не указаноNOT NULL), так как NULL не считается равным другому NULL в контексте сравнения на уникальность. - Индексы: Для обеспечения уникальности СУБД автоматически создает уникальный индекс по указанным столбцам, что также ускоряет поиск.
- Отличие от PRIMARY KEY: В таблице может быть несколько
UNIQUEограничений, но только одинPRIMARY KEY, который также подразумеваетNOT NULL.