Beruflich Dokumente
Kultur Dokumente
Objectifs
A la fin de ce chapitre, vous saurez :
Dcrire chaque ordre du LMD Insrer des lignes dans une table Mettre jour des lignes dans une table Supprimer des lignes d'une table Contrler les transactions
Un ordre du LMD est excut 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.
50 DEVELOPMENT DETROIT
L'Ordre INSERT
L'ordre INSERT permet d'ajouter de nouvelles lignes dans une table.
INSERT INTO VALUES table [(column [, column...])] (value [, value...]);
Indiquez les valeurs dans l'ordre par dfaut des colonnes dans la table. Placez les valeurs de type caractre et date entre simples quotes.
Vrification de l'ajout.
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ------- -------- ---- --------- ---- ----- ----2296 AROMANO SALESMAN 7782 03-FEB-97 1300 10
Enter value for department_id: 80 Enter value for department_name: EDUCATION Enter value for location: ATLANTA 1 row created.
Copie de Lignes d'une Autre Table Ecrivez votre ordre INSERT en spcifiant
une 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.
N'utilisez pas la clause VALUES. Le nombre de colonnes de la clause INSERT doit correspondre celui de la sous-interrogation.
EMP
EMPNO ENAME 7839 7698 7782 7566 ... KING BLAKE CLARK JONES JOB PRESIDENT MANAGER MANAGER MANAGER ... DEPTNO 10 30 20 10 20
L'Ordre UPDATE
Utilisez l'ordre UPDATE pour modifier des lignes existantes.
UPDATE SET [WHERE table column = value [, column = value] condition];
Modifier le poste et le n de
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.
UPDATE emp * ERROR at line 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found
L'Ordre DELETE
Vous pouvez supprimer des lignes d'une
table au moyen de l'ordre DELETE.
DELETE [FROM] [WHERE table condition];
Suppression de Lignes en Faisant Rfrence une Autredes Table Utilisez sous-interrogations dans
l'ordre DELETE pour supprimer des lignes dont certaines valeurs correspondent celles d'une autre table.
SQL> DELETE FROM 2 WHERE 3 4 5 6 rows deleted. employee deptno = (SELECT FROM WHERE deptno dept dname ='SALES');
DELETE FROM dept * ERROR at line 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found
UPDATE
INSERT
DELETE
Savepoint A
Savepoint B
ROLLBACK to Savepoint B
ROLLBACK to Savepoint A
ROLLBACK
Une validation automatique a lieu dans les situations suivantes : Excution d'un ordre du LDD Excution 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 systme
Etat des Donnes Aprs COMMIT Les modifications des donnes dans la base
sont dfinitives. L'tat prcdent des donnes est irrmdiablement perdu. Tous les utilisateurs peuvent voir le rsultat des modifications. Les lignes verrouilles sont libres et peuvent de nouveau tre manipules par d'autres utilisateurs. Tous les savepoints sont effacs.
Validation de Donnes
Effectuez les modifications.
SQL> UPDATE emp 2 SET deptno = 10 3 WHERE empno = 7782; 1 row updated.
SQL> UPDATE... SQL> SAVEPOINT update_done; Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete.
Lecture Cohrente
La lecture cohrente garantit tout moment une vue homogne des donnes. Les modifications effectues par un utilisateur n'entrent pas en conflit avec celles d'un autre utilisateur. Sur les mmes donnes, garantit que : la lecture ignore les critures en cours l'criture ne perturbe pas la lecture
Utilisateur B
Verrouillage
Les verrous Oracle8 :
Evitent les risques de destruction des donnes en cas de transactions simultanes 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
Rsum
Ordre INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK 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 donnes en instance Permet un rollback partiel