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;
Другие расширения