preloader

DDL (Data Definition Language)

Les commandes du DDL sont des commandes SQL utilisées pour manipuler les structures des bases et des tables mais ne servent pas à manipuler les données. Une structure peut consister en une base données ou bien une table au sein d’une base. Les structures sont des squelettes qui permettent d’encapsuler les données.

On distingue typiquement six types de commandes SQL de définition de données :

·       CREATE : création d’une structure de données;

·       ALTER : modification d’une structure de données ;

·       DROP : suppression d’une structure de données;

·       RENAME : renommage d’une structure de données ;

·       TRUNCATE : suppression toutes les données d’une structure de donnée (n’est pas supporté par Microsoft Access).

I.1.1        La commande CREATE

Avec la commande CREATE, on peut créer soit des bases de données soit des tables. La syntaxe générale est :

·       CREATE DATABASE nom_de_la_base ;   

pour créer des base de données.

Exemple :  CREATE DATABASE  employes;  

·       CREATE TABLE nom_de_la_table (
                                                               champ1 TYPE,
                                                              champ2 TYPE,
                                                              champ3 TYPE,
                                                                         ….
                                                                   );

pour créer des base tables.

Exemple :

CREATE TABLE employés (
    id int,
    nom text,
    ville text,
   grade text
);

Ainsi une nouvelle table sera crée.

 

Les types de données peuvent être catégorisé selon la figure suivante.

Par exemple, pour déclarer :

·       des entiers il faut utiliser le type « int »

·       des dates il faut utiliser le type « Date »

I.1.2        La commande ALTER

La commande ALTER TABLE en SQL permet de modifier une table existante. Par exemple pour ajouter une colonne, supprimer une colonne ou modifier une colonne existante, ou bien changer le type.

D’une manière générale, la commande s’utilise de la manière suivante:

 

ALTER TABLE nom_table 

Instruction ;

Le mot-clé “instruction” ici sert à désigner une commande supplémentaire, qui sera détaillée ci-dessous selon l’action que l’on souhaite effectuer : ajouter, supprimer ou modifier une colonne.

Syntaxe

L’ajout d’une colonne dans une table est relativement simple et peut s’effectuer à l’aide d’une requête ressemblant à ceci:

ALTER TABLE nom_table
ADD nom_colonne type_donnees ;

 

Exemple

Pour ajouter une colonne qui correspond à la date d’affectation, il est possible d’utiliser la requête suivante:

ALTER TABLE employes
ADD date_aff DATE ;

Supprimer une colonne

Une syntaxe permet également de supprimer une colonne pour une table. Il y a 2 manières totalement équivalente pour supprimer une colonne:

ALTER TABLE nom_table
DROP nom_colonne ;

Ou (le résultat sera le même)

ALTER TABLE nom_table
DROP COLUMN nom_colonne ;

Il faut noter que le SGBD Access permet d’effectuer les taches précédentes en mode graphique sans utiliser le code SQL.

I.1.3        La commande DROP

La commande DROP permet de supprimer une base de donnée (DROP DATABASE) aussi bien qu’une table (DROP TABLE).

·       DROP DATABASE

La commande DROP DATABASE permet de supprimer totalement une base de données et tout ce qu’elle contient. Cette commande est à utiliser avec beaucoup d’attention car elle permet de supprimer tout ce qui est inclus dans une base: les tables, les données, les index …

Syntaxe

Pour supprimer la base de données “ma_base”, la requête est la suivante :

DROP DATABASE ma_base ;

 

Attention : cela va supprimer toutes les tables et toutes les données de cette base. Si vous n’êtes pas sûr de ce que vous faites, n’hésitez pas à effectuer une sauvegarde de la base avant de supprimer.

·       DROP TABLE

La commande DROP TABLE en SQL permet de supprimer définitivement une table d’une base de données.

Attention : il faut utiliser cette commande avec attention car une fois supprimée, les données sont perdues. Avant de l’utiliser sur une base importante il peut être judicieux d’effectuer un backup (une sauvegarde) pour éviter les mauvaises surprises.

Syntaxe

Pour supprimer une table “nom_table” il suffit simplement d’utiliser la syntaxe suivante :

DROP TABLE nom_table ;

 

A savoir : s’il y a une dépendance avec une autre table, il est recommandé de les supprimer avant de supprimer la table. C’est le cas par exemple s’il y a des clés étrangères.

Exemple

Imaginons qu’une base de données possède une table “missions” qui ne sera plus jamais utilisé et qui existe déjà dans un ancien backup. Pour supprimer cette table, il suffit d’effectuer la requête suivante:

DROP TABLE missions ;

L’exécution de cette requête va permettre de supprimer la table.

I.1.4        La commande RENAME

Comme pour les fichiers dans un répertoire, il est également possible de renommer une table. Il suffit d’employer la commande SQL RENAME comme suit :

 

RENAME TABLE Ancien_Nom TO Nouveau_Nom ;

A savoir : La commande RENAME ne fonctionne pas sur quelques SGBD comme ACCESS.

I.1.5        La commande TRUNCATE

En SQL, la commande TRUNCATE permet de supprimer toutes les données d’une table sans supprimer la table en elle-même. En d’autres mots, cela permet de purger (vider) la table. Cette instruction diffère de la commande DROP qui a pour but de supprimer les données ainsi que la table qui les contient.

A noter : l’instruction TRUNCATE est semblable à l’instruction DELETE sans utilisation de WHERE. Parmi les petite différences TRUNCATE est toutefois plus rapide et utilise moins de ressource. Ces gains en performance se justifie notamment parce que la requête n’indiquera pas le nombre d’enregistrement supprimés et qu’il n’y aura pas d’enregistrement des modifications dans le journal. Malheureusement, cette commande n’est pas supporté par le SGBD ACCESS.

Syntaxe

Cette instruction s’utilise dans une requête SQL semblable à celle-ci :

TRUNCATE TABLE `table` ;

Dans cet exemple, les données de la table “table” seront perdues une fois cette requête exécutée.