Data Manipulation Language (DML)
Data Manipulation Language (DML) - Le langage de manipulation de données est le sous-langage responsable de l’ajout, de la modification ou de la suppression de données d’une base de données.
En SQL, cela correspond aux instructions INSERT
, UPDATE
et DELETE
INSERT
Insertion de données avec INSERT
L’instruction INSERT
permet d’ajouter une ou plusieurs lignes dans une table.
Syntaxe :
1INSERT INTO table_name (column1, column2, column3, ...)2VALUES (value1, value2, value3, ...);
table_name
: le nom de la table dans laquelle ajouter les donnéescolumn1, column2, column3, ...
: les noms des colonnes dans lesquelles ajouter les valeursvalue1, value2, value3, ...
: les valeurs à ajouter dans les colonnes
INSERT
Une ligne
Soit une table employees
avec les colonnes suivantes : id
, first_name
, last_name
, email
Pour ajouter un employé :
1INSERT INTO employees (id, first_name, last_name, email)2VALUES (1, 'John', 'Doe', 'john.doe@domain.com');
INSERT
Plusieurs lignes
Pour ajouter plusieurs employés en une seule requête :
1INSERT INTO employees (id, first_name, last_name, email)2VALUES (1, 'John', 'Doe', 'john.doe@domain.com'),3 (2, 'Jane', 'Smith', 'jane.smith@test.org'),4 (3, 'Alice', 'Brown', 'alice.brown@malt.net');
INSERT
Toutes les colonnes
Si on ajoute des valeurs pour toutes les colonnes, on peut omettre les noms des colonnes :
1INSERT INTO employees2VALUES (1, 'John', 'Doe', 'john.doe@domain.com'),3 (2, 'Jane', 'Smith', 'jane.smith@test.org'),4 (3, 'Alice', 'Brown', 'alice.brown@malt.net');
INSERT
Depuis un SELECT
On peut insérer des données depuis une autre table en utilisant une requête SELECT
:
1INSERT INTO employees (first_name, last_name, email)2SELECT fname, lname, mail3FROM another_table4WHERE condition;
Exemple
1INSERT INTO employees (first_name, last_name, email)2SELECT first_name, last_name, email3FROM clients4WHERE category = 'C1';
Mise à jour de données avec UPDATE
L’instruction UPDATE
permet de modifier les valeurs d’une ou plusieurs lignes dans une table.
Syntaxe :
1UPDATE table_name2SET column1 = value1, column2 = value2, ...3WHERE condition;
UPDATE
Une ligne
Pour mettre à jour un employé :
1UPDATE employees2SET first_name = 'John2', last_name = 'Doe2', email = 'john2.doe@domain.com'3WHERE id = 1;
UPDATE
Plusieurs lignes
Pour mettre à jour plusieurs employés en une seule requête :
1UPDATE employees2SET first_name = 'John2', last_name = 'Doe2', email = 'john2.doe@domain.com'3WHERE id IN (1, 2, 3);
UPDATE
Depuis un SELECT
On peut tout à fait mettre à jour des données depuis une autre table en utilisant une requête SELECT
:
1UPDATE employees2SET first_name = fname, last_name = lname, email = mail3FROM another_table4WHERE employees.id = another_table.id;
DELETE
Suppression de données avec DELETE
L’instruction DELETE
permet de supprimer une ou plusieurs lignes dans une table.
Syntaxe :
1DELETE FROM table_name2WHERE condition;
DELETE
Une ligne
Pour supprimer un employé :
1DELETE FROM employees2WHERE id = 1;
DELETE
Plusieurs lignes
Pour supprimer plusieurs employés en une seule requête :
1DELETE FROM employees2WHERE id IN (1, 2, 3);
DELETE
Toutes les lignes
Pour supprimer toutes les lignes d’une table :
1DELETE FROM employees;
DELETE
Depuis un SELECT
On peut supprimer des données depuis une autre table en utilisant une requête SELECT
:
1DELETE FROM employees2WHERE id IN (SELECT id FROM another_table WHERE condition);
DELETE
Attention avec DELETE
Exercices
Proposez des requêtes SQL pour :
- Ajouter un nouveau client dans la table
clients
de la base de donnéesBoutique
avec les informations suivantes : numero :10
, nom :Dupont
, prenom :Jean
, rue :6 Rue de la Paix
, ville :Paris
, codePostal :75002
, telephone :01 23 45 67 89
, categorie :C2
, compte :1000.0
Solution
1INSERT INTO clients (numero, nom, prenom, rue, ville, codePostal, telephone, categorie, compte)2VALUES (10, 'Dupont', 'Jean', '6 Rue de la Paix', 'Paris', '75002', '01 23 45 67 89', 'C2', 1000.0);
- Mettre à jour le client
Dupont
pour changer son nom enDurand
Solution
1UPDATE clients2SET nom = 'Durand'3WHERE numero = 10;
- Supprimer le client
Durand
Solution
1DELETE FROM clients2WHERE numero = 10;
version alternative :
1DELETE FROM clients2WHERE nom = 'Durand';
-
Ajouter plusieurs produits dans la table
produits
de la base de donnéesBoutique
avec les informations suivantes :- id :
6
, nom :Téléviseur
, prix :499.99
, stock :10
- id :
7
, nom :Ordinateur
, prix :799.99
, stock :5
- id :
8
, nom :Smartphone
, prix :299.99
, stock :15
- id :
Solution
1INSERT INTO produits (id, nom, prix, stock)2VALUES (6, 'Téléviseur', 499.99, 10),3 (7, 'Ordinateur', 799.99, 5),4 (8, 'Smartphone', 299.99, 15);
- Mettre à jour le produit
Téléviseur
pour changer son prix en449.99
Solution
1UPDATE produits2SET prix = 449.993WHERE nom = 'Téléviseur';
- Supprimer les produits
Ordinateur
etSmartphone
Solution
1DELETE FROM produits2WHERE nom IN ('Ordinateur', 'Smartphone');