Aller au contenu

UGA - MIASHS - S7 - BDD - Pierre Blarre

Data Manipulation Language (DML)

Icône Présentation
1 / 1

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 :

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • table_name : le nom de la table dans laquelle ajouter les données
  • column1, column2, column3, ... : les noms des colonnes dans lesquelles ajouter les valeurs
  • value1, 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é :

INSERT INTO employees (id, first_name, last_name, email)
VALUES (1, 'John', 'Doe', 'john.doe@domain.com');

INSERT

Plusieurs lignes

Pour ajouter plusieurs employés en une seule requête :

INSERT INTO employees (id, first_name, last_name, email)
VALUES (1, 'John', 'Doe', 'john.doe@domain.com'),
(2, 'Jane', 'Smith', 'jane.smith@test.org'),
(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 :

INSERT INTO employees
VALUES (1, 'John', 'Doe', 'john.doe@domain.com'),
(2, 'Jane', 'Smith', 'jane.smith@test.org'),
(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 :

INSERT INTO employees (first_name, last_name, email)
SELECT fname, lname, mail
FROM another_table
WHERE condition;

Exemple

INSERT INTO employees (first_name, last_name, email)
SELECT first_name, last_name, email
FROM clients
WHERE 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 :

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

UPDATE

Une ligne

Pour mettre à jour un employé :

UPDATE employees
SET first_name = 'John2', last_name = 'Doe2', email = 'john2.doe@domain.com'
WHERE id = 1;

UPDATE

Plusieurs lignes

Pour mettre à jour plusieurs employés en une seule requête :

UPDATE employees
SET first_name = 'John2', last_name = 'Doe2', email = 'john2.doe@domain.com'
WHERE 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 :

UPDATE employees
SET first_name = fname, last_name = lname, email = mail
FROM another_table
WHERE 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 :

DELETE FROM table_name
WHERE condition;

DELETE

Une ligne

Pour supprimer un employé :

DELETE FROM employees
WHERE id = 1;

DELETE

Plusieurs lignes

Pour supprimer plusieurs employés en une seule requête :

DELETE FROM employees
WHERE id IN (1, 2, 3);

DELETE

Toutes les lignes

Pour supprimer toutes les lignes d’une table :

DELETE FROM employees;

DELETE

Depuis un SELECT

On peut supprimer des données depuis une autre table en utilisant une requête SELECT :

DELETE FROM employees
WHERE id IN (SELECT id FROM another_table WHERE condition);

DELETE

Attention avec DELETE

Exercices

Proposez des requêtes SQL pour :

  1. Ajouter un nouveau client dans la table clients de la base de données Boutique 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
INSERT INTO clients (numero, nom, prenom, rue, ville, codePostal, telephone, categorie, compte)
VALUES (10, 'Dupont', 'Jean', '6 Rue de la Paix', 'Paris', '75002', '01 23 45 67 89', 'C2', 1000.0);
  1. Mettre à jour le client Dupont pour changer son nom en Durand
Solution
UPDATE clients
SET nom = 'Durand'
WHERE numero = 10;
  1. Supprimer le client Durand
Solution
DELETE FROM clients
WHERE numero = 10;

version alternative :

DELETE FROM clients
WHERE nom = 'Durand';
  1. Ajouter plusieurs produits dans la table produits de la base de données Boutique 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
Solution
INSERT INTO produits (id, nom, prix, stock)
VALUES (6, 'Téléviseur', 499.99, 10),
(7, 'Ordinateur', 799.99, 5),
(8, 'Smartphone', 299.99, 15);
  1. Mettre à jour le produit Téléviseur pour changer son prix en 449.99
Solution
UPDATE produits
SET prix = 449.99
WHERE nom = 'Téléviseur';
  1. Supprimer les produits Ordinateur et Smartphone
Solution
DELETE FROM produits
WHERE nom IN ('Ordinateur', 'Smartphone');