Aller au contenu

Intro au DML (Data Manipulation Language)

Le DML permet de manipuler les données dans les tables d’une base de données.

Les principales instructions sont : INSERT, UPDATE et DELETE.

INSERT : ajouter des données

INSERT sert à ajouter de nouvelles lignes dans une table.

Syntaxe générale

INSERT INTO nom_table (colonne1, colonne2, ...)
VALUES (valeur1, valeur2, ...);

Exemple :

INSERT INTO membre (idMembre, nomMembre, prenomMembre, emailMembre)
VALUES (1, 'Tremblay', 'Julie', 'julie.tremblay@email.com');

Si une valeur est fournie pour tous les champs, on peut omettre d'énumérer les colonnes :

INSERT INTO membre
VALUES (1, 'Tremblay', 'Julie', 'julie.tremblay@email.com');

⚠️ Important :

  • Les valeurs doivent correspondre à l'ordre des colonnes
  • Les types de données doivent correspondre au type des colonnes
  • La clé primaire peut être auto-générée par une séquence avec NEXTVAL
  • Les colonnes qui ont une valeur par défaut ou qui peuvent être null peuvent être omises dans la requête INSERT, mais alors on doit nommer la liste des colonnes à remplir

INSERT avec séquence

Lorsque l'identifiant d'une table est une valeur numérique, on peut utiliser une séquence pour générer les nombres automatiquement.

INSERT INTO membre
VALUES (seq_membre.NEXTVAL, 'Tremblay', 'Julie', 'julie.tremblay@email.com');

UPDATE : modifier les données

UPDATE permet de modifier une ou plusieurs colonnes des lignes existantes.

Syntaxe générale

UPDATE nom_table
SET colonne1 = nouvelle_valeur1
WHERE condition;

Exemple :

-- Modifier l'email d'un membre
UPDATE membre
SET emailMembre = 'julie.nouveau@email.com'
WHERE idMembre = 1;

Il est possible de modifier plusieurs colonnes en une seule requête :

-- Modifier l'email et l'âge
UPDATE membre
SET emailMembre = 'julie.nouveau@email.com',
    ageMembre = 22
WHERE idMembre = 1;

⚠️ Important :

  • Toujours mettre une clause WHERE, car sinon toutes les lignes seront modifiées
  • Toutes les lignes pour lesquelles la clause WHERE est vraie seront modifiées
  • On peut modifier plusieurs colonnes à la fois à l'aide d'une virgule

DELETE : Supprimer des données

DELETE permet de supprimer une ou plusieurs lignes d’une table.

Syntaxe générale

DELETE FROM nom_table
WHERE condition;

Exemple :

-- Supprimer un membre spécifique
DELETE FROM membre
WHERE idMembre = 1;

⚠️ Important :

  • Toujours mettre une clause WHERE, car sinon toutes les lignes seront supprimées
  • Toutes les lignes pour lesquelles la clause WHERE est vraie seront supprimées

DELETE vs DROP

-- Supprime tous les membres, mais conserve la table dans la base de données
DELETE FROM membres;
--Supprime la table et toutes ses données
DROP TABLE membres;

Bonne pratique

🌞 Faire un SELECT avec la même condition WHERE avant UPDATE ou DELETE pour vérifier les lignes qui seront impactées.

Ceci peut éviter des erreurs importantes!

Dans le cas où on voudrait annuler les denières modifications, on peut lancer la commande ROLLBACK si la base de données n'a pas encore exécuté de COMMIT.

ROLLBACK;