SQL UNIQUEContraintes

UNIQUELes contraintes en SQL sont utilisées pour garantir que toutes les valeurs d'une ou plusieurs colonnes sont uniques, ce qui signifie qu'il ne peut pas y avoir de valeurs dupliquées dans les colonnes auxquelles la contrainte s'applique.

UNIQUESimilaire à la PRIMARY KEY (PRIMARY KEY) contrainte, maisUNIQUELa contrainte UNIQUE permet aux valeurs de la colonne d'êtreNULL, tandis que la PRIMARY KEY ne le permet pas.

La contrainte PRIMARY KEY inclut la fonctionnalité de contrainte UNIQUE.

Chaque table peut avoir plusieurs contraintes UNIQUE, mais ne peut définir qu'une seule contrainte PRIMARY KEY.

Scénarios d'utilisation

  • Garantir l'unicité: Par exemple, assurez-vous que des champs tels que les adresses e-mail, les noms d'utilisateur, etc., soient uniques dans toute la table.
  • Appliquer sur plusieurs colonnes: Vous pouvez créerUNIQUEcontrainte sur plusieurs colonnes pour garantir l'unicité des valeurs combinées.

Contrainte UNIQUE SQL sur CREATE TABLE

Lors de la création d'une table, vous pouvez définir une contrainte UNIQUE sur une colonne spécifique ou plusieurs colonnes afin de garantir que les valeurs de ces colonnes sont uniques dans la table.

Dans la table "Persons"P_Idcolonne, ajoutezUNIQUEcontrainte

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

UNIQUEune contrainte et définissez-la sur plusieurs colonnes

Pour spécifier un nom pour la contrainte UNIQUE et l'appliquer à plusieurs colonnes, vous pouvez utiliser la syntaxe suivante :

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

Ajouter une contrainte UNIQUE sur ALTER TABLE

Si la table existe déjà, vous pouvez utiliser l'instruction ALTER TABLE pour ajouter une contrainte UNIQUE à la colonne spécifiée.

Ajouter sur la colonne "P_Id"UNIQUEcontrainte

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id);

NommerUNIQUEla contrainte et l'appliquer sur plusieurs colonnes

Pour nommer une contrainte UNIQUE et définir une contrainte UNIQUE sur plusieurs colonnes, utilisez la syntaxe SQL suivante :

MySQL / SQL Server / Oracle / MS Access:

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


Supprimer une contrainte UNIQUE

Si vous devez supprimer une contrainte UNIQUE, vous pouvez utiliser l'instruction SQL suivante :

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID;

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID;
Autres extensions