Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Le langage SQL
Langage de Manipulation de Données
Ines BAKLOUTI
Ecole Supérieure Privée d’Ingénierie et de Technologies
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise à jour de lignes
3 Suppression de lignes
2/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Introduction
DML = Data Manipulation Language (Langage de Manipulation de
Données LDD)
Insertion de lignes données (INSERT)
Mise à jour de lignes données (UPDATE)
Suppression de lignes données (DELETE )
Une transaction est un ensemble d’ordres du LMD
3/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise à jour de lignes
3 Suppression de lignes
4/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Insertion de lignes
Syntaxe
Publicité
1 Insertion explicite :
INSERT INTO <nom table> VALUES (valeur1, valeur2, . . . valeurN) ;
L’ordre et le type des valeurs doivent être le même que ceux des colonnes de la table
Exemple
INSERT INTO departments VALUES (50, ’Development’, 120, 1500) ;
INSERT INTO departments VALUES (50, ’Development’, NULL, NULL) ;
2 Insertion implicite :
INSERT INTO <nom table>(colonne1, colonne2, . . . colonneN) VALUES (valeur1, valeur2,
. . . valeurN) ;
L’ordre et le type des colonnes et des valeurs doivent être le même
Placez les valeurs de type caractère et date entre simples quotes
Exemple
INSERT INTO departments(department id, department name) VALUES (50, ’Development’) ;
5/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Insertion de lignes à partir d’autres tables
Syntaxe
INSERT INTO <nom table>(colonne1, colonne2, . . . colonneN)
SELECT <requete select> ;
Le nombre de colonnes de la clause INSERT doit correspondre à
celui de la sous-interrogation
Exemples
INSERT INTO managers(id, name, salary, hiredate) SELECT emloyee id, last name, salary,
hire date FROM employees WHERE job id LIKE (’% MAN’) ;
INSERT INTO managers(id, name, salary, hiredate, department name) SELECT
employee id, last name, salary, hire date, department name FROM employees e,departments
d WHERE e.department id=d.department id and job id LIKE (’% MAN’) ;
6/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise à jour de lignes
3 Suppression de lignes
7/13
Insertion de lignes
Mise à jour de lignes
Publicité
Suppression de lignes
Mise à jour de lignes
Syntaxe
UPDATE <nom table> SET <colonne>=<valeur>
[,<colonne>=<valeur>] [WHERE <conditions>] ;
Exemples
UPDATE employees SET department id=20 ;
=⇒ le département de tous les employées est mis à jour
UPDATE employees SET department id=20 WHERE employee id=125 ;
=⇒ uniquement le département de l’employé 125 est mis à jour
UPDATE employees SET department id=20, salary=5000 WHERE employee id=125 ;
=⇒ le département et le salaire de l’employé 125 sont mis à jour
8/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Mise à jour de lignes avec une sous-intérrogation
Syntaxe
UPDATE <nom table> SET (colonne1,colonne2,. . . ,colonneN) = (SELECT colonne1,
colonne2,. . . ,colonneN) FROM <nom table> WHERE condition ) WHERE <condition> ;
Exemple
Mettre a jour le poste et le salaire de l’employé 117 afin qu’ils correspondent a ceux de l’employé
205
1 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 ;
2 UPDATE employees SET
(job id, salary) = (SELECT job id, salary FROM employees WHERE employee id = 205)
WHERE employee id = 114 ;
9/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Mise a jour de lignes a partir d’une autre table
Syntaxe
UPDATE <nom table1> AS a SET <colonnei>= (SELECT <expression> FROM <nom table2>
AS b WHERE a.colonne1=b.colonne2 ;
Exemple
ALTER TABLE employees ADD (dname varchar2(30)) ;
Publicité
UPDATE employees e SET dname = (SELECT department name FROM departments d
WHERE e.department id=d.department id) ;
10/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise à jour de lignes
3 Suppression de lignes
11/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Suppression de lignes
Syntaxe
DELETE [FROM] <nom table> [WHERE <condition>] ;
Exemples
DELETE FROM employees ;
=⇒ tous les employées sont supprimés
DELETE FROM employees WHERE hire date > to date(’01.01.97’, ’DD.MM.YY’) ;
=⇒ uniquement les employés embauché après 01.01.97 sont supprimés
12/13
Insertion de lignes
Mise à jour de lignes
Suppression de lignes
Suppression de lignes en fonction d’une autre table
Utiliser des sous-interrogation dans les instructions DELETE afin de
supprimer des lignes d’une table en fonction des valeurs d’une autre
table :
Exemple
1 DELETE FROM employees
WHERE department id =
(SELECT department id FROM departments WHERE department name = ’Finance’) ;
2 DELETE FROM employees
WHERE job id IN
(SELECT job id FROM jobs WHERE job title like ’Administration’) ;
13/13