Commandes DDL et DML essentielles : Créer, Sélectionner, Mettre à jour, Supprimer
Apprenez les commandes MySQL DDL et DML de base : CREATE TABLE, INSERT, SELECT, UPDATE et DELETE.
Commandes DDL et DML essentielles : Créer, Sélectionner, Mettre à jour, Supprimer
Travailler avec MySQL commence généralement par deux tâches : définir vos tables et manipuler les lignes qu'elles contiennent. Les commandes DDL et DML essentielles sont la manière de le faire en toute sécurité.
Les commandes DDL définissent les objets de la base de données tels que les tables. Les commandes DML insèrent, lisent, mettent à jour et suppriment les données des tables. Les exemples ci-dessous utilisent une petite table products pour vous permettre de voir les commandes en contexte.
Langage de définition de données (DDL) : Création de tables
Les commandes DDL concernent le schéma et la structure de vos objets de base de données. La commande DDL la plus fondamentale pour le stockage de données est CREATE TABLE, qui vous permet de définir le plan de vos données.
Syntaxe de CREATE TABLE
La syntaxe de base pour créer une table consiste à spécifier le nom de la table, puis à définir ses colonnes, y compris leurs types de données et toutes contraintes.
CREATE TABLE nom_table (
colonne1 type_donnée contraintes,
colonne2 type_donnée contraintes,
colonne3 type_donnée contraintes,
...
);
nom_table doit être unique dans la base de données actuelle. Chaque colonne nécessite un nom, un type de données et des contraintes facultatives telles que NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY ou DEFAULT valeur.
Exemple de CREATE TABLE
Créons une table simple products pour stocker des informations sur des articles dans un inventaire :
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL UNIQUE,
category VARCHAR(50),
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Dans cet exemple :
product_idest un entier qui s'incrémente automatiquement et sert de clé primaire.product_nameest une chaîne obligatoire qui doit être unique.priceest un nombre décimal obligatoire.stock_quantitypar défaut à 0 si non spécifié.created_atenregistre l'horodatage de la création de la ligne.
Langage de manipulation de données (DML) : Travailler avec les données
Les commandes DML sont utilisées pour gérer les enregistrements (lignes) dans vos tables de base de données. Ce sont les commandes les plus fréquemment utilisées pour les opérations quotidiennes de la base de données.
Commande INSERT : Ajouter de nouvelles données
La commande INSERT est utilisée pour ajouter de nouvelles lignes de données dans une table.
Syntaxe de INSERT
Il existe plusieurs façons d'utiliser INSERT :
Spécifier des valeurs pour toutes les colonnes :
INSERT INTO nom_table VALUES (valeur1, valeur2, valeur3, ...);L'ordre des valeurs doit correspondre à l'ordre des colonnes dans la définition de la table.
Spécifier des valeurs pour des colonnes spécifiques :
INSERT INTO nom_table (colonne1, colonne2, colonne3, ...) VALUES (valeur1, valeur2, valeur3, ...);Cette méthode est généralement préférée car elle est plus lisible et moins sujette aux erreurs si la structure de la table change.
Exemple de INSERT
En utilisant notre table products :
-- Insertion de valeurs pour toutes les colonnes (en supposant AUTO_INCREMENT pour product_id)
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES ('Laptop Pro', 'Électronique', 1200.50, 50);
-- Insertion de valeurs pour des colonnes spécifiques
INSERT INTO products (product_name, price)
VALUES ('Clavier mécanique', 75.99);
-- Insertion de plusieurs lignes à la fois
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES
('Souris ergonomique', 'Électronique', 25.00, 120),
('Lampe de bureau', 'Articles ménagers', 45.00, 75);
Commande SELECT : Récupération de données
La commande SELECT est la pierre angulaire de la récupération de données. Elle vous permet d'interroger votre base de données et d'extraire des données spécifiques en fonction de divers critères.
Syntaxe de SELECT
SELECT colonne1, colonne2, ...
FROM nom_table
WHERE condition
ORDER BY nom_colonne [ASC|DESC]
LIMIT nombre;
colonne1, colonne2, ...: Les colonnes que vous souhaitez récupérer. Utilisez*pour sélectionner toutes les colonnes.FROM nom_table: La table que vous interrogez.WHERE condition: (Facultatif) Filtre les lignes en fonction d'une condition spécifiée. Les conditions peuvent impliquer des opérateurs de comparaison (=,!=,>,<,>=,<=), des opérateurs logiques (AND,OR,NOT) et la correspondance de motifs (LIKE).ORDER BY nom_colonne [ASC|DESC]: (Facultatif) Trie le jeu de résultats par une ou plusieurs colonnes.ASCpour croissant (par défaut),DESCpour décroissant.LIMIT nombre: (Facultatif) Limite le nombre de lignes renvoyées.
Exemples de SELECT
-- Sélectionner toutes les colonnes pour tous les produits
SELECT *
FROM products;
-- Sélectionner uniquement le nom et le prix des produits
SELECT product_name, price
FROM products;
-- Sélectionner les produits de la catégorie 'Électronique'
SELECT *
FROM products
WHERE category = 'Électronique';
-- Sélectionner les produits avec un prix supérieur à 100, triés par prix décroissant
SELECT product_name, price
FROM products
WHERE price > 100
ORDER BY price DESC;
-- Sélectionner les 5 produits les plus chers
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
-- Sélectionner les produits dont le nom commence par 'L'
SELECT *
FROM products
WHERE product_name LIKE 'L%';
Commande UPDATE : Modification de données existantes
La commande UPDATE vous permet de modifier des enregistrements existants dans une table.
Syntaxe de UPDATE
UPDATE nom_table
SET colonne1 = valeur1, colonne2 = valeur2, ...
WHERE condition;
nom_table: La table contenant les enregistrements à mettre à jour.SET colonne1 = valeur1, ...: Spécifie les colonnes à mettre à jour et leurs nouvelles valeurs.WHERE condition: Crucial ! Cette clause détermine quelles lignes seront mises à jour. Si elle est omise, toutes les lignes de la table seront mises à jour.
Exemples de UPDATE
-- Augmenter le prix du 'Laptop Pro' de 50
UPDATE products
SET price = price + 50.00
WHERE product_name = 'Laptop Pro';
-- Mettre à jour la catégorie et le stock du 'Clavier mécanique'
UPDATE products
SET category = 'Accessoires', stock_quantity = 100
WHERE product_name = 'Clavier mécanique';
-- **ATTENTION** : Cela mettrait à jour le prix de TOUS les produits à 10.00
-- UPDATE products
-- SET price = 10.00;
Astuce : Utilisez toujours une clause WHERE lors de la mise à jour pour vous assurer de ne modifier que les enregistrements prévus. Testez d'abord votre clause WHERE avec une instruction SELECT pour vérifier qu'elle cible les bonnes lignes.
Commande DELETE : Suppression de données
La commande DELETE est utilisée pour supprimer des lignes d'une table.
Syntaxe de DELETE
DELETE FROM nom_table
WHERE condition;
nom_table: La table à partir de laquelle supprimer des lignes.WHERE condition: Crucial ! Cette clause spécifie quelles lignes supprimer. Si elle est omise, toutes les lignes de la table seront supprimées.
Exemples de DELETE
-- Supprimer le produit nommé 'Lampe de bureau'
DELETE FROM products
WHERE product_name = 'Lampe de bureau';
-- Supprimer tous les produits en rupture de stock (stock_quantity est 0)
DELETE FROM products
WHERE stock_quantity = 0;
-- **ATTENTION** : Cela supprimerait TOUS les enregistrements de la table 'products' !
-- DELETE FROM products;
Avertissement : Comme pour UPDATE, omettre la clause WHERE dans une instruction DELETE est une opération destructive qui supprimera toutes les données de la table. À utiliser avec une extrême prudence.
Point clé à retenir
Comprendre et utiliser efficacement les commandes DDL et DML est fondamental pour la gestion de bases de données. CREATE TABLE vous permet de définir la structure de vos données, tandis que INSERT, SELECT, UPDATE et DELETE vous permettent de peupler, interroger, modifier et gérer ces données.
En pratiquant ces commandes avec des clauses WHERE claires, en particulier pour UPDATE et DELETE, vous pouvez construire une base solide pour travailler avec les bases de données MySQL et garantir l'intégrité et l'exactitude de vos données. N'oubliez jamais de sauvegarder vos données avant d'effectuer des opérations potentiellement destructives.