Vous êtes sur la page 1sur 21

Séance 6

Le langage SQL
Pr. M. Machkour
Langage de Manipulation des Données
LMD
Objectifs
Étudier les commandes:
– Insert : Alimentation de la base
– Update : Modification des données
– Delete : Suppression des données

FSA : SMI5_LPII_2014 2
Langage de Manipulation des Données
LMD
 La commande delete
sert à supprimer les lignes

Syntaxe
Delete
[From] nomTable
[Where condition];

FSA : SMI5_LPII_2014 3
Langage de Manipulation des Données
LMD

 La commande delete(exemples)
- Supprimer tous les employés
Delete from emp;
- Supprimer les employés du service 1
Delete from emp where nserv=1;

FSA : SMI5_LPII_2014 4
Langage de Manipulation des Données
LMD

 Remarque
La commande truncate…
truncate table nomTable;

FSA : SMI5_LPII_2014 5
Langage de Manipulation des Données
LMD

 La commande insert
sert à insérer des lignes
Syntaxes
 Insert into nomTableVue[(listecolonnes)]
Values (listeValeursExpressions)
 Insert into nomTableVue[(listecolonnes)]
reqSélection
 Insert into
(reqSélection )
Values (listeValeursExpressions) -->
FSA : SMI5_LPII_2014 6
Langage de Manipulation des Données
LMD

 Insert all
into nomTable(listeColonnes)
Values (listeExpressions)
into nomTable(listeColonnes)
Values (listeExpressions)
reqSélection;

FSA : SMI5_LPII_2014 7
Langage de Manipulation des Données
LMD

Exemples
 Insert into emp
Values(1,'ali'…);
 Insert into emp(nemp,nom,prénom)
Values(1,'ali','ahmed');
 Insert into emp1
Select * from emp;

FSA : SMI5_LPII_2014 8
Langage de Manipulation des Données
LMD

 Insert all
into emp1(nom)
Values(nom)
Into emp2(prénom)
Values (prénom)
Select * from emp;
 Insert into
(select nemp, nom,sal from emp where nserv=1)
Values(1,'ali',10000); ;

FSA : SMI5_LPII_2014 9
Langage de Manipulation des Données
LMD

 La commande update
sert à modifier les valeurs des données
Syntaxes
 Update nomTableVue
set col1=Expr1|default|(sélection),
col2=Expr2|default|(sélection)…
[Where condition];
 Update nomTableVue
set (listeColonnes)=(sélection)
[Where condition];
FSA : SMI5_LPII_2014 10
Langage de Manipulation des Données
LMD
 Update (Exemples)
Augmenter de 10%les salaires de tous les employés.
Update emp
set salaire=salaire*1.1

FSA : SMI5_LPII_2014 11
Langage de Manipulation des Données
LMD
 Update (Exemples)
 Augmenter les salaires des employés de service 1 de
10%.
Update emp
set salaire=salaire*1.1
where nserv=1;

FSA : SMI5_LPII_2014 12
Langage de Manipulation des Données
LMD
 Update (Exemples)
Affecter à chaque empl le salaire max de son service

Update emp e1
set sal=(select max(salaire) from emp e2 where
e1.nserv=e2.serv);

FSA : SMI5_LPII_2014 13
Langage de Manipulation des Données
LMD

Update (Exemples)
 Changer le numéro du service 1 par 99 et Affecter à ses
employés la moyenne des salaires de leur service
multiplié par 1.1

update emp
set ( sal , nserv)=
(select avg(sal)*1.1, 99 from emp where nserv =1)
where nserv =1;

FSA : SMI5_LPII_2014 14
Langage de Manipulation des Données
LMD
 Utilisation de la clause returning
Cette clause stocke des valeurs issues des
lignes changées dans des variables dites
variables de liaison.
Syntaxe
Update …
returning expr1, expr2… into :var1,:var2…;
var1, var2…sont dites variables de liaison

FSA : SMI5_LPII_2014 15
Langage de Manipulation des Données
LMD

 Exemples
Changer le service et le salaire de l'employé
de numéro 10 (augmentation de 10%). Les
nouvelles valeurs seront placées dans des
variables de liaison.
 Variable de liaison
Définition d'une variable de liaison:
Var[iable] nomVar type

FSA : SMI5_LPII_2014 16
Langage de Manipulation des Données
LMD
 Variable de liaison (exemples)
var var_sal number
var var_nserv number

update emp
set ( sal , nserv)=
(select sal*1.1, 2 from emp where nemp =10)
where nemp =10
returning sal*1.1,nserv into :var_sal, : var_nser;

FSA : SMI5_LPII_2014 17
Langage de Manipulation des Données
LMD
 Affichage des variables de liaison
- Pour afficher la valeur de var_sal sous
SQL*PLUS on utilise la syntaxe
print var_sal, var_nserv
ou simplement
print
- Pour afficher toutes les variables => var
- Pour avoir une description d'une variable
var nom_variable
FSA : SMI5_LPII_2014 18
Langage de Manipulation des Données
LMD

 La clause returning s'utilise aussi avec


les commandes delete et insert
 Delete …returning …;
 Insert into … returning …;

FSA : SMI5_LPII_2014 19
Langage de Manipulation des Données
LMD
 Exemples
-Delete from emp
Where nemp=1
Returning nom , sal into :vnom,:vsal

-delete from emp


Where ville='casa'
Returning sum(salaire), count(nemp) into :vsal , :vnbre;

-Insert into emp(nemp,nom,…)


Values(10,'ali',…)
Returning initcap(nom), sal*1.1 into :vnom,:vsal;
FSA : SMI5_LPII_2014 20
Langage de Manipulation des Données
LMD
-Insert into emp(nemp,nom,…)
Values(10,'ali',…1)
Returning (select locals from service where
nserv=1), sal*1.1
into :vlocal, :vsal;

FSA : SMI5_LPII_2014 21

Vous aimerez peut-être aussi