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éer
UNIQUEcontrainte 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