0% ont trouvé ce document utile (0 vote)
19 vues42 pages

Séance6 DB

Ce document présente les commandes du langage SQL pour la modification et la définition des données, y compris les commandes Delete, Insert, Update et Truncate. Il fournit des exemples pratiques pour chaque commande, ainsi que des informations sur l'utilisation de la clause returning pour stocker des valeurs dans des variables de liaison. Les opérations peuvent également être appliquées aux vues modifiables.

Transféré par

lydowid2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues42 pages

Séance6 DB

Ce document présente les commandes du langage SQL pour la modification et la définition des données, y compris les commandes Delete, Insert, Update et Truncate. Il fournit des exemples pratiques pour chaque commande, ainsi que des informations sur l'utilisation de la clause returning pour stocker des valeurs dans des variables de liaison. Les opérations peuvent également être appliquées aux vues modifiables.

Transféré par

lydowid2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Séance 6

Langage SQL-LMD

Pr. M. Machkour
Objectifs
 Étudier les commandes du langage de modification des données:
 Delete : Suppression des données
 Insert : Insertion des données
 Update : Modification des données
 Utilisation de la commande truncate

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 2


Objectifs
Présentation du langage SQL
Étudier le langage de définition des données : LDD
 La commande create
 La commande alter
 La commande drop

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 3


 Carte conceptuelle du chapitre

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 4


La commande Delete
sert à supprimer des lignes

Delete
[From] nomTable
[Where condition];

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 5


La commande delete : exemple
Supprimer tous les employés

Delete from emp;

Ou bien

Delete emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 6


La commande delete : exemple
Supprimer les employés du service 1

Delete from emp


where nserv=1;

ou bien

Delete emp
where nserv=1;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 7


Remarque
La commande truncate…

truncate table nomTable;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 8


Truncate : Exemple

Truncate table emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 9


Truncate : Exemple

Truncate table emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 10


 La commande insert
sert à insérer des lignes

Insert into nomTableVue[(listecolonnes)]


Values (listeValeursExpressions);

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 11


 Exemple
Insert into emp
Values(1,'ali'…);

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 12


 Exemple
Insert into emp(nemp,nom,prénom)
Values(1,'ali','ahmed');

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 13


 Exemple
Insert into emp(nom,prénom,nemp)
Values('ali','ahmed',1);

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 14


 La commande insert
sert à insérer des lignes

Insert into nomTableVue[(listecolonnes)]


requêteSélection;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 15


 Exemple
Insert into emp1
Select *
from emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 16


 Exemple
Insert into emp1(code,nom,prénom)
Select code, nom, prénom
from emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 17


 La commande insert
sert à insérer des lignes
Insert into
(reqSélection )
Values (listeValeursExpressions)

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 18


SMI5/LPII FS Agadir : 20-21 BASES DE DONNÉES
 Exemple
Insert into
(select nemp, nom, salaire from emp where nserv=1)
Values(1,'ali',10000);

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 19


 Exemple d'exécution

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 20


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

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 21


 Exemple
Insert all
into emp1(nom)
Values(nom)
Into emp2(prénom)
Values (prénom)
Select * from emp;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 22


 Exemple d'exécution

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 23


 La commande update
sert à modifier les valeurs des données

Update nomTableVue
set col1=Expr1|default|(sélection),
col2=Expr2|default|(sélection)…
[Where condition];

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 24


 La commande update
sert à modifier les valeurs des données
Update nomTableVue
set col1=Expr1|default|(sélection),
col2=Expr2|default|(sélection)…
[Where condition];

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 25


 Update : exemple
Augmenter de 10% les salaires de tous les employés.
Update emp
set salaire=salaire*1.1

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 26


 Update : exemple
Augmenter les salaires des employés de service 1 de 10%.
Update emp
set salaire=salaire*1.1
where nservice=1;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 27


 Update : exemple
Mettre en majuscule les noms et les prénoms des employés
Update emp
set nom=upper(nom)
prénom=upper(prénom);

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 28


 Exemple d'exécution : Update

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 29


 Update : Exemple
Affecter à chaque employé le salaire max de son service

Update emp e1
set salaire=(select max(salaire) from emp e2 where
[Link]=[Link]);

Update emp
set salaire=(select max(salaire) from emp );

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 30


 La commande update
sert à modifier les valeurs des données
Update nomTableVue
set (listeColonnes)=(sélection)
[Where condition];

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 31


 Update : exemple
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;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 32


 Remarque
Les opérations sur les tables peuvent être aussi appliquées sur les vues
dites vues modifiables.

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 33


 Exemples
- Delete from vueEmp
Where codeEmp=1;
- Insert into vueEmp
Values(…);
- Update vueEMP
Set salaire=1.1 * salaire;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 34


Objectifs
 Étudier les commandes du langage de modification des données:
 Delete : Suppression des données
 Insert : Insertion des données
 Update : Modification des données
 Utilisation de la commande truncate

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 35


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

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 36


 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

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 37


 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;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 38


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

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 39


La clause returning s'utilise aussi avec les commandes delete et insert
 Delete …returning …;
 Insert into … returning …;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 40


 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;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 41


-Insert into emp(nemp,nom,…)
Values(10,'ali',…1)
Returning (select locals from service where nserv=1), sal*1.1
into :vlocal, :vsal;

SMI5/LPII FS Agadir : 23-24 BASES DE DONNÉES 42

Vous aimerez peut-être aussi