Contraintes SQL Constraints


Contraintes SQL

Les contraintes SQL sont utilisées pour spécifier des règles pour les données dans les tables.

Si un comportement de données viole des contraintes, ce comportement sera interrompu par la contrainte.

Les contraintes peuvent être spécifiées lors de la création de la table (via l'instruction CREATE TABLE), ou après la création de la table (via l'instruction ALTER TABLE).

Syntaxe SQL CREATE TABLE + CONSTRAINT

CREATE TABLE table_name
(
    column_name1 data_type(size) constraint_name,
    column_name2 data_type(size) constraint_name,
    column_name3 data_type(size) constraint_name,
    ....
);

En SQL, nous avons les contraintes suivantes :

  • NOT NULL- Indique qu'une colonne ne peut pas stocker de valeurs NULL.
  • UNIQUE- Garantit que chaque valeur d'une colonne doit être unique.
  • PRIMARY KEY- Une combinaison de NOT NULL et UNIQUE. Garantit qu'une colonne (ou une combinaison de deux colonnes ou plus) possède un identifiant unique, ce qui aide à trouver un enregistrement spécifique dans une table plus facilement et plus rapidement.
  • FOREIGN KEY- Garantit l'intégrité référentielle en faisant correspondre les données d'une table aux valeurs d'une autre table.
  • CHECK- Garantit que les valeurs d'une colonne respectent les conditions spécifiées.
  • DEFAULT- Spécifie une valeur par défaut lorsqu'aucune valeur n'est attribuée à une colonne.
  • INDEX- Utilisé pour un accès rapide aux données dans les tables de base de données.

1. NOT NULL

Garantit qu'une colonne ne peut pas avoir de valeurs NULL.

Exemple

CREATE TABLE Students (
    StudentID INT NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    Age INT
);

2. UNIQUE

Garantit que toutes les valeurs d'une colonne sont uniques.

Exemple

CREATE TABLE Employees (
    EmployeeID INT NOT NULL UNIQUE,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    Email VARCHAR(100) UNIQUE
);

3. PRIMARY KEY

Identifie de manière unique chaque enregistrement de ligne dans une table. La contrainte PRIMARY KEY est une combinaison de NOT NULL et UNIQUE.

Exemple

CREATE TABLE Orders (
    OrderID INT NOT NULL PRIMARY KEY,
    OrderNumber INT NOT NULL,
    OrderDate DATE NOT NULL
);

4. FOREIGN KEY

Garantit que les valeurs d'une table correspondent aux valeurs d'une autre table, établissant ainsi une relation entre les deux tables.

Exemple

CREATE TABLE Orders (
    OrderID INT NOT NULL PRIMARY KEY,
    OrderNumber INT NOT NULL,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

5. CHECK

S'assurer que les valeurs d'une colonne respectent des conditions spécifiques.

Exemple

CREATE TABLE Products (
    ProductID INT NOT NULL PRIMARY KEY,
    ProductName VARCHAR(100) NOT NULL,
    Price DECIMAL(10, 2) CHECK (Prix >= 0)
);

6. DEFAULT

Définit une valeur par défaut pour une colonne.

Exemple

CREATE TABLE Customers (
    CustomerID INT NOT NULL PRIMARY KEY,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    JoinDate DATE DEFAULT GETDATE()
);

7. INDEX

Utilisé pour un accès rapide aux données des tables d'une base de données.

CREATE INDEX idx_lastname ON Employees (LastName);

Exemple complet

Exemple

CREATE TABLE Students (
    StudentID INT NOT NULL PRIMARY KEY,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50) NOT NULL,
    Age INT CHECK (Age >= 18),
    Email VARCHAR(100) UNIQUE,
    EnrollmentDate DATE DEFAULT GETDATE()
);

Grâce à ces contraintes, le système de gestion de base de données peut garantir la cohérence, l'intégrité et l'exactitude des données.

Dans les sections suivantes, nous expliquerons chaque contrainte en détail.

Autres extensions