8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.

Slides:



Advertisements
Présentations similaires
LMD: Langage de Manipulation de Données
Advertisements

T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
Limiter et trier des données
Introduction.
SQL Partie 2. SQL est un Langage de Manipulation de Données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Surveiller et résoudre le conflit de verrouillage
Manipulation des Données
Module 7 : Utilisation de requêtes élaborées
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
SQL : Langage de Manipulation des données
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
MANIPULATION DES DONNEES : mise à jour des n-uplets.
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
Environnement du développement de BD ORACLE REPORTS 10g
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Initiation aux bases de données et à la programmation événementielle
Langage de manipulation de données (LMD)
Sous menu de l’application «micro» (‘IHM’)
Oracle.
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
Technologies d’intelligence d’affaires
Module 5 : Gestion des disques.
SQL LID – INTERROGATIN DES DONNEES
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Langage d’interrogation des Données LID
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
11 Copyright © 2004, Oracle. Tous droits réservés. Gérer les objets à l'aide de vues du dictionnaire de données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Comment personnaliser Microsoft SharePoint Site web
Info Bases de données avancées
Systèmes d’Information et Application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Opérateurs Ensemblistes
Transcription de la présentation:

8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données

Copyright © 2004, Oracle. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : décrire chaque instruction du langage de manipulation de données (LMD) insérer des lignes dans une table mettre à jour des lignes dans une table supprimer des lignes d'une table gérer les transactions

Copyright © 2004, Oracle. Tous droits réservés. Langage de manipulation de données Une instruction LMD est exécutée pour : –Ajouter de nouvelles lignes à une table –Modifier des lignes existantes d'une table –Supprimer des lignes existantes d'une table Une transaction est constituée d'un ensemble d'instructions LMD qui constituent une unité de travail logique.

Copyright © 2004, Oracle. Tous droits réservés. Ajouter une nouvelle ligne à une table DEPARTMENTS Nouvelle ligne Insérer la nouvelle ligne dans la table DEPARTMENTS

Copyright © 2004, Oracle. Tous droits réservés. Syntaxe de l'instruction INSERT Ajouter de nouvelles lignes à une table à l'aide de l'instruction INSERT : Avec cette syntaxe, une seule ligne est insérée à la fois. INSERT INTOtable [(column [, column...])] VALUES(value [, value...]);

Copyright © 2004, Oracle. Tous droits réservés. Insérer de nouvelles lignes Insérez une nouvelle ligne contenant des valeurs pour chaque colonne. Répertoriez les valeurs dans l'ordre par défaut des colonnes de la table. Vous pouvez également indiquer les colonnes dans la clause INSERT. Incluez les valeurs de type caractère et de type date entre apostrophes. INSERT INTO departments(department_id, department_name, manager_id, location_id) VALUES (70, 'Public Relations', 100, 1700); 1 row created.

Copyright © 2004, Oracle. Tous droits réservés. INSERT INTOdepartments VALUES(100, 'Finance', NULL, NULL); 1 row created. INSERT INTOdepartments (department_id, department_name ) VALUES(30, 'Purchasing'); 1 row created. Insérer des lignes avec des valeurs NULL Méthode implicite : omettez la colonne dans la liste. Méthode explicite : indiquez le mot-clé NULL dans la clause VALUES.

Copyright © 2004, Oracle. Tous droits réservés. INSERT INTO employees (employee_id, first_name, last_name, , phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES (113, 'Louis', 'Popp', 'LPOPP', ' ', SYSDATE, 'AC_ACCOUNT', 6900, NULL, 205, 100); 1 row created. Insérer des valeurs spéciales La fonction SYSDATE enregistre la date et l'heure actuelles.

Copyright © 2004, Oracle. Tous droits réservés. Ajoutez un nouvel employé. Vérifiez l'ajout. Insérer des valeurs de date spécifiques INSERT INTO employees VALUES (114, 'Den', 'Raphealy', 'DRAPHEAL', ' ', TO_DATE('FEB 3, 1999', 'MON DD, YYYY'), 'AC_ACCOUNT', 11000, NULL, 100, 30); 1 row created.

Copyright © 2004, Oracle. Tous droits réservés. INSERT INTO departments (department_id, department_name, location_id) VALUES (&department_id, '&department_name',&location); Créer un script Utilisez l'esperluette d'interprétation dans une instruction SQL pour inviter l'utilisateur à saisir des valeurs. & est une marque de réservation pour la valeur de la variable. 1 row created.

Copyright © 2004, Oracle. Tous droits réservés. Copier des lignes à partir d'une autre table Ecrivez l'instruction INSERT avec une sous- interrogation : N'utilisez pas la clause VALUES. Mettez en correspondance le nombre de colonnes de la clause INSERT avec celui de la sous- interrogation. INSERT INTO sales_reps(id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE '%REP%'; 4 rows created.

Copyright © 2004, Oracle. Tous droits réservés. Modifier des données dans une table EMPLOYEES Mettre à jour des lignes dans la table EMPLOYEES :

Copyright © 2004, Oracle. Tous droits réservés. Modifier des lignes existantes à l'aide de l'instruction UPDATE : Mettre à jour plusieurs lignes à la fois (si nécessaire). UPDATEtable SETcolumn = value [, column = value,...] [WHERE condition]; Syntaxe de l'instruction UPDATE

Copyright © 2004, Oracle. Tous droits réservés. Des lignes spécifiques sont modifiées si vous indiquez la clause WHERE : Toutes les lignes de la table sont modifiées si vous omettez la clause WHERE : Mettre à jour des lignes dans une table UPDATE employees SET department_id = 70 WHERE employee_id = 113; 1 row updated. UPDATE copy_emp SET department_id = 110; 22 rows updated.

Copyright © 2004, Oracle. Tous droits réservés. UPDATE employees SET job_id = (SELECT job_id FROM employees WHERE employee_id = 205), salary = (SELECT salary FROM employees WHERE employee_id = 205) WHERE employee_id = 114; 1 row updated. Mettre à jour deux colonnes avec une sous-interrogation Mettez à jour le poste et le salaire de l'employé 114 afin qu'ils correspondent à ceux de l'employé 205.

Copyright © 2004, Oracle. Tous droits réservés. UPDATE copy_emp SET department_id = (SELECT department_id FROM employees WHERE employee_id = 100) WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 200); 1 row updated. Mettre à jour des lignes en fonction d'une autre table Utilisez des sous-interrogations dans les instructions UPDATE pour mettre à jour des lignes d'une table en fonction des valeurs d'une autre table :

Copyright © 2004, Oracle. Tous droits réservés. Supprimer une ligne de la table DEPARTMENTS : Supprimer une ligne d'une table DEPARTMENTS

Copyright © 2004, Oracle. Tous droits réservés. Instruction DELETE Vous pouvez supprimer des lignes existantes d'une table à l'aide de l'instruction DELETE : DELETE [FROM] table [WHERE condition];

Copyright © 2004, Oracle. Tous droits réservés. Supprimer des lignes d'une table Des lignes spécifiques sont supprimées si vous indiquez la clause WHERE : Toutes les lignes de la table sont supprimées si vous omettez la clause WHERE : DELETE FROM departments WHERE department_name = 'Finance'; 1 row deleted. DELETE FROM copy_emp; 22 rows deleted.

Copyright © 2004, Oracle. Tous droits réservés. Supprimer des lignes en fonction d'une autre table Utilisez des sous-interrogations dans les instructions DELETE afin de supprimer des lignes d'une table en fonction des valeurs d'une autre table : DELETE FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name LIKE '%Public%'); 1 row deleted.

Copyright © 2004, Oracle. Tous droits réservés. Instruction TRUNCATE Supprime toutes les lignes d'une table ; la table est alors vide et sa structure est intacte Est une instruction de langage de définition de données (LDD) et non une instruction LMD ; ne peut pas être annulée facilement Syntaxe : Exemple : TRUNCATE TABLE table_name; TRUNCATE TABLE copy_emp;

Copyright © 2004, Oracle. Tous droits réservés. INSERT INTO (SELECT employee_id, last_name, , hire_date, job_id, salary, department_id FROM employees WHERE department_id = 50) VALUES (99999, 'Taylor', 'DTAYLOR', TO_DATE('07-JUN-99', 'DD-MON-RR'), 'ST_CLERK', 5000, 50); 1 row created. Utiliser une sous-interrogation dans une instruction INSERT

Copyright © 2004, Oracle. Tous droits réservés. Utiliser une sous-interrogation dans une instruction INSERT Vérifiez les résultats : SELECT employee_id, last_name, , hire_date, job_id, salary, department_id FROM employees WHERE department_id = 50;

Copyright © 2004, Oracle. Tous droits réservés. Transactions de base de données Une transaction de base de données est constituée de l'un des éléments suivants : Des instructions LMD qui constituent une même modification cohérente des données Une instruction LDD Une instruction de langage de contrôle de données (LCD)

Copyright © 2004, Oracle. Tous droits réservés. Transactions de base de données Commencent lorsque la première instruction SQL LMD est exécutée Se terminent lorsque l'un des événements suivants se produit : –Une instruction COMMIT ou ROLLBACK est exécutée. –Une instruction LDD ou LCD est exécutée (validation automatique). –L'utilisateur quitte i SQL*Plus. –Le système connaît une défaillance.

Copyright © 2004, Oracle. Tous droits réservés. Avantages des instructions COMMIT et ROLLBACK Avec les instructions COMMIT et ROLLBACK, vous pouvez : Garantir la cohérence des données Empêcher les modifications de données avant que les changements ne soient définitifs Regrouper des opérations liées logiquement

Copyright © 2004, Oracle. Tous droits réservés. Gérer les transactions SAVEPOINT B SAVEPOINT A DELETE INSERT UPDATE INSERT COMMIT Temps Transaction ROLLBACK jusqu'au SAVEPOINT B ROLLBACK jusqu'au SAVEPOINT A ROLLBACK

Copyright © 2004, Oracle. Tous droits réservés. UPDATE... SAVEPOINT update_done; Savepoint created. INSERT... ROLLBACK TO update_done; Rollback complete. Annuler les modifications apportées jusqu'à un marqueur Créez un marqueur dans une transaction en cours à l'aide de l'instruction SAVEPOINT. Procédez à une annulation jusqu'à ce marqueur à l'aide de l'instruction ROLLBACK TO SAVEPOINT.

Copyright © 2004, Oracle. Tous droits réservés. Traitement implicite des transactions Une validation automatique se produit dans les cas suivants : –Une instruction LDD est exécutée. –Une instruction LCD est exécutée. –Vous quittez normalement i SQL*Plus, sans exécuter explicitement d'instruction COMMIT ou ROLLBACK. Une annulation automatique se produit en cas d'arrêt anormal de i SQL*Plus ou en cas de défaillance du système.

Copyright © 2004, Oracle. Tous droits réservés.

Etat des données avant l'opération COMMIT ou ROLLBACK L'état antérieur des données peut être récupéré. L'utilisateur actuel peut examiner les résultats des opérations LMD à l'aide de l'instruction SELECT. Les autres utilisateurs ne peuvent pas afficher les résultats des instructions LMD exécutées par l'utilisateur actuel. Les lignes affectées sont verrouillées ; les autres utilisateurs ne peuvent donc pas modifier les données des lignes affectées.

Copyright © 2004, Oracle. Tous droits réservés. Etat des données après l'opération COMMIT Les modifications apportées aux données de la base sont rendues définitives. L'état antérieur des données est définitivement perdu. Tous les utilisateurs peuvent voir les résultats. Les verrous externes sur les lignes affectées sont libérés ; ces lignes peuvent alors être manipulées par d'autres utilisateurs. Tous les savepoints sont supprimés.

Copyright © 2004, Oracle. Tous droits réservés. COMMIT; Commit complete. Valider les données Apporter les modifications : Valider les modifications : DELETE FROM employees WHERE employee_id = 99999; 1 row deleted. INSERT INTO departments VALUES (290, 'Corporate Tax', NULL, 1700); 1 row created.

Copyright © 2004, Oracle. Tous droits réservés. DELETE FROM copy_emp; 22 rows deleted. ROLLBACK ; Rollback complete. Etat des données après l'opération ROLLBACK Annulez toutes les modifications en cours à l'aide de l'instruction ROLLBACK : Les modifications apportées aux données sont annulées. L'état antérieur des données est restauré. Les verrous externes sur les lignes affectées sont libérés.

Copyright © 2004, Oracle. Tous droits réservés. Etat des données après l'opération ROLLBACK DELETE FROM test; 25,000 rows deleted. ROLLBACK; Rollback complete. DELETE FROM test WHERE id = 100; 1 row deleted. SELECT * FROM test WHERE id = 100; No rows selected. COMMIT; Commit complete.

Copyright © 2004, Oracle. Tous droits réservés. Annulation au niveau instruction Si une instruction LMD unique échoue lors de l'exécution, seule cette instruction est annulée. Le serveur Oracle implémente un savepoint implicite. Toutes les autres modifications sont conservées. L'utilisateur doit terminer explicitement les transactions en exécutant une instruction COMMIT ou ROLLBACK.

Copyright © 2004, Oracle. Tous droits réservés. Cohérence en lecture La cohérence en lecture garantit une vue cohérente des données à tout moment. Les modifications apportées par un utilisateur n'entrent pas en conflit avec les modifications apportées par un autre utilisateur. La cohérence en lecture garantit que, sur les mêmes données : –Les processus de lecture n'attendent pas les processus d'écriture –Les processus d'écriture n'attendent pas les processus de lecture

Copyright © 2004, Oracle. Tous droits réservés. Implémentation de la cohérence en lecture SELECT * FROM userA.employees; UPDATE employees SET salary = 7000 WHERE last_name = 'Goyal'; Blocs de données Segments d'annulation Données modifiées et non modifiées Avant la modification ("anciennes" données) Utilisateur A Utilisateur B Image cohérente en lecture

Copyright © 2004, Oracle. Tous droits réservés. Synthèse Ce chapitre vous a permis d'apprendre à utiliser les instructions suivantes : FonctionDescription INSERT Ajoute une nouvelle ligne à la table UPDATE Modifie des lignes existantes de la table DELETE Supprime des lignes existantes de la table COMMIT Rend définitives toutes les modifications en cours SAVEPOINT Est utilisé pour annuler une transaction jusqu'au marqueur de savepoint ROLLBACK Annule toutes les modifications de données en cours

Copyright © 2004, Oracle. Tous droits réservés. Présentation de l'exercice 8 Cet exercice porte sur les points suivants : insérer des lignes dans des tables mettre à jour et supprimer des lignes dans une table gérer les transactions

Copyright © 2004, Oracle. Tous droits réservés.