Insertion, Mise à Jour et Suppression de Lignes en SQL

Page 1 sur 13Lecteur de document UniversityLib

Insertion, Mise à Jour et Suppression de Lignes en SQL

SQL, Data Manipulation Language · course

Voir tous les documents en bases de données

Insertion de lignes

Mise à jour de lignes

Suppression de lignes

Le langage SQL

Langage de Manipulation de Données

Ines BAKLOUTI

[email protected]

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