Copyright © Oracle Corporation, 1998. Tous droits réservés.
1212
Manipulation des Données
www.TelechargerCours.com
12-2 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous saurez :A la fin ...
12-3 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Langage de Manipulation des
Données
• Un ordre du LMD est...
12-4 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Ajout d'une Nouvelle Ligne dans
une Table
DEPTDEPT
DEPTNO...
12-5 Copyright © Oracle Corporation, 1998. Tous droits réservés.
L'Ordre INSERT
• L'ordre INSERT permet d'ajouter de
nouve...
12-6 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Insertion de Nouvelles Lignes
• Insérez une nouvelle lign...
12-7 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Insertion de Lignes Contenant
des Valeurs NULL
• Méthode ...
12-8 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Insertion de Valeurs Spéciales
La fonction SYSDATE renvoi...
12-9 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Insertion de Dates dans un
Format Spécifique
• Ajout d'un...
12-10 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Insertion de Valeurs au Moyen
de Variables de Substituti...
12-11 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Création d'un Script Contenant
des Messages Personnalisé...
12-12 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Copie de Lignes d'une Autre Table
• Ecrivez votre ordre ...
12-13 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Modification des Données
d'une Table
EMPEMP
"…modifier u...
12-14 Copyright © Oracle Corporation, 1998. Tous droits réservés.
L'Ordre UPDATE
• Utilisez l'ordre UPDATE pour modifier
d...
12-15 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Modification de Lignes
d'une Table
• La clause WHERE per...
12-16 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Modification avec une
Sous-Interrogation Multi-colonne
S...
12-17 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Modification de Lignes en
Fonction d'une Autre Table
Uti...
12-18 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Ordre UPDATE Synchronisé
SyntaxeSyntaxe
Utilisez une Sou...
12-19 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Ordre UPDATE Synchronisé
Exemple
Ajouter une nouvelle co...
12-20 Copyright © Oracle Corporation, 1998. Tous droits réservés.
UPDATE emp
*
ERROR at line 1:
ORA-02291: integrity const...
12-21 Copyright © Oracle Corporation, 1998. Tous droits réservés.
"…supprime une ligne"…supprime une ligne
de la table DEP...
12-22 Copyright © Oracle Corporation, 1998. Tous droits réservés.
L'Ordre DELETE
Vous pouvez supprimer des lignes d'uneVou...
12-23 Copyright © Oracle Corporation, 1998. Tous droits réservés.
• La clause WHERE permet de supprimer
une ou plusieurs l...
12-24 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Suppression de Lignes en Faisant
Référence à une Autre T...
12-25 Copyright © Oracle Corporation, 1998. Tous droits réservés.
SQL> DELETE FROM table1 alias1
2 WHERE column operator
3...
12-26 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Ordre DELETE Synchronisé
Exemple
SQL> DELETE FROM emp_hi...
12-27 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Suppression de Lignes :
Erreur de Contrainte d'Intégrité...
12-28 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Transactions de Base de Données
Une transaction se compo...
12-29 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Transactions de Base de Données
Une transaction :
• Comm...
12-30 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Avantages des Ordres
COMMIT et ROLLBACK
• Garantit la co...
12-31 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Contrôle des Transactions
DELETEDELETE
TransactionTransa...
12-32 Copyright © Oracle Corporation, 1998. Tous droits réservés.
• Une validation automatique a lieu dans
les situations ...
12-33 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Avant
COMMIT ou ROLLBACK
• Il est possi...
12-34 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Après COMMIT
• Les modifications des do...
12-35 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Validation de Données
SQL> UPDATE emp
2 SET deptno = 10
...
12-36 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Etat des Données Après ROLLBACK
L'ordre ROLLBACK rejette...
12-37 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Annulation des Modifications
Jusqu'à une Etiquette
• Pos...
12-38 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Rollback au Niveau Ordre
• Si un seul ordre du LMD dans ...
12-39 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Lecture Cohérente
• La lecture cohérente garantit à tout...
12-40 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Implémentation de la
Lecture Cohérente
update empupdate ...
12-41 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Verrouillage
Les verrous Oracle8 :Les verrous Oracle8 :
...
12-42 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Résumé
Description
Ajoute une nouvelle ligne dans une ta...
Prochain SlideShare
Chargement dans…5
×

Manipulation des Données , cours sql oracle

1 914 vues

Publié le

Manipulation des Données , cours sql oracle

  • Soyez le premier à commenter

Manipulation des Données , cours sql oracle

  1. 1. Copyright © Oracle Corporation, 1998. Tous droits réservés. 1212 Manipulation des Données www.TelechargerCours.com
  2. 2. 12-2 Copyright © Oracle Corporation, 1998. Tous droits réservés. Objectifs A la fin de ce chapitre, vous saurez :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 www.TelechargerCours.com
  3. 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. www.TelechargerCours.com
  4. 4. 12-4 Copyright © Oracle Corporation, 1998. Tous droits réservés. Ajout d'une Nouvelle Ligne dans une Table DEPTDEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Nouvelle ligneNouvelle ligne 50 DEVELOPMENT DETROIT DEPTDEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON "…insérer une"…insérer une nouvelle ligne dans lanouvelle ligne dans la table DEPT …"table DEPT …" 50 DEVELOPMENT DETROIT
  5. 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...]); INSERT INTO table [(column [, column...])] VALUES (value [, value...]); www.TelechargerCours.com
  6. 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.1 row created. www.TelechargerCours.com
  7. 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.1 row created. • Méthode explicite : spécifiez le mot-clé NULL. SQL> INSERT INTO dept 2 VALUES (70, 'FINANCE', NULL); 1 row created.1 row created.
  8. 8. 12-8 Copyright © Oracle Corporation, 1998. Tous droits réservés. Insertion de Valeurs Spéciales La fonction SYSDATE renvoie la date etLa fonction SYSDATE renvoie la date et l'heure courantes.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.1 row created.
  9. 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.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. 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 moyenCréation d'un script interactif au moyen de paramètres de substitution SQL*Plus.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: 8080 Enter value for department_name: EDUCATIONEDUCATION Enter value for location: ATLANTAATLANTA 1 row created.
  11. 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-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.3 rows created. www.TelechargerCours.com
  13. 13. 12-13 Copyright © Oracle Corporation, 1998. Tous droits réservés. Modification des Données d'une Table EMPEMP "…modifier une"…modifier une ligneligne de la table EMP…"de la table EMP…" EMPEMP 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. 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]; UPDATE table SET column = value [, column = value] [WHERE condition]; www.TelechargerCours.com
  15. 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.1 row updated. SQL> UPDATE employee 2 SET deptno = 20; 14 rows updated.14 rows updated. SQL> UPDATE employee 2 SET deptno = 20; 14 rows updated.14 rows updated.
  16. 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.1 row updated. Modifier le poste et le n° de département deModifier le poste et le n° de département de l'employé 7698 à l'identique de l'employél'employé 7698 à l'identique de l'employé 7499.7499.
  17. 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'ordreUtilisez des sous-interrogations dans l'ordre UPDATE pour modifier des lignes d'une tableUPDATE pour modifier des lignes d'une table à l'aide de valeurs d'une autre 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.2 rows updated. 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.2 rows updated.
  18. 18. 12-18 Copyright © Oracle Corporation, 1998. Tous droits réservés. Ordre UPDATE Synchronisé SyntaxeSyntaxe Utilisez une Sous-InterrogationUtilisez une Sous-Interrogation Synchronisée pour mettre à jour les lignesSynchronisée pour mettre à jour les lignes d'une table basée sur des lignes d'uned'une table basée sur des lignes d'une autre table.autre table. UPDATE table1 alias1 SET column = (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column); UPDATE table1 alias1 SET column = (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column); www.TelechargerCours.com
  19. 19. 12-19 Copyright © Oracle Corporation, 1998. Tous droits réservés. Ordre UPDATE Synchronisé Exemple Ajouter une nouvelle colonne à la tableAjouter une nouvelle colonne à la table emp pour stocker le nom du département,emp pour stocker le nom du département, puis remplissez la table à l’aide d’unpuis remplissez la table à l’aide d’un UPDATE Synchronisé .UPDATE Synchronisé . UPDATE emp e SET dname = (SELECT dname FROM dept d WHERE d.deptno = e.deptno); UPDATE emp e SET dname = (SELECT dname FROM dept d WHERE d.deptno = e.deptno); www.TelechargerCours.com
  20. 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 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; SQL> UPDATE emp 2 SET deptno = 55 3 WHERE deptno = 10; Modification de Lignes : Erreur de Contrainte d'Intégrité Le num éro de départem ent 55 n'existe pas Le num éro de départem ent 55 n'existe pas www.TelechargerCours.com
  21. 21. 12-21 Copyright © Oracle Corporation, 1998. Tous droits réservés. "…supprime une ligne"…supprime une ligne de la table DEPT…"de la table DEPT…" Suppression d'une Ligne d'une Table DEPTDEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS ... DEPTDEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 MIS ... www.TelechargerCours.com
  22. 22. 12-22 Copyright © Oracle Corporation, 1998. Tous droits réservés. L'Ordre DELETE Vous pouvez supprimer des lignes d'uneVous pouvez supprimer des lignes d'une table au moyen de l'ordre DELETE.table au moyen de l'ordre DELETE. DELETE [FROM] table [WHERE condition]; DELETE [FROM] table [WHERE condition]; www.TelechargerCours.com
  23. 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.1 row deleted. SQL> DELETE FROM department 2 WHERE dname = 'DEVELOPMENT'; 1 row deleted.1 row deleted. SQL> DELETE FROM department; 4 rows deleted.4 rows deleted. SQL> DELETE FROM department; 4 rows deleted.4 rows deleted. www.TelechargerCours.com
  24. 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 dansUtilisez des sous-interrogations dans l'ordre DELETE pour supprimer des lignesl'ordre DELETE pour supprimer des lignes dont certaines valeurs correspondent àdont certaines valeurs correspondent à celles d'une autre table.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.6 rows deleted. www.TelechargerCours.com
  25. 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); SQL> DELETE FROM table1 alias1 2 WHERE column operator 3 (SELECT expression 3 FROM table2 alias2 4 WHERE alias1.column = alias2.column); SyntaxeSyntaxe Utilisez une Sous-InterrogationUtilisez une Sous-Interrogation Synchronisée pour supprimerSynchronisée pour supprimer uniquement les lignes existant égalementuniquement les lignes existant également dans une autre table.dans une autre table. Ordre DELETE Synchronisé www.TelechargerCours.com
  26. 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); SQL> DELETE FROM emp_history eh WHERE empid = (SELECT empno FROM emp e WHERE e.empno = eh.empid); Supprimer les employés de la tableSupprimer les employés de la table emp_history qui appartiennent aussi à laemp_history qui appartiennent aussi à la table emp .table emp . www.TelechargerCours.com
  27. 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; 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 DELETE FROM dept * ERROR at line 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found Vous ne pouvez pas supprimer une ligne qui Vous ne pouvez pas supprimer une ligne qui contient une clé primaire utilisée com m e clé contient une clé primaire utilisée com m e clé étrangère dans une autre table. étrangère dans une autre table.
  28. 28. 12-28 Copyright © Oracle Corporation, 1998. Tous droits réservés. Transactions de Base de Données Une transaction se compose des élémentsUne transaction se compose des éléments suivants :suivants : • Ensemble d'ordres du LMD effectuant une modification cohérente des données • Un ordre du LDD • Un ordre du LCD www.TelechargerCours.com
  29. 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 www.TelechargerCours.com
  30. 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 www.TelechargerCours.com
  31. 31. 12-31 Copyright © Oracle Corporation, 1998. Tous droits réservés. Contrôle des Transactions DELETEDELETE TransactionTransaction Savepoint ASavepoint A ROLLBACK to Savepoint BROLLBACK to Savepoint B DELETEDELETE Savepoint BSavepoint BCOMMITCOMMIT INSERTINSERTUPDATEUPDATE ROLLBACK to Savepoint AROLLBACK to Savepoint A INSERTINSERTUPDATEUPDATEINSERTINSERT ROLLBACKROLLBACK INSERTINSERT www.TelechargerCours.com
  32. 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 www.TelechargerCours.com
  33. 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. www.TelechargerCours.com
  34. 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. www.TelechargerCours.com
  35. 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.1 row updated. SQL> UPDATE emp 2 SET deptno = 10 3 WHERE empno = 7782; 1 row updated.1 row updated. • Effectuez les modifications. • Validez les modifications. SQL> COMMIT; Commit complete.Commit complete. www.TelechargerCours.com
  36. 36. 12-36 Copyright © Oracle Corporation, 1998. Tous droits réservés. Etat des Données Après ROLLBACK L'ordre ROLLBACK rejette toutes lesL'ordre ROLLBACK rejette toutes les modifications de données en instance.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.14 rows deleted. SQL> ROLLBACK; Rollback complete.Rollback complete. www.TelechargerCours.com
  37. 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.Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete.Rollback complete.
  38. 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. www.TelechargerCours.com
  39. 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 www.TelechargerCours.com
  40. 40. 12-40 Copyright © Oracle Corporation, 1998. Tous droits réservés. Implémentation de la Lecture Cohérente update empupdate emp set sal = 2000set sal = 2000 where ename =where ename = 'SCOTT''SCOTT' Blocs deBlocs de donnéesdonnées RollbackRollback segmentssegments select *select * from empfrom emp donnéesdonnées modifiéesmodifiées et nonet non modifiéesmodifiées 'anciennes''anciennes' donnéesdonnées avant modif.avant modif. Utilisateur AUtilisateur A Utilisateur BUtilisateur B Lit uneLit une imageimage cohérentecohérente www.TelechargerCours.com
  41. 41. 12-41 Copyright © Oracle Corporation, 1998. Tous droits réservés. Verrouillage Les verrous Oracle8 :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. 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 www.TelechargerCours.com

×