Gestion des Structures de Bases de Données avec les Commandes DDL SQL

Introduction aux Commandes DDL

Le langage de définition de données (DDL, Data Definition Language) en SQL est un ensemble de commandes qui permet de créer, modifier et supprimer la structure des objets d'une base de données, tels que les bases de données elles-mêmes, les tables, les vues ou les index. La maîtrise de ces commandes est essentielle pour tout administrateur ou développeur de bases de données, car elles sont le fondement de l'architecture des systèmes de gestion de bases de données relationnelles.

I. Opérations Fondamentales sur les Bases de Données

1. Création d'une Base de Données (CREATE DATABASE / SCHEMA)

La commande CREATE DATABASE, ou son alias CREATE SCHEMA, permet de définir une nouvelle base de données. Il est recommandé d'utiliser la clause IF NOT EXISTS pour éviter une erreur si la base de données existe déjà.

-- Créer une base de données nommée 'projet_alpha'
CREATE DATABASE projet_alpha;

-- Créer 'ma_base_donnees' seulement si elle n'existe pas déjà
CREATE SCHEMA IF NOT EXISTS ma_base_donnees;

-- Créer une base de données avec un jeu de caractères spécifique
CREATE DATABASE mon_app CHARACTER SET utf8mb4;

2. Consultation des Bases de Données (SHOW / SELECT)

Pour lister les bases de données disponibles ou obtenir des informations sur la base de données actuelle.

-- Afficher toutes les bases de données sur le serveur
SHOW DATABASES;

-- Obtenir le nom de la base de données actuellement sélectionnée
SELECT DATABASE();

-- Visualiser la déclaration CREATE d'une base de données spécifique
SHOW CREATE DATABASE mon_app;

3. Sélection d'une Base de Données (USE)

Avant d'interagir avec les tables et les données d'une base, il faut la sélectionner.

-- Rendre 'mon_app' la base de données active pour les opérations suivantes
USE mon_app;

4. Modification des Caractéristiques de la Base (ALTER DATABASE)

La commande ALTER DATABASE permet de modifier les propriétés d'une base de données existante, comme son jeu de caractères par défaut.

-- Modifier le jeu de caractères par défaut de 'mon_app' vers 'latin1'
ALTER DATABASE mon_app DEFAULT CHARACTER SET latin1;

5. Suppression d'une Base de Données (DROP DATABASE)

La suppression d'une base de données est une opération irréversible qui efface toutes les tables et données qu'elle contient.

-- Supprimer la base de données 'projet_alpha'
DROP DATABASE projet_alpha;

-- Supprimer 'ma_base_donnees' uniquement si elle existe, évitant ainsi une erreur
DROP DATABASE IF EXISTS ma_base_donnees;

II. Les Types de Données Fondamentaux en SQL

Le choix du type de données approprié pour chaque colonne d'une table est crucial pour l'optimisation du stockage, la performance des requêtes et l'intégrité des données.

1. Types Numériques

  • Entiers : TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT. Ils stockent des nombres entiers de différentes tailles.
  • Nombres à Virgule Flottante : FLOAT (précision simple) et DOUBLE (précision double). Utilisés pour les valeurs numériques avec des décimales où une certaine imprécision est acceptable.
  • Nombres Décimaux/Fixes : DECIMAL(P, S) ou NUMERIC(P, S).
    • P (précision) représente le nombre total de chiffres que le nombre peut contenir (avant et après la virgule).
    • S (échelle) représente le nombre de chiffres après la virgule.
    • Exemple : Un nombre comme 12345.678 a une précision de 8 (5 chiffres avant, 3 après) et une échelle de 3.

2. Types Chaînes de Caractères

  • CHAR(longueur) : Stocke une chaîne de longueur fixe. Les valeurs plus courtes sont complétées par des espaces. Idéal pour les codes (ex: codes postaux, identifiants fixes).
  • VARCHAR(longueur) : Stocke une chaîne de longueur variable, avec une limite maximale. N'occupe que l'espace nécessaire, plus un petit surcoût pour stocker la longueur. Idéal pour les noms, adresses.
  • TEXT, MEDIUMTEXT, LONGTEXT : Pour de très longues chaînes de caractères (articles, descriptions).

3. Types de Date et Heure

  • DATE : Stocke uniquement une date (AAAA-MM-JJ).
  • TIME : Stocke une heure (HH:MM:SS).
  • DATETIME : Stocke une date et une heure (AAAA-MM-JJ HH:MM:SS).
  • TIMESTAMP : Similaire à DATETIME, mais souvent utilisé pour enregistrer les moments de modification des enregistrements. Sa plage de valeurs et son comportement peuvent varier selon le SGBD.

III. Opérations sur les Tables de Données

1. Création d'une Table (CREATE TABLE)

La structure d'une table est définie par ses colonnes, chacune ayant un nom, un type de données et des contraintes éventuelles.

-- Créer une table nommée 'utilisateurs' avec plusieurs colonnes
CREATE TABLE IF NOT EXISTS utilisateurs (
    id_utilisateur INT PRIMARY KEY AUTO_INCREMENT,
    nom_complet VARCHAR(100) NOT NULL,
    adresse_email VARCHAR(150) UNIQUE,
    date_inscription DATETIME DEFAULT CURRENT_TIMESTAMP,
    est_actif BOOLEAN DEFAULT TRUE
);

2. Consultation des Informations de Table (SHOW / DESCRIBE)

Pour inspecter les tables existantes ou obtenir des détails sur la structure d'une table spécifique.

-- Lister toutes les tables de la base de données courante
SHOW TABLES;

-- Afficher la commande CREATE TABLE utilisée pour 'utilisateurs'
SHOW CREATE TABLE utilisateurs;

-- Obtenir la description de la structure des colonnes de la table 'utilisateurs'
DESCRIBE utilisateurs;
-- Ou sa forme abrégée
DESC utilisateurs;

3. Modification de la Structure d'une Table (ALTER TABLE)

Ces commandes permettent d'ajuster la structure d'une table après sa création, sans perdre les données existantes.

Renommer une Table
-- Changer le nom de la table 'utilisateurs' à 'membres_du_site'
ALTER TABLE utilisateurs RENAME TO membres_du_site;

Ajouter une Nouvelle Colonne
-- Ajouter une colonne 'telephone' à la table 'membres_du_site'
ALTER TABLE membres_du_site ADD COLUMN telephone VARCHAR(20);

Modifier le Type ou les Contraintes d'une Colonne
-- Changer le type de 'telephone' pour permettre des chaînes plus longues
ALTER TABLE membres_du_site MODIFY COLUMN telephone VARCHAR(30) NULL;

Renommer une Colonne et/ou Modifier ses Attributs
-- Renommer 'nom_complet' en 'nom_prenom' et changer son type de données
ALTER TABLE membres_du_site CHANGE COLUMN nom_complet nom_prenom VARCHAR(120) NOT NULL;

Supprimer une Colonne
-- Supprimer la colonne 'est_actif' de la table 'membres_du_site'
ALTER TABLE membres_du_site DROP COLUMN est_actif;

4. Suppression d'une Table (DROP TABLE)

Comme pour les bases de données, la suppression d'une table est irréversible et efface toutes ses données.

-- Supprimer la table 'membres_du_site' si elle existe
DROP TABLE IF EXISTS membres_du_site;

Étiquettes: SQL DDL gestion de bases de données Schéma de Données MySQL

Publié le 6 août à 15h39