Accéder au contenu principal

Commandes SQL DDL : Le guide définitif

Découvrez les commandes SQL DDL et la manière dont elles permettent de définir et de gérer la structure des objets de la base de données.
Actualisé 14 nov. 2024  · 11 min de lecture

Le langage SQL est essentiel pour les scientifiques et les ingénieurs des données afin d'extraire des informations des bases de données. Une base de données se compose de plusieurs tableaux, et il existe différentes variantes de SQL allant de PostgreSQL à Snowflake.

Les commandes du langage de définition des données (DDL) de SQL sont utilisées pour définir et gérer la structure des objets de la base de données. Dans cet article, j'expliquerai les commandes DDL en SQL avec des exemples utilisant une base de données de films. Commençons !

Que sont les commandes DDL en SQL ?

Les commandes DDL (Data Definition Language) me permettent de définir et de gérer un schéma en SQL. En bref, un schéma en SQL est un plan qui définit comment les données sont organisées dans une base de données et comment sont gérées les relations entre les différents tableaux de la base de données.

Les commandes DDL se composent de différentes commandes qui ont des fonctionnalités différentes, que je vais aborder dans l'ordre suivant :

Commande DDL

DESCRIPTION

SYNTAX

CREATE

Créez un tableau et ses tableaux avec leur type de données.

CREATE TABLE

ALTER

Modifiez les noms des colonnes et ajoutez ou supprimez une colonne.

ALTER TABLE

RENAME

Modifiez le nom du tableau.

RENAME TABLE

COMMENT

Ajoutez une explication au code SQL pour que les autres membres de l'équipe puissent l'examiner.

--

/* …

…*/

TRUNCATE

Supprimer des données d'un tableau sans supprimer le tableau.

TRUNCATE TABLE

DROP

Supprimez le tableau et ses données.

DROP TABLE

Commandes DDL en SQL avec exemples

Maintenant que nous avons une compréhension de base des commandes DDL et de leurs objectifs, explorons quelques exemples pratiques en utilisant la base de données Movies.

Commande CREATE en SQL

Lorsque je dois créer un nouveau tableau, j'utilise la commande CREATE TABLE comme indiqué ci-dessous :

CREATE TABLE table_name (
    column_1 datatype,
    column_2 datatype,
    ...,
    column_n datatype
);

Dans l'exemple ci-dessus, je définis des colonnes avec différents types de données. SQL prend en charge différents types de données, bien que les types les plus courants soient STRING (texte), INT (nombres entiers), FLOAT (nombres décimaux) et DATE (date).

Par exemple, si je veux créer le tableau actor, j'utilise CREATE TABLE comme tel :

CREATE TABLE actor (
    actor_id String(32767),
    first_name String(32767),
    last_name String(32767),
    last_update String(32767)
);

Où ?

  • actor est le nom du tableau
  • actor_id est un nom de colonne dont le contenu doit être au format texte (String) et ne pas dépasser 32767 caractères.
  • first_name est un nom de colonne dont le contenu doit être au format texte (String) et ne pas dépasser 32767 caractères.
  • last_name est un nom de colonne dont le contenu doit être au format texte (String) et ne pas dépasser 32767 caractères.
  • last_update est un nom de colonne dont le contenu doit être au format texte (String) et ne pas dépasser 32767 caractères.

Une fois la requête exécutée, le nouveau tableau sera visible avec les autres tableaux, de sorte que je pourrai l'interroger à tout moment.

Commande ALTER en SQL

En utilisant ALTER en SQL, je peux mettre à jour un tableau sans devoir créer un autre tableau et supprimer l'ancien. Les organisations peuvent avoir des milliers de tableaux, et il est essentiel de savoir comment maintenir les données à jour sans risquer des pertes de données.

Il est important de noter qu'il y a plusieurs façons d'utiliser ALTER- notamment :

  • Ajout de nouvelles colonnes dans un tableau
  • Renommer des colonnes dans un tableau
  • Modification des colonnes d'un tableau
  • Suppression de colonnes dans un tableau

La commande ADD dans ALTER

Pour ajouter une nouvelle colonne à l'aide de ALTER, nous combinons la commande ALTER avec la commande ADD, comme indiqué ci-dessous :

ALTER TABLE table_name ADD column_name datatype;

Ici, nous ajoutons une nouvelle colonne nationality avec le type de données STRING au tableau des acteurs.

ALTER TABLE actor ADD nationality String(32767);

Toutes les commandes ALTER en SQL suivent une structure similaire, ce qui fait de SQL un langage de programmation naturel à apprendre et à maîtriser.

La commande RENAME dans ALTER

Lorsque je dois modifier le nom d'une colonne, j'utilise la commande RENAME dans ALTER comme suit :

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

Par exemple, changeons le nom de la colonne last_name en family_name pour éviter toute confusion, qu'il s'agisse d'un deuxième prénom ou d'un nom de famille. Dans ce cas, je poserai la question suivante :

ALTER TABLE actor RENAME COLUMN last_name TO family_name;

MODIFY dans la commande ALTER

Les types de données définissent les propriétés des colonnes et influencent la qualité des données. Par exemple, last_update a été défini comme String(text), mais les données montrent clairement qu'il représente la date et l'heure.

En examinant les différents types de données et en se référant aux données de la colonne, le type de données approprié est TIMESTAMP.

La mise à jour du type de données d'une colonne facilite l'agrégation et le filtrage des données par date à l'aide d'autres commandes SQL. Voici comment nous utilisons MODIFY en SQL :

ALTER TABLE table_name ALTER COLUMN column_name datatype;

En tenant compte de ce qui précède dans le site last_update, j'utilise la requête suivante :

ALTER TABLE actor ALTER COLUMN last_update TIMESTAMP;

La commande DROP dans ALTER

La dernière option offerte par ALTER consiste à supprimer une colonne. Il y a de nombreuses raisons pour lesquelles je devrais DROP une colonne, notamment, mais pas exclusivement :

  • Les informations qui ne sont plus pertinentes,
  • Informations en double, lorsque la même colonne se retrouve dans un autre tableau,
  • Problèmes de qualité des données,
  • Optimisez l'espace de stockage.

Il est facile de supprimer une colonne en SQL, mais il faut l'utiliser avec prudence car il n'est pas toujours possible d'inverser l'action de suppression d'une colonne.

ALTER TABLE table_name DROP COLUMN column_name;

La commande permettant de supprimer une colonne est similaire à celle permettant de renommer une colonne, mais les deux ne sont pas identiques. pas pas les mêmes. Renommer le nom de la colonne permet de conserver les données dans la colonne, mais modifie l'en-tête. En revanche, la commande DROP supprime à la fois les données et l'en-tête, comme si la colonne n'avait jamais existé.

Après avoir réalisé que la colonne last_update ne fournit que peu d'informations, si ce n'est que la base de données a été rafraîchie, j'ai décidé de la supprimer en utilisant la requête suivante :

ALTER TABLE actor DROP COLUMN last_update; 

Commande RENAME en SQL

La commande RENAME ne s'applique qu'au changement de nom du tableau et ne doit pas être confondue avec les possibilités offertes par ALTERet RENAME. En fait, pour changer le nom d'un tableau, la requête est simplement :

RENAME TABLE old_table_name TO new_table_name;

Le tableau actor ne contient que des noms et ne comporte pas d'autres informations sur les acteurs. Il est donc logique de clarifier ce point en changeant le nom du tableau en :

RENAME TABLE actor TO actor_names;

COMMENT en SQL

Les commentaires en SQL sont essentiels pour la clarté et le contexte, ce qui facilite la compréhension et la maintenance de vos requêtes. Il permet d'expliquer une logique complexe, de documenter les changements et de justifier certains choix. Dans SQL, vous pouvez ajouter des commentaires de deux manières :

  • Commentaires sur une seule ligne
  • Commentaires sur plusieurs lignes

Voyons-les en action.

Commentaires sur une seule ligne en SQL

Le commentaire d'une seule ligne se fait généralement à côté du code, comme ci-dessous. Ainsi, je peux lire le commentaire d'un collègue tout en lisant le code.

Dans le tableau actor, actor_id et last_update ne sont pas intuitifs et doivent être clarifiés à l'aide d'un commentaire.

CREATE TABLE actor (
 actor_id String(32767), --unique identifier
 first_name String(32767),
 last_name String(32767),
 last_update String(32767)--datetime of last update
);

Commenter en SQL est une commande différente des autres commandes de cet article car elle n'appelle pas une fonction COMMENT. Les deux traits d'union sans espace entre "--" indiquent le début d'un commentaire. Tout ce qui est écrit après ne sera pas considéré comme faisant partie du code.

Commentaires sur plusieurs lignes en SQL

Lorsque l'explication est plus longue, utilisez des commentaires sur plusieurs lignes. Cette option est préférable pour expliquer une fonction ou fournir un contexte détaillé. Pour ajouter un commentaire sur plusieurs lignes en SQL, commencez par /* et terminez par */. Le moteur SQL ignore tout ce qui est écrit entre /* et */ et n'est pas exécuté dans le cadre de la requête.

/* Create a table `actor` with the actors’ names. Store first and last name, and keep track of any updates*/
CREATE TABLE actor (
 actor_id String(32767), --unique internal identifier
 first_name String(32767),
 last_name String(32767),
 last_update String(32767)--datetime of last update
);

Commande TRUNCATE en SQL

Tronquer un tableau n'est pas la même chose que le supprimer. La troncature supprime toutes les données mais conserve la structure du tableau intacte, tandis que la suppression supprime l'intégralité du tableau, y compris sa structure. Il faut veiller à choisir la bonne commande pour le bon usage.

L'équivalent de TRUNCATE dans Excel peut être obtenu en sélectionnant toutes les données sous le nom de la colonne et en appuyant sur la touche "supprimer". En SQL, j'écris :

TRUNCATE TABLE table_name;

Si le site actor doit être tronqué, je l'exécute :

TRUNCATE TABLE actor;

Le résultat serait un tableau ne comportant que des noms de colonnes et aucune valeur.

Commande DROP en SQL

Contrairement à TRUNCATE, la commande DDL DROP supprime le tableau et toutes ses valeurs. Il convient d'être prudent lors de l'exécution de ces commandes, car cette action n'est pas toujours réversible. La commande DROP a une structure similaire à celle de la requête TRUNCATE:

DROP TABLE table_name;

Ainsi, la suppression de l'acteur du tableau est aussi simple que

DROP TABLE actor;

Bien que les différentes versions de SQL puissent nécessiter de légères modifications de la syntaxe, les commandes DDL ci-dessus sont en grande partie les mêmes quelle que soit la version de SQL que vous utilisez.

Commandes DDL et autres types de commandes

Dans la section précédente, j'ai expliqué comment les commandes DDL définissent la structure des tableaux et mettent à jour leur contenu ou leurs propriétés en fonction des besoins. D'autres types de commandes SQL permettent de sélectionner, d'agréger, de mettre à jour et même de joindre des tableaux pour obtenir une vue différente des données, et chaque ensemble de commandes a un objectif spécifique.

Commandement

Définition

Objectif

DQL

Langage d'interrogation de données

Obtenir des données de la base de données sur la base d'un critère

DML

Langage de manipulation de données

Manipulez les tableaux de la base de données avec plus de fonctionnalités que ALTER.

DCL

Langage de contrôle des données

Les contrôles d'autorisation sur l'accès et l'autorité.

TCL

Langage de contrôle des transactions

Mise à jour de la base de données avec les modifications apportées à l'aide de commandes DML

Développez vos compétences en SQL avec DataCamp

Les données sont de bonne qualité lorsqu'elles sont bien définies et structurées. Les commandes DDL de SQL aident les professionnels des données à construire et à maintenir une base de données structurée. D'autres commandes SQL, comme les commandes DML, vous permettent d'afficher, d'agréger, d'insérer, de filtrer et de fusionner des données. Apprenez-en plus sur SQL et développez vos compétences en explorant les ressources suivantes :


Photo of Deandra Cutajar
Author
Deandra Cutajar
LinkedIn

Professionnel des données et de l'IA avec une vaste expérience dans la construction de modèles de science des données sur mesure utilisant des techniques statistiques ainsi que des modèles avancés tels que les séries temporelles, le LLM, les réseaux neuronaux et la théorie des graphes.

Sujets

Poursuivez votre voyage SQL dès aujourd'hui !

Certification disponible

cours

Introduction à SQL

2 hr
784.9K
Apprenez à créer et à interroger des bases de données relationnelles à l'aide de SQL en seulement deux heures.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow