SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Copyright  Oracle Corporation, 1998. Tous droits réservés.
12
Manipulation des Données
12-2 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous saurez :
• Décrire chaque ordre du LMD
• Insérer des lignes dans une table
• Mettre à jour des lignes dans une table
• Supprimer des lignes d'une table
• Contrôler les transactions
12-3 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Langage de Manipulation des
Données
• Un ordre du LMD est exécuté lorsque :
– Vous ajoutez des lignes à une table
– Vous modifiez des lignes existantes
dans une table
– Vous supprimez des lignes d'une
table
• Une transaction est un ensemble
d'ordres du LMD formant une unité de
travail logique.
12-4 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Ajout d'une Nouvelle Ligne dans
une Table
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Nouvelle ligne
50 DEVELOPMENT DETROIT
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
"…insérer une
nouvelle ligne dans la
table DEPT …"
50 DEVELOPMENT DETROIT
12-5 Copyright  Oracle Corporation, 1998. Tous droits réservés.
L'Ordre INSERT
• L'ordre INSERT permet d'ajouter de
nouvelles lignes dans une table.
• Cette syntaxe n'insère qu'une seule
ligne à la fois.
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
12-6 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Insertion de Nouvelles Lignes
• Insérez une nouvelle ligne en précisant
une valeur pour chaque colonne.
• Eventuellement, énumérez les colonnes
dans la clause INSERT.
• Indiquez les valeurs dans l'ordre par
défaut des colonnes dans la table.
• Placez les valeurs de type caractère et
date entre simples quotes.
SQL> INSERT INTO dept (deptno, dname, loc)
2 VALUES (50, 'DEVELOPMENT', 'DETROIT');
1 row created.
12-7 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Insertion de Lignes Contenant
des Valeurs NULL
• Méthode implicite : ne spécifiez pas la
colonne dans la liste.
SQL> INSERT INTO dept (deptno, dname )
2 VALUES (60, 'MIS');
1 row created.
• Méthode explicite : spécifiez le mot-clé
NULL.
SQL> INSERT INTO dept
2 VALUES (70, 'FINANCE', NULL);
1 row created.
12-8 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Insertion de Valeurs Spéciales
La fonction SYSDATE renvoie la date et
l'heure courantes.
SQL> INSERT INTO emp (empno, ename, job,
2 mgr, hiredate, sal, comm,
3 deptno)
4 VALUES (7196, 'GREEN', 'SALESMAN',
5 7782, SYSDATE, 2000, NULL,
6 10);
1 row created.
12-9 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Insertion de Dates dans un
Format Spécifique
• Ajout d'un nouvel employé.
SQL> INSERT INTO emp
2 VALUES (2296,'AROMANO','SALESMAN',7782,
3 TO_DATE('FEB 3,97', 'MON DD,YY'),
4 1300, NULL, 10);
1 row created.
• Vérification de l'ajout.
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ------- -------- ---- --------- ---- ----- -----
2296 AROMANO SALESMAN 7782 03-FEB-97 1300 10
12-10 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Insertion de Valeurs au Moyen
de Variables de Substitution
Création d'un script interactif au moyen
de paramètres de substitution SQL*Plus.
SQL> INSERT INTO dept (deptno, dname, loc)
2 VALUES (&department_id,
3 '&department_name', '&location');
Enter value for department_id: 80
Enter value for department_name: EDUCATION
Enter value for location: ATLANTA
1 row created.
12-11 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Création d'un Script Contenant
des Messages Personnalisés
• ACCEPT stocke la valeur dans une
variable.
• PROMPT affiche votre texte.
ACCEPT department_id PROMPT 'Please enter the -
department number:'
ACCEPT department_name PROMPT 'Please enter -
the department name:'
ACCEPT location PROMPT 'Please enter the -
location:'
INSERT INTO dept (deptno, dname, loc)
VALUES (&department_id, '&department_name',
‘&location’);
12-12 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Copie de Lignes d'une Autre Table
• Ecrivez votre ordre INSERT en
spécifiant une sous-interrogation.
• N'utilisez pas la clause VALUES.
• Le nombre de colonnes de la clause
INSERT doit correspondre à celui de la
sous-interrogation.
SQL> INSERT INTO managers(id, name, salary, hiredate)
2 SELECT empno, ename, sal, hiredate
3 FROM emp
4 WHERE job = 'MANAGER';
3 rows created.
12-13 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Modification des Données
d'une Table
EMP
"…modifier une
ligne
de la table EMP…"
EMP
EMPNO ENAME JOB ... DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...
20
EMPNO ENAME JOB ... DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...
12-14 Copyright  Oracle Corporation, 1998. Tous droits réservés.
L'Ordre UPDATE
• Utilisez l'ordre UPDATE pour modifier
des lignes existantes.
• Si nécessaire, vous pouvez modifier
plusieurs lignes à la fois.
UPDATE table
SET column = value [, column = value]
[WHERE condition];
12-15 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Modification de Lignes
d'une Table
• La clause WHERE permet de modifier
une ou plusieurs lignes spécifiques.
• Si vous omettez la clause WHERE,
toutes les lignes sont modifiées.
SQL> UPDATE emp
2 SET deptno = 20
3 WHERE empno = 7782;
1 row updated.
SQL> UPDATE employee
2 SET deptno = 20;
14 rows updated.
12-16 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Modification avec une
Sous-Interrogation Multi-colonne
SQL> UPDATE emp
2 SET (job, deptno) =
3 (SELECT job, deptno
4 FROM emp
5 WHERE empno = 7499)
6 WHERE empno = 7698;
1 row updated.
Modifier le poste et le n° de département de
l'employé 7698 à l'identique de l'employé
7499.
12-17 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Modification de Lignes en
Fonction d'une Autre Table
Utilisez des sous-interrogations dans l'ordre
UPDATE pour modifier des lignes d'une table
à l'aide de valeurs d'une autre table.
SQL> UPDATE employee
2 SET deptno = (SELECT deptno
3 FROM emp
4 WHERE empno = 7788)
5 WHERE job = (SELECT job
6 FROM emp
7 WHERE empno = 7788);
2 rows updated.
12-18 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Ordre UPDATE Synchronisé
Syntaxe
Utilisez une Sous-Interrogation
Synchronisée pour mettre à jour les lignes
d'une table basée sur des lignes d'une
autre table.
UPDATE table1 alias1
SET column = (SELECT expression
FROM table2 alias2
WHERE alias1.column = alias2.column);
12-19 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Ordre UPDATE Synchronisé
Exemple
Ajouter une nouvelle colonne à la table
emp pour stocker le nom du département,
puis remplissez la table à l’aide d’un
UPDATE Synchronisé .
UPDATE emp e
SET dname = (SELECT dname
FROM dept d
WHERE d.deptno = e.deptno);
12-20 Copyright  Oracle Corporation, 1998. Tous droits réservés.
UPDATE emp
*
ERROR at line 1:
ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK)
violated - parent key not found
SQL> UPDATE emp
2 SET deptno = 55
3 WHERE deptno = 10;
Modification de Lignes :
Erreur de Contrainte d'Intégrité
12-21 Copyright  Oracle Corporation, 1998. Tous droits réservés.
"…supprime une ligne
de la table DEPT…"
Suppression d'une Ligne d'une Table
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DEVELOPMENT DETROIT
60 MIS
...
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
60 MIS
...
12-22 Copyright  Oracle Corporation, 1998. Tous droits réservés.
L'Ordre DELETE
Vous pouvez supprimer des lignes d'une
table au moyen de l'ordre DELETE.
DELETE [FROM] table
[WHERE condition];
12-23 Copyright  Oracle Corporation, 1998. Tous droits réservés.
• La clause WHERE permet de supprimer
une ou plusieurs lignes spécifiques.
• Si vous omettez la clause WHERE,
toutes les lignes sont supprimées.
Suppression de Lignes d'une Table
SQL> DELETE FROM department
2 WHERE dname = 'DEVELOPMENT';
1 row deleted.
SQL> DELETE FROM department;
4 rows deleted.
12-24 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Suppression de Lignes en Faisant
Référence à une Autre Table
Utilisez des sous-interrogations dans
l'ordre DELETE pour supprimer des lignes
dont certaines valeurs correspondent à
celles d'une autre table.
SQL> DELETE FROM employee
2 WHERE deptno =
3 (SELECT deptno
4 FROM dept
5 WHERE dname ='SALES');
6 rows deleted.
12-25 Copyright  Oracle Corporation, 1998. Tous droits réservés.
SQL> DELETE FROM table1 alias1
2 WHERE column operator
3 (SELECT expression
3 FROM table2 alias2
4 WHERE alias1.column = alias2.column);
Syntaxe
Utilisez une Sous-Interrogation
Synchronisée pour supprimer
uniquement les lignes existant également
dans une autre table.
Ordre DELETE Synchronisé
12-26 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Ordre DELETE Synchronisé
Exemple
SQL> DELETE FROM emp_history eh
WHERE empid = (SELECT empno
FROM emp e
WHERE e.empno = eh.empid);
Supprimer les employés de la table
emp_history qui appartiennent aussi à la
table emp .
12-27 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Suppression de Lignes :
Erreur de Contrainte d'Intégrité
SQL> DELETE FROM dept
2 WHERE deptno = 10;
DELETE FROM dept
*
ERROR at line 1:
ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK)
violated - child record found
12-28 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Transactions de Base de Données
Une transaction se compose des
éléments suivants :
• Ensemble d'ordres du LMD effectuant
une modification cohérente des
données
• Un ordre du LDD
• Un ordre du LCD
12-29 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Transactions de Base de Données
Une transaction :
• Commence à l'exécution du premier
ordre SQL
• Se termine par l'un des événements
suivants :
– COMMIT ou ROLLBACK
– Exécution d'un ordre LDD ou LCD
(validation automatique)
– Fin de session utilisateur
– Panne du système
12-30 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Avantages des Ordres
COMMIT et ROLLBACK
• Garantit la cohérence des données
• Possibilité d'afficher le résultat des
modifications avant qu'elles ne soient
définitives
• Regroupement logique d'opérations
12-31 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Contrôle des Transactions
DELETE
Transaction
Savepoint A
ROLLBACK to Savepoint B
DELETE
Savepoint BCOMMIT
INSERTUPDATE
ROLLBACK to Savepoint A
INSERTUPDATEINSERT
ROLLBACK
INSERT
12-32 Copyright  Oracle Corporation, 1998. Tous droits réservés.
• Une validation automatique a lieu dans
les situations suivantes :
– Exécution d'un ordre du LDD
– Exécution d'un ordre du LCD
– Sortie normale de SQL*Plus, sans
ordre COMMIT ou ROLLBACK
explicite
• Il se produit un rollback automatique en
cas de sortie anormale de SQL*Plus ou
d'une panne du système
Traitement Implicite des Transactions
12-33 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Avant
COMMIT ou ROLLBACK
• Il est possible de restaurer l'état précédent
des données.
• L'utilisateur courant peut afficher le résultat
des opérations du LMD au moyen de l'ordre
SELECT.
• Les résultats des ordres du LMD exécutés
par l'utilisateur courant ne peuvent pas être
affichés par d'autres utilisateurs.
• Les lignes concernées sont verrouillées.
Aucun autre utilisateur ne peut les modifier.
12-34 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Après COMMIT
• Les modifications des données dans la
base sont définitives.
• L'état précédent des données est
irrémédiablement perdu.
• Tous les utilisateurs peuvent voir le
résultat des modifications.
• Les lignes verrouillées sont libérées et
peuvent de nouveau être manipulées par
d'autres utilisateurs.
• Tous les savepoints sont effacés.
12-35 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Validation de Données
SQL> UPDATE emp
2 SET deptno = 10
3 WHERE empno = 7782;
1 row updated.
• Effectuez les modifications.
• Validez les modifications.
SQL> COMMIT;
Commit complete.
12-36 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Après ROLLBACK
L'ordre ROLLBACK rejette toutes les
modifications de données en instance.
• Les modifications sont annulées.
• L'état précédent des données est
restauré.
• Les lignes verrouillées sont libérées.
SQL> DELETE FROM employee;
14 rows deleted.
SQL> ROLLBACK;
Rollback complete.
12-37 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Annulation des Modifications
Jusqu'à une Etiquette
• Posez une étiquette dans la transaction
courante au moyen de l'ordre
SAVEPOINT.
• Annulez la transaction jusqu'à cette
étiquette en utilisant l'ordre ROLLBACK
TO SAVEPOINT.
SQL> UPDATE...
SQL> SAVEPOINT update_done;
Savepoint created.
SQL> INSERT...
SQL> ROLLBACK TO update_done;
Rollback complete.
12-38 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Rollback au Niveau Ordre
• Si un seul ordre du LMD dans la
transaction échoue, seul cet ordre est
annulé.
• Oracle8 met en œuvre un savepoint
implicite.
• Toutes les autres modifications sont
conservées.
• L'utilisateur doit terminer explicitement
les transactions en exécutant un ordre
COMMIT ou ROLLBACK.
12-39 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Lecture Cohérente
• La lecture cohérente garantit à tout
moment une vue homogène des
données.
• Les modifications effectuées par un
utilisateur n'entrent pas en conflit avec
celles d'un autre utilisateur.
• Sur les mêmes données, garantit que :
– la lecture ignore les écritures en
cours
– l'écriture ne perturbe pas la lecture
12-40 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Implémentation de la
Lecture Cohérente
update emp
set sal = 2000
where ename =
'SCOTT'
Blocs de
données
Rollback
segments
select *
from emp
données
modifiées
et non
modifiées
'anciennes'
données
avant modif.
Utilisateur A
Utilisateur B
Lit une
image
cohérente
12-41 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Verrouillage
Les verrous Oracle8 :
• Evitent les risques de destruction des
données en cas de transactions
simultanées
• N'exigent aucune intervention de
l'utilisateur
• S'appliquent au niveau de restriction le
plus bas
• Sont actifs durant toute la transaction
• Fonctionnent en deux modes de base :
– Exclusif
– Partagé
12-42 Copyright  Oracle Corporation, 1998. Tous droits réservés.
Résumé
Description
Ajoute une nouvelle ligne dans une table
Modifie des lignes dans une table
Supprime des lignes d'une table
Valide toutes les modifications de données
en instance
Permet un rollback partiel
Annule toutes les modifications de données
en instance
Ordre
INSERT
UPDATE
DELETE
COMMIT
SAVEPOINT
ROLLBACK

Contenu connexe

Tendances

L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oraclewebreaker
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oraclewebreaker
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oraclewebreaker
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupewebreaker
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTwebreaker
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlpluswebreaker
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oraclewebreaker
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oraclewebreaker
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplicationwebreaker
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire ENSAM Casablanca
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôleAbdelouahed Abdou
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedWajdi Ben Helal
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsqlkati_f87
 

Tendances (19)

L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oracle
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire
 
Plsql
PlsqlPlsql
Plsql
 
Plsql2
Plsql2Plsql2
Plsql2
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Sql3
Sql3Sql3
Sql3
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsql
 

En vedette

Enjeux et déploiement d'un réseau social : partager les connaissances et les ...
Enjeux et déploiement d'un réseau social : partager les connaissances et les ...Enjeux et déploiement d'un réseau social : partager les connaissances et les ...
Enjeux et déploiement d'un réseau social : partager les connaissances et les ...Willem Gabilly
 
Les Pages Vitrines
Les Pages VitrinesLes Pages Vitrines
Les Pages VitrinesLinkedIn
 
Uncomfortable Talk #5: THE AGE OF TRANSITION
Uncomfortable Talk #5: THE AGE OF TRANSITIONUncomfortable Talk #5: THE AGE OF TRANSITION
Uncomfortable Talk #5: THE AGE OF TRANSITIONcheckdisout
 
Webinar Softlayer d'Avril 2015 - Francais
Webinar Softlayer d'Avril 2015 - FrancaisWebinar Softlayer d'Avril 2015 - Francais
Webinar Softlayer d'Avril 2015 - FrancaisNicolas Verdier
 
Webinar Softlayer MSP / ISV en Francais - Octobre 2015
Webinar Softlayer MSP / ISV en Francais - Octobre 2015Webinar Softlayer MSP / ISV en Francais - Octobre 2015
Webinar Softlayer MSP / ISV en Francais - Octobre 2015Nicolas Verdier
 
Catálogo de laboratorio para análisis de leche
Catálogo de laboratorio para análisis de lecheCatálogo de laboratorio para análisis de leche
Catálogo de laboratorio para análisis de lechequimmaseda
 
60+ Inspirational Quotes From Cannes Lions 2015
60+ Inspirational Quotes From Cannes Lions 201560+ Inspirational Quotes From Cannes Lions 2015
60+ Inspirational Quotes From Cannes Lions 2015Michael Boamah
 
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010Thomas Schäfer
 
Perficient Business Intelligence Analysis and Delivery Options in SharePoint
Perficient Business Intelligence Analysis and Delivery Options in SharePointPerficient Business Intelligence Analysis and Delivery Options in SharePoint
Perficient Business Intelligence Analysis and Delivery Options in SharePointPerficient, Inc.
 
Social Media for Social Good
Social Media for Social GoodSocial Media for Social Good
Social Media for Social GoodDeep Focus
 
Perficient Self Service Business Intelligence with Power Pivot
Perficient Self Service Business Intelligence with Power PivotPerficient Self Service Business Intelligence with Power Pivot
Perficient Self Service Business Intelligence with Power PivotPerficient, Inc.
 
Young Professionals Board
Young Professionals BoardYoung Professionals Board
Young Professionals Boardisubusiness
 
β Lactam antibiotic hypersensitivity cross-reactivity
β Lactam antibiotic hypersensitivity  cross-reactivityβ Lactam antibiotic hypersensitivity  cross-reactivity
β Lactam antibiotic hypersensitivity cross-reactivityNathaniel Hare
 
IBM Smarter Buildings: Detailed Overview
IBM Smarter Buildings: Detailed Overview IBM Smarter Buildings: Detailed Overview
IBM Smarter Buildings: Detailed Overview Steve Cole
 
DFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slidesDFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slideschuckdey
 
Encouraging A Growth Mindset
Encouraging A Growth MindsetEncouraging A Growth Mindset
Encouraging A Growth MindsetKirsten Brooks
 
lipolyse laser ou mincir sans effort
lipolyse laser ou mincir sans effort lipolyse laser ou mincir sans effort
lipolyse laser ou mincir sans effort aesthelys
 

En vedette (20)

Enjeux et déploiement d'un réseau social : partager les connaissances et les ...
Enjeux et déploiement d'un réseau social : partager les connaissances et les ...Enjeux et déploiement d'un réseau social : partager les connaissances et les ...
Enjeux et déploiement d'un réseau social : partager les connaissances et les ...
 
Quoi de neuf dans Exchange Server 2013
Quoi de neuf dans Exchange Server 2013Quoi de neuf dans Exchange Server 2013
Quoi de neuf dans Exchange Server 2013
 
Les Pages Vitrines
Les Pages VitrinesLes Pages Vitrines
Les Pages Vitrines
 
Une stratégie de recrutement efficace sur LinkedIn en trois étapes
Une stratégie de recrutement efficace sur LinkedIn en trois étapesUne stratégie de recrutement efficace sur LinkedIn en trois étapes
Une stratégie de recrutement efficace sur LinkedIn en trois étapes
 
Uncomfortable Talk #5: THE AGE OF TRANSITION
Uncomfortable Talk #5: THE AGE OF TRANSITIONUncomfortable Talk #5: THE AGE OF TRANSITION
Uncomfortable Talk #5: THE AGE OF TRANSITION
 
Webinar Softlayer d'Avril 2015 - Francais
Webinar Softlayer d'Avril 2015 - FrancaisWebinar Softlayer d'Avril 2015 - Francais
Webinar Softlayer d'Avril 2015 - Francais
 
Webinar Softlayer MSP / ISV en Francais - Octobre 2015
Webinar Softlayer MSP / ISV en Francais - Octobre 2015Webinar Softlayer MSP / ISV en Francais - Octobre 2015
Webinar Softlayer MSP / ISV en Francais - Octobre 2015
 
Mike S. Schäfer: Das Medien-Klima
Mike S. Schäfer: Das Medien-KlimaMike S. Schäfer: Das Medien-Klima
Mike S. Schäfer: Das Medien-Klima
 
Catálogo de laboratorio para análisis de leche
Catálogo de laboratorio para análisis de lecheCatálogo de laboratorio para análisis de leche
Catálogo de laboratorio para análisis de leche
 
60+ Inspirational Quotes From Cannes Lions 2015
60+ Inspirational Quotes From Cannes Lions 201560+ Inspirational Quotes From Cannes Lions 2015
60+ Inspirational Quotes From Cannes Lions 2015
 
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010
The gradual feedstock change, Novozymes Thomas Schafer June 7, 2010
 
Perficient Business Intelligence Analysis and Delivery Options in SharePoint
Perficient Business Intelligence Analysis and Delivery Options in SharePointPerficient Business Intelligence Analysis and Delivery Options in SharePoint
Perficient Business Intelligence Analysis and Delivery Options in SharePoint
 
Social Media for Social Good
Social Media for Social GoodSocial Media for Social Good
Social Media for Social Good
 
Perficient Self Service Business Intelligence with Power Pivot
Perficient Self Service Business Intelligence with Power PivotPerficient Self Service Business Intelligence with Power Pivot
Perficient Self Service Business Intelligence with Power Pivot
 
Young Professionals Board
Young Professionals BoardYoung Professionals Board
Young Professionals Board
 
β Lactam antibiotic hypersensitivity cross-reactivity
β Lactam antibiotic hypersensitivity  cross-reactivityβ Lactam antibiotic hypersensitivity  cross-reactivity
β Lactam antibiotic hypersensitivity cross-reactivity
 
IBM Smarter Buildings: Detailed Overview
IBM Smarter Buildings: Detailed Overview IBM Smarter Buildings: Detailed Overview
IBM Smarter Buildings: Detailed Overview
 
DFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slidesDFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slides
 
Encouraging A Growth Mindset
Encouraging A Growth MindsetEncouraging A Growth Mindset
Encouraging A Growth Mindset
 
lipolyse laser ou mincir sans effort
lipolyse laser ou mincir sans effort lipolyse laser ou mincir sans effort
lipolyse laser ou mincir sans effort
 

Similaire à 12 fr

Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQLMohammed Jaafar
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdfImaneZoubir1
 
Tpdba1
Tpdba1Tpdba1
Tpdba1infcom
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptxtirike6016
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfMoez Moezm
 
Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants SmartnSkilled
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.pptSiwarAbbes1
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrigewebreaker
 

Similaire à 12 fr (20)

Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
Oracle : extension du langage SQL
Oracle : extension du langage SQLOracle : extension du langage SQL
Oracle : extension du langage SQL
 
Chapitre5.pdf
Chapitre5.pdfChapitre5.pdf
Chapitre5.pdf
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
Tpdba1
Tpdba1Tpdba1
Tpdba1
 
Presentation sql
Presentation sqlPresentation sql
Presentation sql
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
 
Les05.ppt
Les05.pptLes05.ppt
Les05.ppt
 
SQL.pdf
SQL.pdfSQL.pdf
SQL.pdf
 
Sql
SqlSql
Sql
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
SQL partie III
SQL partie IIISQL partie III
SQL partie III
 
QuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdfQuelquesCommandesMySQL.pdf
QuelquesCommandesMySQL.pdf
 
Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants Support formation vidéo : SQL pour les (grands) débutants
Support formation vidéo : SQL pour les (grands) débutants
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.ppt
 
Les01.ppt
Les01.pptLes01.ppt
Les01.ppt
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
 

Plus de AHMED ENNAJI

Discipline positive
Discipline positiveDiscipline positive
Discipline positiveAHMED ENNAJI
 
Controle3 sur table elbilia tc1
Controle3 sur table elbilia tc1Controle3 sur table elbilia tc1
Controle3 sur table elbilia tc1AHMED ENNAJI
 
Controle 1sur table tc1 elbilia nnaji
Controle 1sur table tc1 elbilia nnajiControle 1sur table tc1 elbilia nnaji
Controle 1sur table tc1 elbilia nnajiAHMED ENNAJI
 
Controle2 sur table elbilia tc1
Controle2 sur table elbilia tc1Controle2 sur table elbilia tc1
Controle2 sur table elbilia tc1AHMED ENNAJI
 
Contr 1 om pc biof decembre
Contr 1 om pc biof decembreContr 1 om pc biof decembre
Contr 1 om pc biof decembreAHMED ENNAJI
 
Contr 2 om pc biof (janvier)2
Contr 2 om pc biof (janvier)2Contr 2 om pc biof (janvier)2
Contr 2 om pc biof (janvier)2AHMED ENNAJI
 
Contr 3 om pc biof (janvier)
Contr 3 om pc biof (janvier)Contr 3 om pc biof (janvier)
Contr 3 om pc biof (janvier)AHMED ENNAJI
 
Devoir surveille 1 2 bac pc 2019
Devoir surveille 1  2 bac pc 2019Devoir surveille 1  2 bac pc 2019
Devoir surveille 1 2 bac pc 2019AHMED ENNAJI
 
Exercice sur les fonctions exponentielles pour 2 bac pc
Exercice sur les fonctions exponentielles pour 2 bac pcExercice sur les fonctions exponentielles pour 2 bac pc
Exercice sur les fonctions exponentielles pour 2 bac pcAHMED ENNAJI
 
Bac blan 8 pc biof
Bac blan 8 pc biofBac blan 8 pc biof
Bac blan 8 pc biofAHMED ENNAJI
 
Devoir surveille 1 semestre2 1sm om
Devoir surveille 1 semestre2 1sm omDevoir surveille 1 semestre2 1sm om
Devoir surveille 1 semestre2 1sm omAHMED ENNAJI
 

Plus de AHMED ENNAJI (20)

Discipline positive
Discipline positiveDiscipline positive
Discipline positive
 
Controle3 sur table elbilia tc1
Controle3 sur table elbilia tc1Controle3 sur table elbilia tc1
Controle3 sur table elbilia tc1
 
Controle 1sur table tc1 elbilia nnaji
Controle 1sur table tc1 elbilia nnajiControle 1sur table tc1 elbilia nnaji
Controle 1sur table tc1 elbilia nnaji
 
Controle2 sur table elbilia tc1
Controle2 sur table elbilia tc1Controle2 sur table elbilia tc1
Controle2 sur table elbilia tc1
 
Contr 1 om pc biof decembre
Contr 1 om pc biof decembreContr 1 om pc biof decembre
Contr 1 om pc biof decembre
 
Contr 2 om pc biof (janvier)2
Contr 2 om pc biof (janvier)2Contr 2 om pc biof (janvier)2
Contr 2 om pc biof (janvier)2
 
Contr 3 om pc biof (janvier)
Contr 3 om pc biof (janvier)Contr 3 om pc biof (janvier)
Contr 3 om pc biof (janvier)
 
Diagnos1
Diagnos1Diagnos1
Diagnos1
 
Serie 1espace
Serie 1espaceSerie 1espace
Serie 1espace
 
Devoir surveille 1 2 bac pc 2019
Devoir surveille 1  2 bac pc 2019Devoir surveille 1  2 bac pc 2019
Devoir surveille 1 2 bac pc 2019
 
Exercice sur les fonctions exponentielles pour 2 bac pc
Exercice sur les fonctions exponentielles pour 2 bac pcExercice sur les fonctions exponentielles pour 2 bac pc
Exercice sur les fonctions exponentielles pour 2 bac pc
 
Bac blanc3 oum
Bac blanc3 oumBac blanc3 oum
Bac blanc3 oum
 
Bac blanc 11
Bac blanc 11Bac blanc 11
Bac blanc 11
 
Examen blanc 7
Examen blanc 7Examen blanc 7
Examen blanc 7
 
Bac blanc 5
Bac blanc 5Bac blanc 5
Bac blanc 5
 
Bac blanc 6
Bac blanc 6Bac blanc 6
Bac blanc 6
 
Bac blanc 10
Bac blanc 10Bac blanc 10
Bac blanc 10
 
Bac blan 8 pc biof
Bac blan 8 pc biofBac blan 8 pc biof
Bac blan 8 pc biof
 
Exercice bac pc1
Exercice bac pc1Exercice bac pc1
Exercice bac pc1
 
Devoir surveille 1 semestre2 1sm om
Devoir surveille 1 semestre2 1sm omDevoir surveille 1 semestre2 1sm om
Devoir surveille 1 semestre2 1sm om
 

12 fr

  • 1. Copyright  Oracle Corporation, 1998. Tous droits réservés. 12 Manipulation des Données
  • 2. 12-2 Copyright  Oracle Corporation, 1998. Tous droits réservés. Objectifs A la fin de ce chapitre, vous saurez : • Décrire chaque ordre du LMD • Insérer des lignes dans une table • Mettre à jour des lignes dans une table • Supprimer des lignes d'une table • Contrôler les transactions
  • 3. 12-3 Copyright  Oracle Corporation, 1998. Tous droits réservés. Langage de Manipulation des Données • Un ordre du LMD est exécuté lorsque : – Vous ajoutez des lignes à une table – Vous modifiez des lignes existantes dans une table – Vous supprimez des lignes d'une table • Une transaction est un ensemble d'ordres du LMD formant une unité de travail logique.
  • 4. 12-4 Copyright  Oracle Corporation, 1998. Tous droits réservés. Ajout d'une Nouvelle Ligne dans une Table DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Nouvelle ligne 50 DEVELOPMENT DETROIT DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON "…insérer une nouvelle ligne dans la table DEPT …" 50 DEVELOPMENT DETROIT
  • 5. 12-5 Copyright  Oracle Corporation, 1998. Tous droits réservés. L'Ordre INSERT • L'ordre INSERT permet d'ajouter de nouvelles lignes dans une table. • Cette syntaxe n'insère qu'une seule ligne à la fois. INSERT INTO table [(column [, column...])] VALUES (value [, value...]);
  • 6. 12-6 Copyright  Oracle Corporation, 1998. Tous droits réservés. Insertion de Nouvelles Lignes • Insérez une nouvelle ligne en précisant une valeur pour chaque colonne. • Eventuellement, énumérez les colonnes dans la clause INSERT. • Indiquez les valeurs dans l'ordre par défaut des colonnes dans la table. • Placez les valeurs de type caractère et date entre simples quotes. SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (50, 'DEVELOPMENT', 'DETROIT'); 1 row created.
  • 7. 12-7 Copyright  Oracle Corporation, 1998. Tous droits réservés. Insertion de Lignes Contenant des Valeurs NULL • Méthode implicite : ne spécifiez pas la colonne dans la liste. SQL> INSERT INTO dept (deptno, dname ) 2 VALUES (60, 'MIS'); 1 row created. • Méthode explicite : spécifiez le mot-clé NULL. SQL> INSERT INTO dept 2 VALUES (70, 'FINANCE', NULL); 1 row created.
  • 8. 12-8 Copyright  Oracle Corporation, 1998. Tous droits réservés. Insertion de Valeurs Spéciales La fonction SYSDATE renvoie la date et l'heure courantes. SQL> INSERT INTO emp (empno, ename, job, 2 mgr, hiredate, sal, comm, 3 deptno) 4 VALUES (7196, 'GREEN', 'SALESMAN', 5 7782, SYSDATE, 2000, NULL, 6 10); 1 row created.
  • 9. 12-9 Copyright  Oracle Corporation, 1998. Tous droits réservés. Insertion de Dates dans un Format Spécifique • Ajout d'un nouvel employé. SQL> INSERT INTO emp 2 VALUES (2296,'AROMANO','SALESMAN',7782, 3 TO_DATE('FEB 3,97', 'MON DD,YY'), 4 1300, NULL, 10); 1 row created. • Vérification de l'ajout. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ------- -------- ---- --------- ---- ----- ----- 2296 AROMANO SALESMAN 7782 03-FEB-97 1300 10
  • 10. 12-10 Copyright  Oracle Corporation, 1998. Tous droits réservés. Insertion de Valeurs au Moyen de Variables de Substitution Création d'un script interactif au moyen de paramètres de substitution SQL*Plus. SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (&department_id, 3 '&department_name', '&location'); Enter value for department_id: 80 Enter value for department_name: EDUCATION Enter value for location: ATLANTA 1 row created.
  • 11. 12-11 Copyright  Oracle Corporation, 1998. Tous droits réservés. Création d'un Script Contenant des Messages Personnalisés • ACCEPT stocke la valeur dans une variable. • PROMPT affiche votre texte. ACCEPT department_id PROMPT 'Please enter the - department number:' ACCEPT department_name PROMPT 'Please enter - the department name:' ACCEPT location PROMPT 'Please enter the - location:' INSERT INTO dept (deptno, dname, loc) VALUES (&department_id, '&department_name', ‘&location’);
  • 12. 12-12 Copyright  Oracle Corporation, 1998. Tous droits réservés. Copie de Lignes d'une Autre Table • Ecrivez votre ordre INSERT en spécifiant une sous-interrogation. • N'utilisez pas la clause VALUES. • Le nombre de colonnes de la clause INSERT doit correspondre à celui de la sous-interrogation. SQL> INSERT INTO managers(id, name, salary, hiredate) 2 SELECT empno, ename, sal, hiredate 3 FROM emp 4 WHERE job = 'MANAGER'; 3 rows created.
  • 13. 12-13 Copyright  Oracle Corporation, 1998. Tous droits réservés. Modification des Données d'une Table EMP "…modifier une ligne de la table EMP…" EMP EMPNO ENAME JOB ... DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ... 20 EMPNO ENAME JOB ... DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ...
  • 14. 12-14 Copyright  Oracle Corporation, 1998. Tous droits réservés. L'Ordre UPDATE • Utilisez l'ordre UPDATE pour modifier des lignes existantes. • Si nécessaire, vous pouvez modifier plusieurs lignes à la fois. UPDATE table SET column = value [, column = value] [WHERE condition];
  • 15. 12-15 Copyright  Oracle Corporation, 1998. Tous droits réservés. Modification de Lignes d'une Table • La clause WHERE permet de modifier une ou plusieurs lignes spécifiques. • Si vous omettez la clause WHERE, toutes les lignes sont modifiées. SQL> UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated. SQL> UPDATE employee 2 SET deptno = 20; 14 rows updated.
  • 16. 12-16 Copyright  Oracle Corporation, 1998. Tous droits réservés. Modification avec une Sous-Interrogation Multi-colonne SQL> UPDATE emp 2 SET (job, deptno) = 3 (SELECT job, deptno 4 FROM emp 5 WHERE empno = 7499) 6 WHERE empno = 7698; 1 row updated. Modifier le poste et le n° de département de l'employé 7698 à l'identique de l'employé 7499.
  • 17. 12-17 Copyright  Oracle Corporation, 1998. Tous droits réservés. Modification de Lignes en Fonction d'une Autre Table Utilisez des sous-interrogations dans l'ordre UPDATE pour modifier des lignes d'une table à l'aide de valeurs d'une autre table. SQL> UPDATE employee 2 SET deptno = (SELECT deptno 3 FROM emp 4 WHERE empno = 7788) 5 WHERE job = (SELECT job 6 FROM emp 7 WHERE empno = 7788); 2 rows updated.
  • 18. 12-18 Copyright  Oracle Corporation, 1998. Tous droits réservés. Ordre UPDATE Synchronisé Syntaxe Utilisez une Sous-Interrogation Synchronisée pour mettre à jour les lignes d'une table basée sur des lignes d'une autre table. UPDATE table1 alias1 SET column = (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column);
  • 19. 12-19 Copyright  Oracle Corporation, 1998. Tous droits réservés. Ordre UPDATE Synchronisé Exemple Ajouter une nouvelle colonne à la table emp pour stocker le nom du département, puis remplissez la table à l’aide d’un UPDATE Synchronisé . UPDATE emp e SET dname = (SELECT dname FROM dept d WHERE d.deptno = e.deptno);
  • 20. 12-20 Copyright  Oracle Corporation, 1998. Tous droits réservés. UPDATE emp * ERROR at line 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found SQL> UPDATE emp 2 SET deptno = 55 3 WHERE deptno = 10; Modification de Lignes : Erreur de Contrainte d'Intégrité
  • 21. 12-21 Copyright  Oracle Corporation, 1998. Tous droits réservés. "…supprime une ligne de la table DEPT…" Suppression d'une Ligne d'une Table DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS ... DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 MIS ...
  • 22. 12-22 Copyright  Oracle Corporation, 1998. Tous droits réservés. L'Ordre DELETE Vous pouvez supprimer des lignes d'une table au moyen de l'ordre DELETE. DELETE [FROM] table [WHERE condition];
  • 23. 12-23 Copyright  Oracle Corporation, 1998. Tous droits réservés. • La clause WHERE permet de supprimer une ou plusieurs lignes spécifiques. • Si vous omettez la clause WHERE, toutes les lignes sont supprimées. Suppression de Lignes d'une Table SQL> DELETE FROM department 2 WHERE dname = 'DEVELOPMENT'; 1 row deleted. SQL> DELETE FROM department; 4 rows deleted.
  • 24. 12-24 Copyright  Oracle Corporation, 1998. Tous droits réservés. Suppression de Lignes en Faisant Référence à une Autre Table Utilisez des sous-interrogations dans l'ordre DELETE pour supprimer des lignes dont certaines valeurs correspondent à celles d'une autre table. SQL> DELETE FROM employee 2 WHERE deptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname ='SALES'); 6 rows deleted.
  • 25. 12-25 Copyright  Oracle Corporation, 1998. Tous droits réservés. SQL> DELETE FROM table1 alias1 2 WHERE column operator 3 (SELECT expression 3 FROM table2 alias2 4 WHERE alias1.column = alias2.column); Syntaxe Utilisez une Sous-Interrogation Synchronisée pour supprimer uniquement les lignes existant également dans une autre table. Ordre DELETE Synchronisé
  • 26. 12-26 Copyright  Oracle Corporation, 1998. Tous droits réservés. Ordre DELETE Synchronisé Exemple SQL> DELETE FROM emp_history eh WHERE empid = (SELECT empno FROM emp e WHERE e.empno = eh.empid); Supprimer les employés de la table emp_history qui appartiennent aussi à la table emp .
  • 27. 12-27 Copyright  Oracle Corporation, 1998. Tous droits réservés. Suppression de Lignes : Erreur de Contrainte d'Intégrité SQL> DELETE FROM dept 2 WHERE deptno = 10; DELETE FROM dept * ERROR at line 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found
  • 28. 12-28 Copyright  Oracle Corporation, 1998. Tous droits réservés. Transactions de Base de Données Une transaction se compose des éléments suivants : • Ensemble d'ordres du LMD effectuant une modification cohérente des données • Un ordre du LDD • Un ordre du LCD
  • 29. 12-29 Copyright  Oracle Corporation, 1998. Tous droits réservés. Transactions de Base de Données Une transaction : • Commence à l'exécution du premier ordre SQL • Se termine par l'un des événements suivants : – COMMIT ou ROLLBACK – Exécution d'un ordre LDD ou LCD (validation automatique) – Fin de session utilisateur – Panne du système
  • 30. 12-30 Copyright  Oracle Corporation, 1998. Tous droits réservés. Avantages des Ordres COMMIT et ROLLBACK • Garantit la cohérence des données • Possibilité d'afficher le résultat des modifications avant qu'elles ne soient définitives • Regroupement logique d'opérations
  • 31. 12-31 Copyright  Oracle Corporation, 1998. Tous droits réservés. Contrôle des Transactions DELETE Transaction Savepoint A ROLLBACK to Savepoint B DELETE Savepoint BCOMMIT INSERTUPDATE ROLLBACK to Savepoint A INSERTUPDATEINSERT ROLLBACK INSERT
  • 32. 12-32 Copyright  Oracle Corporation, 1998. Tous droits réservés. • Une validation automatique a lieu dans les situations suivantes : – Exécution d'un ordre du LDD – Exécution d'un ordre du LCD – Sortie normale de SQL*Plus, sans ordre COMMIT ou ROLLBACK explicite • Il se produit un rollback automatique en cas de sortie anormale de SQL*Plus ou d'une panne du système Traitement Implicite des Transactions
  • 33. 12-33 Copyright  Oracle Corporation, 1998. Tous droits réservés. Etat des Données Avant COMMIT ou ROLLBACK • Il est possible de restaurer l'état précédent des données. • L'utilisateur courant peut afficher le résultat des opérations du LMD au moyen de l'ordre SELECT. • Les résultats des ordres du LMD exécutés par l'utilisateur courant ne peuvent pas être affichés par d'autres utilisateurs. • Les lignes concernées sont verrouillées. Aucun autre utilisateur ne peut les modifier.
  • 34. 12-34 Copyright  Oracle Corporation, 1998. Tous droits réservés. Etat des Données Après COMMIT • Les modifications des données dans la base sont définitives. • L'état précédent des données est irrémédiablement perdu. • Tous les utilisateurs peuvent voir le résultat des modifications. • Les lignes verrouillées sont libérées et peuvent de nouveau être manipulées par d'autres utilisateurs. • Tous les savepoints sont effacés.
  • 35. 12-35 Copyright  Oracle Corporation, 1998. Tous droits réservés. Validation de Données SQL> UPDATE emp 2 SET deptno = 10 3 WHERE empno = 7782; 1 row updated. • Effectuez les modifications. • Validez les modifications. SQL> COMMIT; Commit complete.
  • 36. 12-36 Copyright  Oracle Corporation, 1998. Tous droits réservés. Etat des Données Après ROLLBACK L'ordre ROLLBACK rejette toutes les modifications de données en instance. • Les modifications sont annulées. • L'état précédent des données est restauré. • Les lignes verrouillées sont libérées. SQL> DELETE FROM employee; 14 rows deleted. SQL> ROLLBACK; Rollback complete.
  • 37. 12-37 Copyright  Oracle Corporation, 1998. Tous droits réservés. Annulation des Modifications Jusqu'à une Etiquette • Posez une étiquette dans la transaction courante au moyen de l'ordre SAVEPOINT. • Annulez la transaction jusqu'à cette étiquette en utilisant l'ordre ROLLBACK TO SAVEPOINT. SQL> UPDATE... SQL> SAVEPOINT update_done; Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete.
  • 38. 12-38 Copyright  Oracle Corporation, 1998. Tous droits réservés. Rollback au Niveau Ordre • Si un seul ordre du LMD dans la transaction échoue, seul cet ordre est annulé. • Oracle8 met en œuvre un savepoint implicite. • Toutes les autres modifications sont conservées. • L'utilisateur doit terminer explicitement les transactions en exécutant un ordre COMMIT ou ROLLBACK.
  • 39. 12-39 Copyright  Oracle Corporation, 1998. Tous droits réservés. Lecture Cohérente • La lecture cohérente garantit à tout moment une vue homogène des données. • Les modifications effectuées par un utilisateur n'entrent pas en conflit avec celles d'un autre utilisateur. • Sur les mêmes données, garantit que : – la lecture ignore les écritures en cours – l'écriture ne perturbe pas la lecture
  • 40. 12-40 Copyright  Oracle Corporation, 1998. Tous droits réservés. Implémentation de la Lecture Cohérente update emp set sal = 2000 where ename = 'SCOTT' Blocs de données Rollback segments select * from emp données modifiées et non modifiées 'anciennes' données avant modif. Utilisateur A Utilisateur B Lit une image cohérente
  • 41. 12-41 Copyright  Oracle Corporation, 1998. Tous droits réservés. Verrouillage Les verrous Oracle8 : • Evitent les risques de destruction des données en cas de transactions simultanées • N'exigent aucune intervention de l'utilisateur • S'appliquent au niveau de restriction le plus bas • Sont actifs durant toute la transaction • Fonctionnent en deux modes de base : – Exclusif – Partagé
  • 42. 12-42 Copyright  Oracle Corporation, 1998. Tous droits réservés. Résumé Description Ajoute une nouvelle ligne dans une table Modifie des lignes dans une table Supprime des lignes d'une table Valide toutes les modifications de données en instance Permet un rollback partiel Annule toutes les modifications de données en instance Ordre INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK