Insertion, Mise à Jour et Suppression de Lignes en SQL

Ce document présente les principales opérations de manipulation de données en SQL, destinées aux étudiants et professionnels souhaitant maîtriser l'insertion, la mise à jour et la suppression de lignes dans une base de données relationnelle. Il couvre les syntaxes de base, des exemples pratiques ainsi que des cas d'utilisation avancés avec des sous-requêtes.

D'après le document Insertion, Mise à Jour et Suppression de Lignes en SQL

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Insertion, Mise à Jour et Suppression de Lignes en SQL

SQL, Data Manipulation Language · PDF · 13 pages

Afficher l'aperçu du document

Consulter le document original →

Ce document présente les principales opérations de manipulation de données en SQL, destinées aux étudiants et professionnels souhaitant maîtriser l'insertion, la mise à jour et la suppression de lignes dans une base de données relationnelle. Il couvre les syntaxes de base, des exemples pratiques ainsi que des cas d'utilisation avancés avec des sous-requêtes.

Insertion de lignes

L'insertion de lignes en SQL permet d'ajouter de nouvelles données dans une table. Cette opération fait partie du langage DML (Data Manipulation Language).

Insertion explicite

La syntaxe de base pour insérer une ligne complète dans une table est :

INSERT INTO <nom table> VALUES (valeur1, valeur2, ..., valeurN) ;

Il est important que l'ordre et le type des valeurs correspondent exactement à ceux des colonnes de la table.

Exemples :

INSERT INTO departments VALUES (50, 'Development', 120, 1500) ;
INSERT INTO departments VALUES (50, 'Development', NULL, NULL) ;

Insertion implicite (avec spécification des colonnes)

On peut préciser les colonnes dans lesquelles insérer les valeurs, ce qui permet d'insérer uniquement certaines colonnes :

INSERT INTO <nom table> (colonne1, colonne2, ..., colonneN) VALUES (valeur1, valeur2, ..., valeurN) ;

L'ordre et le type des colonnes et des valeurs doivent correspondre. Les valeurs de type caractère ou date doivent être placées entre simples quotes.

Exemple :

INSERT INTO departments (department_id, department_name) VALUES (50, 'Development') ;

Insertion à partir d’autres tables

Il est possible d'insérer des données dans une table à partir d'une requête SELECT sur une ou plusieurs autres tables :

INSERT INTO <nom table> (colonne1, colonne2, ..., colonneN)
SELECT colonne1, colonne2, ..., colonneN FROM ... ;

Le nombre de colonnes dans la clause INSERT doit correspondre à celui de la requête SELECT.

Exemples :

INSERT INTO managers (id, name, salary, hiredate)
SELECT employee_id, last_name, salary, hire_date FROM employees WHERE job_id LIKE ('%MAN') ;

INSERT INTO managers (id, name, salary, hiredate, department_name)
SELECT e.employee_id, e.last_name, e.salary, e.hire_date, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id AND job_id LIKE ('%MAN') ;

Mise à jour de lignes

La mise à jour permet de modifier les valeurs existantes dans une table. Elle utilise la commande UPDATE.

Syntaxes de base

La syntaxe générale est :

UPDATE <nom table> SET colonne = valeur [, colonne = valeur, ...] [WHERE condition] ;

Sans clause WHERE, toutes les lignes de la table sont mises à jour.

Exemples :

UPDATE employees SET department_id = 20 ;
-- met à jour le département de tous les employés

UPDATE employees SET department_id = 20 WHERE employee_id = 125 ;
-- met à jour uniquement le département de l'employé 125

UPDATE employees SET department_id = 20, salary = 5000 WHERE employee_id = 125 ;
-- met à jour le département et le salaire de l'employé 125

Mise à jour avec sous-interrogation

On peut utiliser une sous-requête pour mettre à jour des colonnes en fonction des valeurs d'autres lignes ou tables :

UPDATE <nom table> SET (colonne1, colonne2, ..., colonneN) =
(SELECT colonne1, colonne2, ..., colonneN FROM <nom table> WHERE condition)
WHERE condition ;

Exemple : Mettre à jour le poste (job_id) et le salaire de l’employé 114 pour qu’ils correspondent à ceux de l’employé 205 :

UPDATE employees SET
job_id = (SELECT job_id FROM employees WHERE employee_id = 205),
salary = (SELECT salary FROM employees WHERE employee_id = 205)
WHERE employee_id = 114 ;

Ou de façon équivalente :

UPDATE employees SET
(job_id, salary) = (SELECT job_id, salary FROM employees WHERE employee_id = 205)
WHERE employee_id = 114 ;

Mise à jour à partir d’une autre table

On peut mettre à jour une table en utilisant une sous-requête qui fait référence à une autre table :

UPDATE <nom table1> AS a SET colonne_i = (
  SELECT expression FROM <nom table2> AS b WHERE a.colonne1 = b.colonne2
) ;

Exemple : Ajouter une colonne "dname" dans la table employees puis la remplir avec le nom du département correspondant :

ALTER TABLE employees ADD (dname varchar2(30)) ;

UPDATE employees e SET dname = (
  SELECT department_name FROM departments d WHERE e.department_id = d.department_id
) ;

Suppression de lignes

La suppression permet de retirer des lignes d’une table avec la commande DELETE.

Syntaxe de base

DELETE [FROM] <nom table> [WHERE condition] ;

Sans clause WHERE, toutes les lignes de la table sont supprimées.

Exemples :

DELETE FROM employees ;
-- supprime tous les employés

DELETE FROM employees WHERE hire_date > TO_DATE('01.01.97', 'DD.MM.YY') ;
-- supprime uniquement les employés embauchés après le 01.01.97

Suppression en fonction d’une autre table

On peut utiliser des sous-requêtes dans la clause WHERE pour supprimer des lignes selon des critères liés à une autre table :

DELETE FROM <nom table> WHERE colonne IN (SELECT colonne FROM autre_table WHERE condition) ;

Exemples :

DELETE FROM employees
WHERE department_id = (
  SELECT department_id FROM departments WHERE department_name = 'Finance'
) ;

DELETE FROM employees
WHERE job_id IN (
  SELECT job_id FROM jobs WHERE job_title LIKE 'Administration'
) ;

Glossaire des termes clés

  • DML (Data Manipulation Language) : Langage de manipulation des données, incluant les commandes INSERT, UPDATE et DELETE.
  • INSERT INTO : Commande SQL pour insérer de nouvelles lignes dans une table.
  • UPDATE : Commande SQL pour modifier les valeurs existantes dans une ou plusieurs colonnes d’une table.
  • DELETE : Commande SQL pour supprimer des lignes d’une table.
  • Sous-interrogation (subquery) : Requête imbriquée dans une autre requête, utilisée pour récupérer des données servant à une opération principale.
  • Clause WHERE : Partie d’une requête SQL qui filtre les lignes concernées par l’opération.
  • NULL : Valeur représentant l’absence de donnée dans une colonne.

Points clés à retenir

  • La commande INSERT permet d’ajouter des lignes, soit en spécifiant toutes les colonnes, soit en ciblant certaines colonnes.
  • On peut insérer des données issues d’autres tables via une requête SELECT.
  • La commande UPDATE modifie les données existantes ; sans clause WHERE, toutes les lignes sont affectées.
  • Les mises à jour peuvent utiliser des sous-requêtes pour copier des valeurs d’autres lignes ou tables.
  • La suppression avec DELETE retire des lignes, avec ou sans condition.
  • Les sous-requêtes dans DELETE permettent de supprimer des lignes selon des critères liés à d’autres tables.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions