SQL UNIQUERestricciones

UNIQUELas restricciones en SQL se utilizan para garantizar que todos los valores en una o más columnas sean únicos, lo que significa que no puede haber valores duplicados en las columnas donde se aplica la restricción.

UNIQUESimilar a la clave primaria (PRIMARY KEY) restricción, peroUNIQUEla restricción permite que el valor de la columna seaNULL, mientras que la clave primaria no lo permite.

La restricción PRIMARY KEY incluye inherentemente la funcionalidad de restricción de unicidad (UNIQUE).

Cada tabla puede tener múltiples restricciones UNIQUE, pero solo se puede definir una restricción PRIMARY KEY.

Casos de uso

  • Garantizar la unicidad: Por ejemplo, garantizar que campos como direcciones de correo electrónico, nombres de usuario, etc., sean únicos en toda la tabla.
  • Aplicar en múltiples columnasSe puede crear en múltiples columnasUNIQUEla restricción, para asegurar la unicidad de los valores combinados.

Restricción SQL UNIQUE en CREATE TABLE

Al crear la tabla, se puede definir una restricción UNIQUE en columnas específicas o en múltiples columnas, para garantizar que los valores en esas columnas sean únicos dentro de la tabla.

En la tabla 'Persons',P_Idagregar en la columnaUNIQUEla restricción

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)
);

UNIQUERestricción y definir en múltiples columnas

Si necesita especificar un nombre para la restricción UNIQUE y aplicarla en múltiples columnas, puede usar la siguiente sintaxis:

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)
);

Agregar restricción UNIQUE en ALTER TABLE

Si la tabla ya existe, se puede usar la sentencia ALTER TABLE para agregar una restricción UNIQUE en las columnas especificadas.

Agregar en la columna 'P_Id'UNIQUEla restricción

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id);

NombrarUNIQUERestricción y aplicarla en múltiples columnas

Si necesita nombrar una restricción UNIQUE y definir una restricción UNIQUE en múltiples columnas, use la siguiente sintaxis SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id, LastName);


Eliminar restricción UNIQUE

Si necesita eliminar una restricción UNIQUE, puede usar la siguiente sentencia SQL:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID;

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID;
Otras extensiones