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 `a jour de lignes

Suppression de lignes

Le langage SQL

Langage de Manipulation de Donn´ees

Ines BAKLOUTI

[email protected]

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