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

Столбец (или набор столбцов), включенный в определение ограничения UNIQUE, называют уникальным ключом. Если ограничение UNIQUE
включает более одного столбца, ту группу столбцов называют составным уникальным ключом.
Ограничения UNIQUE
позволяют ввод значений null, если Вы также не определяете ограничения NOT NULL
для тех же самых столбцов. Фактически, любое число строк может включать значения null для столбцов без ограничения NOT NULL
, потому что значения null не считаются равными чему-либо. Значение null в столбце (или во всех столбцах составного ключа UNIQUE
), всегда удовлетворяет ограничению UNIQUE
.
Отметьте: Из-за механизма поиска для ограничений UNIQUE
, распространяющихся больше чем на один столбец, у Вас не может быть идентичных значений в не-null столбцах составного ключа UNIQUE
, частично состоящего из null.
Ограничение UNIQUE
Определяется или на табличном уровне или на уровне столбца:

Ограничения UNIQUE
могут быть определены на уровне столбца или уровне таблицы. Вы определяете ограничение на уровне таблицы, когда Вы хотите создать составной уникальный ключ. Составной ключ определяется, когда нет ни одного атрибута, который может однозначно определить строку. В этом случае у Вас может быть уникальный ключ, который составляется из двух или больше столбцов, общее значение которых всегда уникально и может идентифицировать строки.
Пример на рисунке применяет ограничение UNIQUE
к столбцу EMAIL
таблицы EMPLOYEES
. Имя ограничения EMP_EMAIL_UK
.
Отметьте: сервер Oracle усиливает ограничение UNIQUE
, неявно создавая уникальный индекс на столбце уникального ключа или столбцах.