cours
Commandes SQL DDL : Le guide définitif
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 |
|
Créez un tableau et ses tableaux avec leur type de données. |
|
|
Modifiez les noms des colonnes et ajoutez ou supprimez une colonne. |
|
|
Modifiez le nom du tableau. |
|
|
Ajoutez une explication au code SQL pour que les autres membres de l'équipe puissent l'examiner. |
|
|
Supprimer des données d'un tableau sans supprimer le tableau. |
|
|
Supprimez le tableau et ses données. |
|
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 tableauactor_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 ALTER
et 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 :
- Apprenez les différents types de commandes pour travailler avec SQL
- Gardez une antisèche SQL à portée de main pour vous familiariser avec les meilleures pratiques et les commandes fréquemment utilisées.
- Préparez-vous à un entretien SQL avec notre guide des meilleurs entretiens SQL
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.
Poursuivez votre voyage SQL dès aujourd'hui !
cours
SQL intermédiaire
cours