SQL UNIQUEОграничения
UNIQUEОграничения в SQL используются для того, чтобы все значения в одном или нескольких столбцах были уникальными, то есть в столбцах, к которым применяется ограничение, не может быть повторяющихся значений.
UNIQUEПодобно ограничению PRIMARY KEY (PRIMARY KEY), ноUNIQUEОграничение UNIQUE позволяет значениям в столбце бытьNULL, тогда как PRIMARY KEY — нет.
Ограничение PRIMARY KEY включает в себя функциональность ограничения UNIQUE.
Каждая таблица может иметь несколько ограничений UNIQUE, но можно определить только одно ограничение PRIMARY KEY.
Сценарии использования
- Обеспечение уникальности: Например, обеспечьте уникальность таких полей, как адреса электронной почты, имена пользователей и т. д., по всей таблице.
- Применение к нескольким столбцам: Вы можете создать
UNIQUEограничение на нескольких столбцах, чтобы обеспечить уникальность комбинированных значений.
Ограничение UNIQUE в SQL при CREATE TABLE
При создании таблицы можно определить ограничение UNIQUE для конкретного столбца или нескольких столбцов, чтобы значения в этих столбцах были уникальными в таблице.
ВP_Idстолбце, добавьтеUNIQUEограничение
MySQL:
CREATE TABLE Persons (
P_Id INT NOT NULL,
LastName VARCHAR(255) NOT NULL,
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
UNIQUE (P_Id)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
P_Id INT NOT NULL UNIQUE,
LastName VARCHAR(255) NOT NULL,
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
);
UNIQUEограничение и примените его к нескольким столбцам
Чтобы указать имя для ограничения UNIQUE и применить его к нескольким столбцам, можно использовать следующий синтаксис:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
P_Id INT NOT NULL,
LastName VARCHAR(255) NOT NULL,
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id, LastName)
);
Добавление ограничения UN с помощью ALTER TABLE
Если таблица уже существует, можно использовать инструкцию ALTER TABLE, чтобы добавить ограничение UNIQUE к
столбцуUNIQUEограничение
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD UNIQUE (P_Id);
Чтобы задать имя ограничения UNIQUE и применить его к нескольким столбцам, можно использовать следующий синтаксис:UNIQUEограничение и применить его к нескольким столбцам
Чтобы задать имя ограничения UNIQUE и определить ограничение UNIQUE на столбцах, используйте следующий синтаксис SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (P_Id, LastName);
Удаление ограничения UNIQUE
Если вам нужно удалить ограничение UNIQUE, можно использовать следующий SQL:
MySQL:
ALTER TABLE Persons DROP INDEX uc_PersonID;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT uc_PersonID;Другие расширения