Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Le langage SQL
Langage de Manipulation de Donn´ees
Ines BAKLOUTI
Ecole Sup´erieure Priv´ee d’Ing´enierie et de Technologies
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise `a jour de lignes
3 Suppression de lignes
2/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Introduction
DML = Data Manipulation Language (Langage de Manipulation de
Donn´ees LDD)
Insertion de lignes donn´ees (INSERT)
Mise `a jour de lignes donn´ees (UPDATE)
Suppression de lignes donn´ees (DELETE )
Une transaction est un ensemble d’ordres du LMD
3/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
Publicité
2 Mise `a jour de lignes
3 Suppression de lignes
4/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Insertion de lignes
Syntaxe
1 Insertion explicite :
INSERT INTO <nom table> VALUES (valeur1, valeur2, . . . valeurN) ;
L’ordre et le type des valeurs doivent ˆetre le mˆeme 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 ˆetre le mˆeme
Placez les valeurs de type caract`ere et date entre simples quotes
Exemple
INSERT INTO departments(department id, department name) VALUES (50, ’Development’) ;
5/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Insertion de lignes `a 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 `a
celui de la sous-interrogation
Exemples
Publicité
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 `a jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
2 Mise `a jour de lignes
3 Suppression de lignes
7/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Mise `a jour de lignes
Syntaxe
UPDATE <nom table> SET <colonne>=<valeur>
[,<colonne>=<valeur>] [WHERE <conditions>] ;
Exemples
UPDATE employees SET department id=20 ;
=⇒ le d´epartement de tous les employ´ees est mis `a jour
UPDATE employees SET department id=20 WHERE employee id=125 ;
=⇒ uniquement le d´epartement de l’employ´e 125 est mis `a jour
UPDATE employees SET department id=20, salary=5000 WHERE employee id=125 ;
=⇒ le d´epartement et le salaire de l’employ´e 125 sont mis `a jour
8/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Publicité
Mise `a jour de lignes avec une sous-int´errogation
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´e 117 afin qu’ils correspondent a ceux de l’employ´e
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 `a 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)) ;
UPDATE employees e SET dname = (SELECT department name FROM departments d
WHERE e.department id=d.department id) ;
10/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Plan
1 Insertion de lignes
Publicité
2 Mise `a jour de lignes
3 Suppression de lignes
11/13
Insertion de lignes
Mise `a jour de lignes
Suppression de lignes
Suppression de lignes
Syntaxe
DELETE [FROM] <nom table> [WHERE <condition>] ;
Exemples
DELETE FROM employees ;
=⇒ tous les employ´ees sont supprim´es
DELETE FROM employees WHERE hire date > to date(’01.01.97’, ’DD.MM.YY’) ;
=⇒ uniquement les employ´es embauch´e apr`es 01.01.97 sont supprim´es
12/13
Insertion de lignes
Mise `a 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