T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.

Slides:



Advertisements
Présentations similaires
Manipulation des données dans SQL
Advertisements

PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
LMD: Langage de Manipulation de Données
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
Structured Query Language
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
Les fonctions de groupes Gestion des transactions
Bases de données et SGBD relationnels
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Manipulation des données Requêtes simples
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
Limiter et trier des données
Fonctions monoligne.
Introduction.
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Créer des déclencheurs de base de données
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
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.
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
(Procedural Language / Structured Query Language)
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Manipulation des Données
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Institut Supérieur d’Informatique
Sous-Interrogations.
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Structure de stockage et relations
Gérer les rôles.
Les Contraintes.
SQL : Langage de Manipulation des données
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Cours SQL.
Révision du langage PL/SQL
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
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 SQL.
Séance /10/2004 SGBD - Approches & Principes.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Introduction au langage PL/SQL
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
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.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
Transcription de la présentation:

T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com

Objectifs En suivant ce cours, vous serez capable : De décrire tous les ordres DML Dinsérer des lignes dans une table De les modifier ou supprimer De contrôler les transactions © sebvita.com

Lordre INSERT © sebvita.com

Présentation Un ordre DML est exécuté lors : – De lajout de lignes dans une table – De la modification de lignes – De la suppression de lignes Une transaction est un ensemble dordres DML qui constituent une unité logique de travail © sebvita.com

Lordre INSERT Ajouter une ligne à une table Insérer une nouvelle ligne dans la table DEPARTMENTS Nouvelle ligne DEPARTMENTS © sebvita.com

Syntaxe Ajouter une nouvelle ligne avec la clause INSERT : Avec cette syntaxe on insère une ligne à la fois INSERT INTO table [(column [, column...])] VALUES (value [, value...]); © sebvita.com

Exemple basique Insérer une ligne avec une valeur pour chaque colonne Lister les valeurs dans lordre des colonnes de la table Éventuellement, lister les colonnes dans la clause Mettre les chaînes de caractères et les dates entre quotes simples INSERT INTO departments(department_id, department_name, manager_id,location_id) VALUES (70, 'Public Relations', 100, 1700); 1 row created. © sebvita.com

Exemple avec des valeurs NULL Implicite : Ne pas mettre les colonnes Explicite : Écrire NULL dans les valeurs INSERT INTO departments (department_id, department_name ) VALUES (30, 'Purchasing'); INSERT INTO departments VALUES (100, 'Finance', NULL, NULL); 1 row created. 1 row created © sebvita.com

Exemple avec des fonctions La fonction SYSDATE retourne les date et heure courantes 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. © sebvita.com

Exemple avec des dates Ajouter un nouvel employé Vérifier lajout 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. © sebvita.com

Exemple de création de script Utiliser les variables de substitution INSERT INTO departments (department_id, department_name, location_id) VALUES (&department_id,'&department_name',&location ); 1 row created. © sebvita.com

Copier les lignes dune autre table Écrire l INSERT avec une sous-requête Ne pas utiliser de clause VALUES Faire correspondre les colonnes de l INSERT et de la sous-requête 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. © sebvita.com

V OUS AVEZ DES QUESTIONS ?

Lordre UPDATE © sebvita.com

Changer les données dune table EMPLOYEES Mettre à jour la table EMPLOYEES : © sebvita.com

Syntaxe Modifier des lignes existantes avec UPDATE Peut mettre à jour plusieurs lignes en même temps UPDATE table SET column = value [, column = value,...] [WHERE condition]; © sebvita.com

Exemples Lignes spécifiques avec la clause WHERE Toutes les lignes de la table UPDATE employees SET department_id = 70 WHERE employee_id = 113; UPDATE copy_emp SET department_id = 110; 1 row updated. 22 row updated. © sebvita.com

Exemple avec sous-requêtes Mettre à jour le métier et le salaire de lemployé 114 avec les données de lemployé 205 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. © sebvita.com

Utiliser une autre table Utiliser les données dune autre table grâce aux sous-requêtes 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. © sebvita.com

DEFAULT Utiliser la valeur par défaut dune colonne Peut-être utilisé dans les INSERT et UPDATE INSERT INTO deptm3 (department_id, department_name, manager_id) VALUES (300, 'Engineering', DEFAULT); UPDATE deptm3 SET manager_id = DEFAULT WHERE department_id = 10; © sebvita.com

V OUS AVEZ DES QUESTIONS ?

Les ordres DELETE et TRUNCATE © sebvita.com

Supprimer les lignes dune table DEPARTMENTS Supprimer une ligne de la table DEPARTMENTS : © sebvita.com

Syntaxe Supprimer des lignes existantes dune table DELETE [FROM] table [WHERE condition]; © sebvita.com

Exemples Lignes spécifiques avec la clause WHERE Toutes les lignes de la table DELETE FROM departments WHERE department_name = 'Finance'; DELETE FROM copy_emp; 1 row deleted. 22 rows deleted. © sebvita.com

Exemple avec sous-requêtes Supprimer des lignes dune table en fonction des données dune autre DELETE FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name LIKE '%Public%'); 1 row deleted. © sebvita.com

Lordre TRUNCATE Supprimer toutes les lignes dune table Est un DDL et non un DML : ne peut pas être annulé aussi facilement Syntaxe : Exemple : TRUNCATE TABLE table_name; TRUNCATE TABLE copy_emp; © sebvita.com

V OUS AVEZ DES QUESTIONS ?

Lordre MERGE © sebvita.com

Présentation Permet une insertion ou mise à jour conditionnelle Lance un UPDATE si la ligne existe, un INSERT dans le cas contraire : – Évite les mises à jour séparées – Simplifie lutilisation et améliore les performances – Très utile dans les applications de datawarehouse © sebvita.com

Syntaxe Lordre MERGE permet un UPDATE ou un INSERT selon une condition MERGE INTO table_name table_alias USING (table | view | sub_query) alias ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = col_val1, col2 = col2_val WHEN NOT MATCHED THEN INSERT (column_list) VALUES (column_values); © sebvita.com

Exemple Insérer ou modifier les lignes dans COPY_EMP pour correspondre à la table EMPLOYEES MERGE INTO copy_emp c USING employees e ON (c.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET c.first_name = e.first_name, c.last_name = e.last_name,... c.department_id = e.department_id WHEN NOT MATCHED THEN INSERT VALUES(e.employee_id, e.first_name, e.last_name, e. , e.phone_number, e.hire_date, e.job_id, e.salary, e.commission_pct, e.manager_id, e.department_id); © sebvita.com

Exemple SQL> SELECT * 2 FROM COPY_EMP; no rows selected MERGE INTO copy_emp c USING employees e ON (c.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET... WHEN NOT MATCHED THEN INSERT VALUES...; SELECT * FROM COPY_EMP; 20 rows selected. © sebvita.com

V OUS AVEZ DES QUESTIONS ?

Contrôle des transactions © sebvita.com

Présentation Une transaction de base de données consiste en un des points suivants : – Des ordres DML – Un ordre DDL – Un ordre DCL © sebvita.com

Présentation Une transaction commence avec le premier DML Se termine avec : – Un COMMIT ou ROLLBACK – Un DDL ou DCL (commit automatique) – Lutilisateur quitte iSQL*Plus – Le système plante © sebvita.com

Présentation Les avantages des transactions : – Assurer la consistance des données – Prévisualiser les changements avant de les rendre permanents – Grouper les opérations logiques © sebvita.com

Chronologie DELETE INSERT UPDATE INSERT ROLLBACK to SAVEPOINT B ROLLBACK to SAVEPOINT A ROLLBACK SAVEPOINT B SAVEPOINT A Transaction COMMIT Temps © sebvita.com

Revenir en arrière Créer un point de retour dans une transaction avec SAVEPOINT Revenir en arrière avec ROLLBACK TO SAVEPOINT INSERT... ROLLBACK TO update_done ; UPDATE... SAVEPOINT update_done ; Savepoint created. Rollback complete. © sebvita.com

Revenir en arrière Un commit automatique a lieu : – Lors dun DDL – Lors dun DCL – Lorsquon quitte iSQL*Plus sans COMMIT ou ROLLBACK Un rollback automatique a lieu lorsquon quitte de manière anormale © sebvita.com

État des données Avant un COMMIT ou un ROLLBACK : – Létat des données peut être retrouvé – Lutilisateur en cours peut prévisualiser les données – Les autres utilisateurs ne peuvent pas voir les changements – Les lignes affectées sont verrouillées ; les autres utilisateurs ne peuvent pas les modifier © sebvita.com

État des données Après un COMMIT – Les changements sont rendus permanents – Létat précédent des données est perdu – Tous les utilisateurs peuvent voir le résultat – Les verrous sont relâchés – Tous les points de retour sont effacés © sebvita.com

Exemple Changement des données Validation des données DELETE FROM employees WHERE employee_id = 99999; COMMIT ; INSERT INTO departments VALUES (290, 'Corporate Tax', NULL, 1700); 1 row deleted. 1 row created. Commit complete. © sebvita.com

État des données Après un ROLLBACK – Les changements sont annulés – Létat précédent est restauré – Les verrous sur les lignes sont relâchés DELETE FROM copy_emp; ROLLBACK ; 22 rows deleted. Rollback complete. © sebvita.com

Exemple DELETE FROM test; ROLLBACK; DELETE FROM test WHERE id = 100; SELECT * FROM test WHERE id = 100; COMMIT; 25,000 rows deleted. Rollback complete. 1 row deleted. No row selected. Commit complete. © sebvita.com

Rollback dune requête Si un seul DML plante pendant lexécution, seul ce DML est annulé Le serveur Oracle implémente un SAVEPOINT implicite Tous les autres changements sont maintenus Lutilisateur peut terminer explicitement avec un COMMIT ou un ROLLBACK © sebvita.com

Consistance des données La lecture consistante des données garantie la consistance des résultats à tout moment Les changements dun utilisateur ninfluent pas ceux dun autre utilisateur Elle assure également que pour des mêmes données : – Les lecteurs nattendent pas les « écrivains » – Les « écrivains » nattendent pas les lecteurs © sebvita.com

Lecture consistante User B User A UPDATE employees SET salary = 7000 WHERE last_name = 'Grant'; SELECT * FROM userA.employees; © sebvita.com

V OUS AVEZ DES QUESTIONS ?

Manipulation des données © sebvita.com

Résumé Les transactions Les ordres DML Ordres DDL © sebvita.com La lecture consistante

Ressources © sebvita.com