logo oujood
🔍

Instruction SQL CREATE TABLE : syntaxe, exemples et conseils

OUJOOD.COM

Définition et utilisation SQL CREATE TABLE

L'instruction SQL CREATE TABLE est utilisée pour créer une nouvelle table dans une base de données. Elle est l'une des instructions SQL les plus fondamentales et est essentielle pour la création de toute base de données relationnelle.

La syntaxe générale de l'instruction CREATE TABLE est la suivante :

 : 
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);

Où :

  • table_name est le nom de la table à créer.
  • column1 est le nom de la première colonne de la table.
  • datatype est le type de données de la colonne.

Les types de données possibles sont les suivants :

  • INT : un entier
  • VARCHAR : une chaîne de caractères de longueur variable
  • DATE : une date
  • TIME : une heure
  • TIMESTAMP : une date et une heure
  • CHAR : une chaîne de caractères de longueur fixe
  • DECIMAL : un nombre décimal
  • FLOAT : un nombre à virgule flottante

Les colonnes peuvent également avoir des contraintes supplémentaires, telles que :

  • NOT NULL : la colonne ne peut pas avoir de valeur NULL.
  • PRIMARY KEY : la colonne est la clé primaire de la table.
  • FOREIGN KEY : la colonne est une clé étrangère qui fait référence à une clé primaire d'une autre table.

Syntaxes

Il existe plusieurs syntaxes pour l'instruction CREATE TABLE. La syntaxe la plus simple est celle qui spécifie uniquement le nom de la table et les types de données des colonnes.

Exemple :     📋 Copier le code

 : 
CREATE TABLE products (
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(255),
product_price DECIMAL(10,2),
product_description TEXT
);

Cette syntaxe crée une table nommée products qui contient les colonnes suivantes :

  • product_id : un entier non nul qui est la clé primaire de la table.
  • product_name : une chaîne de caractères de longueur variable de 255 caractères maximum.
  • product_price : un nombre décimal avec 10 chiffres significatifs et 2 chiffres après la virgule.
  • product_description : une chaîne de caractères de longueur variable.

Une autre syntaxe permet de spécifier des contraintes supplémentaires pour les colonnes. Par exemple, la syntaxe suivante spécifie que la colonne product_id est une clé primaire et que la colonne product_price ne peut pas avoir de valeur NULL :

Exemple :     📋 Copier le code

 : 
CREATE TABLE products (
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(255),
product_price DECIMAL(10,2) NOT NULL,
product_description TEXT
);

Exemples pratiques d'utilisation

Voici quelques exemples pratiques d'utilisation de l'instruction CREATE TABLE :

  • Créer une table pour stocker des informations sur les clients d'une entreprise :

Exemple :     📋 Copier le code

 : 
CREATE TABLE clients (
client_id INT NOT NULL PRIMARY KEY,
client_name VARCHAR(255),
client_address VARCHAR(255),
client_phone INT,
client_email VARCHAR(255)
);

Créer une table pour stocker des informations sur les commandes passées par les clients :

Exemple :     📋 Copier le code

 : 
CREATE TABLE orders (
order_id INT NOT NULL PRIMARY KEY,
client_id INT NOT NULL,
order_date DATE,
order_total DECIMAL(10,2),
shipping_address VARCHAR(255)
);

Créer une table appelée `produits` avec les colonnes `id`, `nom`, `prix`, et `description`:

Exemple :     📋 Copier le code

 : CREATE TABLE produits (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prix DECIMAL(10,2),
description TEXT
);

Contraintes Supplémentaires en SQL

Oui, il existe d'autres contraintes supplémentaires que celles citées ci-dessus. En voici quelques-unes :

  • CHECK : cette contrainte permet de spécifier une condition que les données de la colonne doivent respecter. Par exemple, la contrainte suivante spécifie que la colonne product_price doit être supérieure à 0 :

Exemple :     📋 Copier le code

 : 
CREATE TABLE products (
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(255),
product_price DECIMAL(10,2) NOT NULL CHECK (product_price > 0),
product_description TEXT
);
  • UNIQUE : cette contrainte permet de spécifier que les valeurs de la colonne doivent être uniques. Par exemple, la contrainte suivante spécifie que la colonne product_name doit avoir des valeurs uniques :

Exemple :     📋 Copier le code

 : 
CREATE TABLE products (
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(255) UNIQUE,
product_price DECIMAL(10,2) NOT NULL,
product_description TEXT
);
  • DEFAULT : cette contrainte permet de spécifier une valeur par défaut pour la colonne. Par exemple, la contrainte suivante spécifie que la colonne product_created_at aura la valeur CURRENT_TIMESTAMP par défaut :

Exemple :     📋 Copier le code

 : 
CREATE TABLE products (
product_id INT NOT NULL PRIMARY KEY,
product_name VARCHAR(255),
product_price DECIMAL(10,2) NOT NULL,
product_description TEXT,
product_created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  • FOREIGN KEY : cette contrainte permet de créer une relation entre deux tables. Par exemple, la contrainte suivante spécifie que la colonne order_client_id de la table orders doit référencer la colonne client_id de la table clients :

Exemple :     📋 Copier le code

 : 
CREATE TABLE orders (
order_id INT NOT NULL PRIMARY KEY,
order_client_id INT NOT NULL,
order_date DATE,
order_total DECIMAL(10,2),
shipping_address VARCHAR(255)
);

CREATE TABLE clients (
client_id INT NOT NULL PRIMARY KEY,
client_name VARCHAR(255),
client_address VARCHAR(255),
client_phone INT,
client_email VARCHAR(255)
);

ALTER TABLE orders
ADD CONSTRAINT fk_order_client_id
FOREIGN KEY (order_client_id) REFERENCES clients (client_id);

Ces contraintes peuvent être utilisées pour garantir l'intégrité des données stockées dans la table. Elles peuvent également être utilisées pour améliorer la performance des requêtes.

Astuces et conseils d'utilisation

  • Il est important de choisir des noms de colonnes significatifs qui reflètent le contenu des données stockées dans la table.
  • Il est également important de choisir les types de données appropriés pour chaque colonne.
  • Les contraintes supplémentaires peuvent être utiles pour garantir l'intégrité des données stockées dans la table.
  • Utilisez le type de données approprié pour chaque colonne. Par exemple, si une colonne doit stocker des nombres entiers, utilisez le type INT.
  • Utilisez la clause NOT NULL pour les colonnes qui ne peuvent pas contenir de valeurs NULL.
  • Utilisez la clause PRIMARY KEY pour une colonne qui identifie de manière unique chaque enregistrement dans la table.
  • Utilisez la clause FOREIGN KEY pour créer une relation entre deux tables.

Conclusion

L'instruction SQL CREATE TABLE est une instruction essentielle pour la création de toute base de données relationnelle. Elle permet de créer des tables qui correspondent aux besoins spécifiques de l'application.