SQL pour Oracle 10g
Transcription
SQL pour Oracle 10g
SQL pour Oracle 10g Ce fac-similé présente la table des matières, le préambule et le début du module 2 Auteur Razvan Bizoi GUIDE DE FORMATION La marque © TSOFT est une marque déposée. La collection des guides de formation © TSOFT est éditée par la société TSOFT. Toutes les marques citées dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs Tous les efforts ont été faits par TSOFT pour fournir dans cet ouvrage une information claire et exacte à la date de parution. TSOFT n’assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes de tierces personnes qui pourraient résulter de cette utilisation. Guide de formation TSOFT SQL pour Oracle 10g Référence : TS0075 novembre 2006 ©TSOFT, Paris 2006 Toute représentation ou reproduction intégrale ou partielle faite sans le consentement de l’auteur ou de ses ayants droit ou ayants cause est illicite selon le Code de la propriété intellectuelle (Art L 122-4) et constitue une contrefaçon réprimée par le Code pénal. Seules sont autorisées (Art 122-5) les copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées à une utilisation collective, ainsi que les analyses et courtes citations justifiées par le caractère critique, pédagogique ou d’information de l’œuvre à laquelle elles sont incorporées, sous réserve, toutefois, du respect des dispositions des articles L122-10 à L122-12 du même Code relatives à la reproduction par reprographie. Avant-propos Oracle est le système de base de données le plus utilisé au monde. Il fonctionne de façon relativement identique sur tout type d'ordinateur. Ce qui fait que les connaissances acquises sur une plate-forme sont utilisables sur une autre et que les utilisateurs et développeurs Oracle expérimentés constituent une ressource très demandée. L'objectif de ce livre est de vous aider à apprendre et maîtriser le langage SQL que vous pratiquerez avec les bases de données Oracle, dans sa version gratuite mise à disposition par Oracle. L'ouvrage présente aussi l'ensemble des concepts et des mécanismes nécessaires au développement et à l'administration d'applications dans le contexte d'Oracle 10g. Pour une bonne compréhension de l'ouvrage, il est souhaitable que le lecteur ait une connaissance suffisante du modèle relationnel et qu'il maîtrise un langage de programmation. Un autre ouvrage du même auteur traite du langage procédural PL/SQL, ces deux ouvrages vous permettront de préparer les examens de certification Oracle : « 1Z0-007 » Introduction to Oracle9i : SQL® (ou la version 10g lorsque l’examen sera disponible ce qu’il n’est pas encore à la parution de cet ouvrage) « 1Z0-001 » Introduction to Oracle: SQL® and PL/SQL™ « 1Z0-147 » Program with PL/SQL L'auteur vise surtout à être plus clair et plus agréable à lire que les documentations techniques, exhaustives et nécessaires mais ingrates, dans lesquelles vous pourrez toujours vous plonger ultérieurement. Par ailleurs, l'auteur a aussi voulu éviter de ne fournir qu'une collection supplémentaire de "trucs et astuces", mais plutôt expliquer les concepts et les mécanismes avant d'indiquer les procédures pratiques. Dans la mesure où l'on dispose du matériel informatique nécessaire, il est important d’installer Oracle Database 10g Express Edition et SQL Developer, deux outils livrés gratuitement par Oracle. La démarche d’installation et la mise en place de la base de données des ateliers sont détaillées dans les deux premiers modules. L’ensemble des © Tsoft – SQL pour Oracle10g travaux pratiques, qui sont indispensables à l'acquisition d'une compétence réelle, a été conçu dans cette configuration. Les ateliers de fin de chapitre contiennent des QCM dont vous pourrez trouver les corrigés sur le site de l'éditeur www.Tsoft.fr. Pour télécharger le fichier des corrigés, tapez le code TS0075 dans le champ <RECHERCHE> de la page d’accueil du site, puis appuyez sur . Vous accéderez ainsi à la fiche de l’ouvrage, sous l’onglet Téléchargement se trouve un lien vers le fichier à télécharger, corrigés QCM. © Tsoft – SQL pour Oracle10g Table des matières PRÉAMBULE .................................................................................................. MODULE 1 : PRÉSENTATION DE L’ENVIRONNEMENT ..................................... 1-1 Qu'est-ce qu'une base de données ? .......................................................................................1-2 Objets de la base de données .................................................................................................1-3 Structure du stockage des données ........................................................................................1-8 Table ......................................................................................................................................1-9 Intégrité d'une base de données ...........................................................................................1-10 Le langage SQL ...................................................................................................................1-12 Les limites de SQL ..............................................................................................................1-14 Le langage PL/SQL .............................................................................................................1-15 Architecture Client-Serveur.................................................................................................1-17 Le processus de connexion ..................................................................................................1-18 La configuration du client ...................................................................................................1-20 Assistant de configuration Oracle Net.................................................................................1-23 Oracle Database 10g Express Edition .................................................................................1-26 La préparation de l’installation............................................................................................1-27 Le paramétrage du système .................................................................................................1-29 L’installation........................................................................................................................1-32 Les tâches post-installation..................................................................................................1-34 Atelier 1 ...............................................................................................................................1-37 MODULE 2 : LES OUTILS SQL*PLUS .......................................................... 2-1 Qu'est-ce que SQL*Plus ? .....................................................................................................2-2 Environnement SQL*Plus .....................................................................................................2-4 Environnement SQL*Plus (Suite) .........................................................................................2-5 © Tsoft – SQL pour Oracle10g T-1 Table des matières Commandes SQL*Plus .........................................................................................................2-6 Commandes SQL*Plus (Suite)............................................................................................2-10 Commandes SQL*Plus (Suite)............................................................................................2-14 Commandes SQL*Plus (Suite)............................................................................................2-16 Commandes SQL*Plus (Suite)............................................................................................2-18 Variables..............................................................................................................................2-19 SQL*Plus Worksheet ..........................................................................................................2-23 iSQL*Plus ...........................................................................................................................2-25 iSQL*Plus ...........................................................................................................................2-26 Variables et iSQL*Plus .......................................................................................................2-28 Oracle SQL Developer ........................................................................................................2-31 SQL Developer....................................................................................................................2-35 Le schéma des ateliers.........................................................................................................2-37 Atelier 2...............................................................................................................................2-39 MODULE 3 : INTERROGATION DES DONNÉES ................................................3-1 Grammaire SQL ....................................................................................................................3-2 Projection ..............................................................................................................................3-3 Les constantes .......................................................................................................................3-6 Atelier 3.1..............................................................................................................................3-8 Opérateur de concaténation .................................................................................................3-10 Opérateurs arithmétiques.....................................................................................................3-11 Opérateurs de type DATE ...................................................................................................3-13 La valeur NULL ..................................................................................................................3-14 Le traitement de la valeur NULL ........................................................................................3-15 Atelier 3.2............................................................................................................................3-16 Tri du résultat d'une requête ................................................................................................3-18 La pseudocolonne ROWNUM ............................................................................................3-22 Table DUAL........................................................................................................................3-23 Atelier 3.3............................................................................................................................3-25 MODULE 4 : LES OPÉRATEURS LOGIQUES ..................................................4-1 La sélection ou restriction .....................................................................................................4-2 L’opérateur égal à..................................................................................................................4-3 Les opérateurs logiques.........................................................................................................4-5 L’opérateur différent de ........................................................................................................4-8 L’opérateur LIKE..................................................................................................................4-9 La fonction REGEXP_LIKE...............................................................................................4-11 L’opérateur IS NULL..........................................................................................................4-15 Atelier 4.1............................................................................................................................4-16 T-2 © Tsoft – SQL pour Oracle10g Table des matières L’opérateur BETWEEN ......................................................................................................4-18 L’opérateur IN .....................................................................................................................4-19 Les opérateurs logiques .......................................................................................................4-20 L’opérateur AND.................................................................................................................4-22 L’opérateur OR....................................................................................................................4-24 L’opérateur NOT .................................................................................................................4-27 Atelier 4.2 ............................................................................................................................4-29 MODULE 5 : LES CHAÎNES DE CARACTÈRES ................................................ 5-1 Expression SQL.....................................................................................................................5-2 Types chaîne de caractères ....................................................................................................5-3 Majuscules / Minuscules .......................................................................................................5-5 Manipulation de chaînes........................................................................................................5-6 Remplissage de chaînes .........................................................................................................5-7 Nettoyage de chaînes .............................................................................................................5-9 Extraire une sous chaîne ......................................................................................................5-11 Recherche dans la chaîne.....................................................................................................5-13 Rechercher et remplacer ......................................................................................................5-16 Traduction de chaînes..........................................................................................................5-19 Autres ..................................................................................................................................5-20 Atelier 5 ...............................................................................................................................5-22 MODULE 6 : LES FONCTIONS NUMÉRIQUES ................................................. 6-1 Types numériques..................................................................................................................6-2 Fonctions de contrôle ............................................................................................................6-5 Fonctions de calcul arithmétique...........................................................................................6-8 Fonctions trigonométriques .................................................................................................6-10 Fonctions de signe ...............................................................................................................6-11 Fonctions d’arrondis ............................................................................................................6-12 Fonctions d’arrondis ............................................................................................................6-13 Atelier 6 ...............................................................................................................................6-15 MODULE 7 : LE TRAITEMENT DES DATES .................................................... 7-1 Les zones horaires .................................................................................................................7-2 Types date..............................................................................................................................7-5 Types intervalle .....................................................................................................................7-8 Opérateurs............................................................................................................................7-11 Les dates système ................................................................................................................7-12 Extraire des informations ....................................................................................................7-14 Manipulation des dates ........................................................................................................7-16 © Tsoft – SQL pour Oracle10g T-3 Table des matières Retrouver une date ..............................................................................................................7-18 Arrondis des dates ...............................................................................................................7-20 Atelier 7...............................................................................................................................7-23 MODULE 8 : LES CONVERSIONS SQL .........................................................8-1 Les conversions implicites ....................................................................................................8-2 Les fonctions de conversion..................................................................................................8-3 Numérique vers chaîne..........................................................................................................8-4 Date vers chaîne ....................................................................................................................8-6 Chaîne vers numérique..........................................................................................................8-8 Chaîne vers date ..................................................................................................................8-10 Chaîne vers timestamp ........................................................................................................8-11 Chaîne vers interval.............................................................................................................8-13 Numérique vers interval ......................................................................................................8-14 Atelier 8.1............................................................................................................................8-16 Les fonctions générales .......................................................................................................8-18 Les fonctions générales .......................................................................................................8-20 Les fonctions générales .......................................................................................................8-23 Les fonctions générales .......................................................................................................8-25 Atelier 8.2............................................................................................................................8-27 MODULE 9 : GROUPEMENT DES DONNÉES ...................................................9-1 Fonctions « Horizontales »....................................................................................................9-2 Fonctions « Verticales »........................................................................................................9-3 Fonctions d’agrégat ...............................................................................................................9-4 Fonctions d’agrégat ...............................................................................................................9-6 Le groupe...............................................................................................................................9-8 La sélection de groupe.........................................................................................................9-11 Le groupe à deux niveaux ...................................................................................................9-14 Atelier 9...............................................................................................................................9-15 MODULE 10 : AGRÉGATION ET ANALYSE ..................................................10-1 Agrégation et Analyse.........................................................................................................10-2 Groupage ROLLUP.............................................................................................................10-3 Groupage CUBE .................................................................................................................10-6 GROUPING SETS..............................................................................................................10-9 Fonctions de groupes.........................................................................................................10-12 Atelier 10.1........................................................................................................................10-17 Fonctions analytiques........................................................................................................10-19 La clause de partitionnement.............................................................................................10-21 T-4 © Tsoft – SQL pour Oracle10g Table des matières La clause d’ordre ...............................................................................................................10-24 La clause de fenêtrage .......................................................................................................10-26 Atelier 10.2 ........................................................................................................................10-29 Fonctions de classement ....................................................................................................10-32 Fonctions de classement ....................................................................................................10-35 Fonctions de fenêtre ..........................................................................................................10-38 RATIO_TO_REPORT ......................................................................................................10-40 Fonctions LAG et LEAD...................................................................................................10-41 Atelier 10.3 ........................................................................................................................10-43 MODULE 11 : LES REQUÊTES MULTI-TABLES ............................................ 11-1 Requêtes multi-tables ..........................................................................................................11-2 La jointure sans condition ...................................................................................................11-3 La jointure avec condition ...................................................................................................11-4 La jointure externe...............................................................................................................11-6 L’autojointure ......................................................................................................................11-8 Atelier 11.1 ..........................................................................................................................11-9 SQL : 1999 ........................................................................................................................11-11 L’opérateur CROSS JOIN .................................................................................................11-12 L’opérateur NATURAL JOIN...........................................................................................11-13 L’opérateur JOIN USING .................................................................................................11-15 L’opérateur JOIN ON........................................................................................................11-17 L’opérateur JOIN ON........................................................................................................11-19 L’opérateur OUTER JOIN ................................................................................................11-20 Atelier 11.2 ........................................................................................................................11-21 MODULE 12 : LES JOINTURES COMPLEXES ............................................... 12-1 Les opérateurs ensemblistes ................................................................................................12-2 L’opérateur UNION ............................................................................................................12-4 L’opérateur INTERSECT....................................................................................................12-7 L’opérateur DIFFERENCE .................................................................................................12-8 Atelier 12.1 ..........................................................................................................................12-9 Les sous-requêtes...............................................................................................................12-10 Sous-requête monolignes...................................................................................................12-11 Sous-requête multilignes ...................................................................................................12-13 Les opérateurs ANY et ALL .............................................................................................12-15 Sous-requête renvoyant un tableau....................................................................................12-18 Sous-requête synchronisée ................................................................................................12-19 Sous-requête dans la clause FROM...................................................................................12-22 Atelier 12.2 ........................................................................................................................12-23 © Tsoft – SQL pour Oracle10g T-5 Table des matières MODULE 13 : MISE À JOUR DES DONNÉES .................................................13-1 Mise à jour des données ......................................................................................................13-2 Insertion des lignes..............................................................................................................13-3 Insertion d’une ligne............................................................................................................13-4 Insertion expressions génériques.........................................................................................13-6 Insertion et sous-requête......................................................................................................13-8 Insertion de plusieurs lignes................................................................................................13-9 Insertion multi-tables.........................................................................................................13-10 Insertion sans condition.....................................................................................................13-11 INSERT ALL ....................................................................................................................13-13 INSERT FIRST .................................................................................................................13-16 Modification des données..................................................................................................13-17 Suppression des données...................................................................................................13-20 Contraintes d’intégrité.......................................................................................................13-21 Mises à jour conditionnées................................................................................................13-22 Atelier 13...........................................................................................................................13-26 MODULE 14 : LES TRANSACTIONS ............................................................14-1 Les transactions ...................................................................................................................14-2 Début et fin de transaction ..................................................................................................14-4 Structuration de la transaction.............................................................................................14-5 L’isolation ...........................................................................................................................14-8 Les niveaux d’isolation .....................................................................................................14-10 Le verrouillage ..................................................................................................................14-12 Le Segment Undo..............................................................................................................14-15 La lecture cohérente ..........................................................................................................14-16 La conservation des blocs .................................................................................................14-17 Flashback...........................................................................................................................14-18 DBMS_FLASHBACK......................................................................................................14-19 Fonctions de conversion....................................................................................................14-22 Interrogation FLASHBACK .............................................................................................14-24 Interrogation des versions .................................................................................................14-26 Atelier 14...........................................................................................................................14-29 MODULE 15 : LA CRÉATION DES TABLES ...................................................15-1 Objets de la base de données...............................................................................................15-2 Structure du stockage des données......................................................................................15-3 Le tablespace .......................................................................................................................15-5 Types de données ................................................................................................................15-7 Types ROWID.....................................................................................................................15-9 T-6 © Tsoft – SQL pour Oracle10g Table des matières Grand objets.......................................................................................................................15-11 Types de données composés..............................................................................................15-12 Méthodes des types d’objets..............................................................................................15-16 Création d’une table...........................................................................................................15-18 Stockage des données LOB ...............................................................................................15-23 Stockage d’un type objet ...................................................................................................15-26 Table objet .........................................................................................................................15-30 Table temporaire................................................................................................................15-33 Création d’une table comme .............................................................................................15-35 Atelier 15 ...........................................................................................................................15-37 MODULE 16 : LA GESTION DES TABLES .................................................... 16-1 Définition de contraintes .....................................................................................................16-2 NOT NULL .........................................................................................................................16-6 CHECK................................................................................................................................16-8 PRIMARY KEY................................................................................................................16-10 UNIQUE............................................................................................................................16-13 REFERENCES ..................................................................................................................16-15 Ajouter une nouvelle colonne............................................................................................16-22 Modification d’une colonne ..............................................................................................16-24 Supprimer une colonne......................................................................................................16-26 Modification d'une table ....................................................................................................16-30 Modification d’une contrainte ...........................................................................................16-33 Suppression d’une table.....................................................................................................16-38 Suppression des lignes.......................................................................................................16-39 Atelier 16 ...........................................................................................................................16-41 MODULE 17 : LES INDEX ......................................................................... 17-1 Les types d’index.................................................................................................................17-2 Création d'un index..............................................................................................................17-3 Index B-tree .......................................................................................................................17-10 Avantages et inconvénients ...............................................................................................17-14 Table organisée en index ...................................................................................................17-18 Index Bitmap .....................................................................................................................17-20 Suppression d’index ..........................................................................................................17-22 Atelier 17 ...........................................................................................................................17-24 MODULE 18 : LES VUES ET AUTRES OBJETS ............................................. 18-1 Création d’une Vue..............................................................................................................18-2 Mise à jour dans une Vue ....................................................................................................18-4 © Tsoft – SQL pour Oracle10g T-7 Table des matières Contrôle d'intégrité dans une Vue .......................................................................................18-6 Gestion d’une Vue...............................................................................................................18-8 Les séquences......................................................................................................................18-9 Création d’un synonyme ...................................................................................................18-11 Liens de base de données ..................................................................................................18-12 Atelier 18...........................................................................................................................18-15 MODULE 19 : LES PROFILS ......................................................................19-1 Gestion des mots de passe...................................................................................................19-2 Paramètres de mots de passe ...............................................................................................19-3 Composition et complexité..................................................................................................19-5 Création d’un profil.............................................................................................................19-9 Gestion des Ressources .....................................................................................................19-11 Création d’un profil...........................................................................................................19-13 Atelier 19...........................................................................................................................19-15 MODULE 20 : LES UTILISATEURS ..............................................................20-1 Les utilisateurs.....................................................................................................................20-2 Création d’un utilisateur......................................................................................................20-3 Gestion d’un utilisateur .......................................................................................................20-8 Suppression d’un utilisateur ..............................................................................................20-11 Informations sur les utilisateurs ........................................................................................20-12 Atelier 20...........................................................................................................................20-15 MODULE 21 : LES PRIVILÈGES .................................................................21-1 Les privilèges ......................................................................................................................21-2 Privilèges de niveau système...............................................................................................21-4 SYSDBA et SYSOPER privilèges......................................................................................21-6 Les privilèges ......................................................................................................................21-7 Octroyer des privilèges système..........................................................................................21-9 Octroyer des privilèges objet.............................................................................................21-13 Révoquer des privilèges objet ...........................................................................................21-19 Les informations sur les privilèges....................................................................................21-21 Création d'un rôle ..............................................................................................................21-24 Gestion d'un rôle................................................................................................................21-27 Les rôles par défaut ...........................................................................................................21-28 Activation d'un rôle ...........................................................................................................21-30 Les rôles standard..............................................................................................................21-31 Les informations sur les rôles............................................................................................21-33 Atelier 21...........................................................................................................................21-35 T-8 © Tsoft – SQL pour Oracle10g Table des matières MODULE 22 : LE DICTIONNAIRE DE DONNÉES ............................................ 22-1 Le dictionnaire de données ..................................................................................................22-2 Les scripts interactifs ...........................................................................................................22-3 Les vues du dictionnaire de données ...................................................................................22-5 Le guide du dictionnaire ......................................................................................................22-6 Les objets utilisateur..........................................................................................................22-11 La structure de stockage ....................................................................................................22-20 Les utilisateurs et privilèges ..............................................................................................22-25 Les audits...........................................................................................................................22-27 Atelier 22 ...........................................................................................................................22-28 INDEX ....................................................................................................... I-1 © Tsoft – SQL pour Oracle10g T-9 Préambule Ce guide de formation a pour but de vous permettre d'acquérir une bonne connaissance du langage SQL. Vous pourrez ensuite tirer profit d'un autre ouvrage du même auteur "PL/SQL pour Oracle 10g". Ces deux ouvrages vous permettront de préparer les examens de certification Oracle suivants : « 1Z0-007 » Introduction to Oracle9i: SQL® (ou la version 10g lorsque l’examen sera disponible ce qu’il n’est pas encore à la parution de cet ouvrage) « 1Z0-001 » Introduction to Oracle: SQL® and PL/SQL™ « 1Z0-147 » Program with PL/SQL Support de formation Ce guide de formation est idéal pour être utilisé comme support élève dans une formation se déroulant avec un animateur dans une salle de formation, car il permet à l'élève de suivre la progression pédagogique de l'animateur sans avoir à prendre beaucoup de notes. L'animateur, quant à lui, appuie ses explications sur les images figurant sur chaque page de l'ouvrage. Cet ouvrage peut aussi servir de manuel d'autoformation car il est rédigé à la façon d'un livre, il est complet comme un livre, il va beaucoup plus loin qu'un simple support de cours. De plus, il inclut une quantité d'ateliers conçus pour vous faire acquérir une bonne pratique d’administration de la base de données. Les ateliers Le livre vise à donner la possibilité à chacun de manipuler et mettre en œuvre les fonctionnalités de ces deux langage sans pour autant avoir besoin d’un serveur Oracle classique qui nécessite des ressources, des droits (distribués avec parcimonie par les DBA) et surtout une licence (qui n’est pas de plus accessible). Le choix de présenter l’installation et l’ensemble des ateliers avec Oracle Database 10g Express Edition, qui offre une compatibilité totale avec les produits de la famille Oracle Database, s’est imposé de lui-même, pour permettre de démarrer petit mais de voir grand. © Tsoft – SQL pour Oracle10g 1 Préambule Progression pédagogique Ce cours comprend 22 chapitres, il est prévu pour durer cinq jours avec un animateur pour des personnes n'ayant aucune connaissance préalable du sujet. Suivant l'expérience des stagiaires et le but poursuivi, l'instructeur passera plus ou moins de temps sur chaque module. Attention : l'apprentissage « par cœur » des chapitres n'est d'aucune utilité pour passer les examens. Une bonne pratique et beaucoup de réflexion seront réellement utiles ainsi que la lecture des aides en ligne. C'est pourquoi ce livre présente des ateliers pratiques en fin de chaque chapitre. Présentation de l’environnement Le premier module vous propose une description des concepts de base de données relationnelle ainsi que de faire connaissance avec les composants constitutifs d’une base de données relationnelle. Dans ce module, vous allez découvrir le mode de communication du serveur Oracle avec les clients. Nous allons traiter dans ce module de l'installation d’Oracle 10g Express Edition, les étapes d’installation et le détail des pré-requis en ressources système nécessaires pour l’installation dans deux environnements : Windows et Linux. Les outils SQL*Plus Dans ce module, vous allez découvrir les interfaces de base de données mise à la disposition pour SQL et PL/SQL. Oracle fournit un certain nombre d’outils standards qui ont évolué et maturé suivant les versions. Puissants et performants, ces outils se retrouvent sur toutes les plateformes quelle que soit la version. Nous allons traiter dans ce module, l’utilisation de l’environnement SQL*Plus Worksheet, l’environnement iSQL*Plus ainsi que l’installation et utilisation de l’environnement SQL Developer. Interrogation des données Dans ce module, vous allez découvrir l’extraction des données d’une table le choix des colonnes souhaitées. Vous trouvez également dans ce module le traitement des colonnes contenant des valeurs NULL, les opérations arithmétiques avec les colonnes de type numériques et les colonnes de type date ainsi que l’affichage des résultats des requêtes triées. 2 © Tsoft – SQL pour Oracle10g Préambule Les opérateurs logiques Nous allons traiter dans ce module, de l’utilisation des opérateurs logiques simples et des opérateurs multiples. Ce module décrit également de la mise en œuvre des opérateurs de recherche dans les chaînes de caractères, de l’utilisation des opérateurs pour traiter des valeurs NULL des colonnes. Vous trouvez également dans ce module comment combiner plusieurs expressions de type logique à l’aide des opérateurs logiques AND, OR ou NOT. Les chaînes de caractères Dans ce module, vous allez découvrir le traitement des chaînes de caractères, leur formatage, l’extraction une partie d’une chaîne de caractères ainsi que la recherche et remplacement des sous chaînes. Nous allons traiter dans ce module les nouvelles fonctionnalités de traitement des chaînes de caractères à l'aide des expressions régulières. Les fonctions numériques Nous allons traiter dans ce module de l’utilisation des types de données numériques, des calculs arithmétiques, des arrondis et manipulation du signe des données. Vous allez également y découvrir les nouveautés des nombres réels à virgule flottante ainsi que les fonctions de traitements et conversions de ces types de données. Le traitement des dates Vous trouvez dans ce module les modalités de récupération des informations concernant la date et l’emplacement de la base, de changement des paramètres de zone horaire pour la session ainsi que le stockage de ces informations dans la base de données. Nous allons également y traiter les expressions de type date ainsi que les arrondis de ces expressions. Les conversions SQL Dans ce module, vous allez découvrir les modalités d’effectuer des conversions implicites et le traitement de conversion entre les différents types de données Nous allons également traiter dans ce module, la manipulation des expressions de type date de type chaîne de caractères. Groupement des données Ce module décrit les fonctions dites "verticales" pour les regroupements et le calcul cumulatif. Les fonctions verticales sont utilisées pour le calcul cumulatif des valeurs par rapport à un regroupement ou pour l’ensemble des lignes de la requête. Agrégation et Analyse Dans ce module, vous allez découvrir les nouvelles fonctionnalités de traitement multidimensionnel, les fonctions d’agrégation multidimensionnelles, les calculs suivant un partitionnement de données et le concept de fenêtrage. Nous allons également traiter dans ce module, des fonctions de classement, des requêtes qui utilisent des valeurs détaillées et des résultats des regroupements en même temps. © Tsoft – SQL pour Oracle10g 3 Préambule Les requêtes multitables Nous examinerons dans cette section comment coupler les lignes de deux ou plusieurs tables afin d'en extraire des données corrélées, utiliser la syntaxe d’Oracle pour les jointures ou la syntaxe ANSI SQL :1999. Les jointures complexes Dans ce module, vous allez découvrir les interrogations avec les opérateurs ensemblistes et l’utilisation des sous-requêtes. Nous examinerons tout particulièrement l’utilisation des sous-requêtes avec les opérateurs IN, ALL et ANY, les sous-requêtes dans la clause FROM et les sousrequêtes synchronisées. Mise à jour des données Ce module présente le Langage de Manipulation de Donnée ou LMD, (UPDATE, INSERT et DELETE), qui permet d'effectuer les trois types de modifications (mise à jour de lignes, ajout de lignes et suppression de lignes sélectionnées). Nous examinerons tout particulièrement l’utilisation des nouveautés des insertions multi-tables des mises à jour conditionnées. Les transactions Dans ce module vous pouvez découvrir la gestion des transactions. Toute base de données a pour objectif de fournir aux utilisateurs un accès simultané aux données. La notion de concurrence d'accès et de verrouillage des données intervient lorsque plusieurs utilisateurs essaient d'accéder simultanément aux mêmes données. Le concept de transaction est différent mais il n'en reste pas moins à la base de la gestion des accès concurrents : les données modifiées lui sont réservées jusqu'à sa fin. Nous examinerons tout particulièrement la structuration d’une transaction et les annulations partielles. La création des tables Les tables contiennent un ensemble fixe de colonnes, chaque colonne possède un nom ainsi que des caractéristiques spécifiques. Une table d'objets est une table dont toutes les lignes sont des types de données abstraits possédant chacun un identifiant d'objet (OID, Object ID). La gestion des tables Les tables sont mises en relation via les colonnes qu'elles ont en commun. Vous pouvez faire en sorte que la base de données applique ces relations au moyen de l'intégrité référentielle. L'intérêt d'employer des contraintes est qu'Oracle assure en grande partie l'intégrité des données. Par conséquent, plus vous ajoutez de contraintes à une définition de table, moins vous aurez de travail pour la maintenance des données. Les index L’index est une structure de base de données utilisée par le serveur pour localiser rapidement une ligne dans une table. Dans ce module, nous allons détailler l’index de table de type B-Tree classique et l’index de type bitmap conçu pour supporter des requêtes sur des tables volumineuses dont les colonnes contiennent peu de valeurs distinctes. Vous pouvez également découvrir dans ce module les tables organisées en index. 4 © Tsoft – SQL pour Oracle10g Préambule Les vues et autres objets Ce module concerne les autres objets de la base de données comme le lien de base de données qui permet de se connecter à une base et d'accéder à partir de là à des objets situés dans une autre base de façon transparente, c'est-à-dire comme s'ils se trouvaient dans la base à laquelle vous êtes directement connecté. Les profils Depuis Oracle8, les administrateurs de bases de données disposent de différentes fonctionnalités qui sont essentielles pour assurer la sécurité des mots de passe. Pour améliorer le contrôle de la sécurité de la base de données, la gestion de mot de passe d'Oracle est contrôlée par des administrateurs de base de données avec des profils. Le profil d'un utilisateur limite l'utilisation de la base de données et les ressources d'instance conformément à sa définition. Vous pouvez affecter un profil à chaque utilisateur et un profil par défaut à tous les utilisateurs ne disposant pas d'un profil spécifique. Les utilisateurs Lorsqu'on parle d'utilisateurs de base de données, il est généralement question de trois types d'entités : Les utilisateurs finaux sont des utilisateurs qui se connectent à la base Oracle pour interagir avec les données qui y sont stockées et les maintenir Les applications qui sont écrites pour aider les utilisateurs finaux à exécuter plus facilement et plus rapidement leurs tâches. Les administrateurs de bases de données surveillent et maintiennent la base ellemême; ils ont donc besoin du plus haut niveau de privilèges. Les privilèges En tant qu'administrateur de bases de données, vous êtes chargé d'octroyer et de révoquer des privilèges d'accès aux utilisateurs de la base. Vous pouvez employer des rôles pour faciliter l'administration de privilèges, et des vues pour limiter l'accès des utilisateurs à certaines données. Ce module décrit comment utiliser et gérer les privilèges de niveaux système et objet, les rôles et les vues afin d'assurer la sécurité des données de la base et de garantir leur intégrité. Le dictionnaire de données Le dictionnaire est un ensemble de tables et de vues qui contient toutes les informations concernant la structure de stockage et tous les objets de la base. Toute information concernant la base de données se retrouve dans le dictionnaire de données. Le dictionnaire de données Oracle stocke toutes les informations utilisées pour gérer les objets de la base. Ce dictionnaire est généralement exploité par l'administrateur de base de données, mais c'est aussi une source d'information utile pour les développeurs et les utilisateurs. Ce module présente les mécanismes d’accès à ces informations à travers les vues du dictionnaire de données. © Tsoft – SQL pour Oracle10g 5 Préambule Conventions utilisées dans l’ouvrage « MAJUSCULES » [ ] [,...] { } | ... Les ordres SQL ou tout identifiant ou mot clé. Utilisé pour les mots clé, les noms des tables, les noms des champs, les noms des blocs etc.... L’information qui se trouve entre les crochets est facultative. L’argument précédent peut être répété plusieurs fois. Liste de choix exclusive. Séparateur dans une liste de choix. La suite est non significative pour le sujet traité. La définition suivante est valable uniquement dans la version Oracle8i. La définition est valable pour la version Oracle9i mais également dans les versions suivantes. La définition est valable à partir de la version Oracle10g. La définition uniquement valable pour l’environnement de travail UNIX/Linux. La définition uniquement valable pour l’environnement de travail Windows. Ce sigle introduit un exemple de code avec la description complète telle qu’elle est présente à l’écran dans l’outil de commande. Une note qui présente des informations intéressantes en rapport avec le sujet traité. Un encadré. Attention met en évidence les problèmes potentiels et vous aide à les éviter. Il peut être également une mise en garde ou une définition critique. Une Astuce, apporte une suggestion ou propose une méthode plus simple pour effectuer une action donnée. Un Conseil, une démarche impérative à suivre pour pouvoir résoudre le problème. 6 © Tsoft – SQL pour Oracle10g • Outils d’administration • SQL*Plus • SQL*Plus Worksheet • iSQL*Plus • SQL Developer Module 2 : Les outils SQL*Plus Objectifs A la fin de ce module, vous serez à même d’effectuer les tâches suivantes : • Décrire les interfaces de base de données mise à la disposition d’administrateurs SQL et PL/SQL. • Utiliser l’environnement SQL*Plus. • Utiliser l’environnement SQL*Plus Worksheet. • Utiliser l’environnement iSQL*Plus. • Installer et utiliser l’environnement SQL Developer Contenu Qu'est-ce que SQL*Plus ? ................. 2-2 SQL*Plus Worksheet .......................2-23 Environnement SQL*Plus ................. 2-4 iSQL*Plus ........................................2-25 Environnement SQL*Plus (Suite) ..... 2-5 iSQL*Plus ........................................2-26 Commandes SQL*Plus...................... 2-6 Variables et iSQL*Plus ....................2-28 Commandes SQL*Plus (Suite)........ 2-10 Oracle SQL Developer .....................2-31 Commandes SQL*Plus (Suite)........ 2-14 SQL Developer.................................2-35 Commandes SQL*Plus (Suite)........ 2-16 Le schéma des ateliers......................2-37 Commandes SQL*Plus (Suite)........ 2-18 Atelier...............................................2-39 Variables.......................................... 2-19 © Tsoft – SQL pour Oracle10g 2-1 Module 02 : Les outils SQL*Plus Qu'est-ce que SQL*Plus ? Qu'est-ce que SQL*Plus ? Éditeur favori Buffer Ordre SQL SQL*Plus Commande SQL*Plus Rapport Formaté Fichier SQL Résultat de la requête Rapport TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.2 SQL*Plus est une interface interactive en mode caractère qui permet de manipuler la base de données au moyen de commandes simples se basant sur le langage SQL. L'outil SQL*Plus vous permet de réaliser les fonctions suivantes au sein d'ORACLE : • Entrer, éditer, sauvegarder et exécuter des commandes SQL et des blocs PL/SQL. • Sauvegarder, effectuer des calculs et mettre en forme le résultat des requêtes. • Lister les définitions des colonnes de chaque table. • Exécuter des requêtes interactives. Vous pouvez écrire des rapports tout en travaillant de manière interactive avec SQL*Plus. Cela veut dire que si vous saisissez vos commandes de définition de titres de pages, de titres de colonnes, de mise en forme de texte, de sauts de pages, de totaux, etc., et si vous exécutez ensuite une requête SQL, SQL*Plus produit immédiatement le rapport formaté selon vos indications. Malheureusement, lorsque vous quittez cet outil, il ne conserve aucune des instructions que vous lui avez données. Si vous deviez l'employer uniquement de façon interactive, vous auriez à recréer un rapport chaque fois que vous en auriez besoin. La solution est très simple. Il suffit de saisir les commandes dans un fichier. SQL*Plus peut ensuite lire le fichier comme s'il s'agissait d'un script, et exécuter vos commandes comme si vous les saisissiez. Pour créer ce fichier, utilisez n'importe quel éditeur disponible. Vous pouvez travailler avec l'éditeur et SQL*Plus en parallèle. Lorsque vous êtes dans SQL*Plus, basculez dans l'éditeur pour créer ou modifier votre programme de génération de rapport, puis retournez dans SQL*Plus à l'endroit où vous l'avez laissé et exécutez le fichier. SQL*Plus est un outil généraliste, livré depuis des années avec toutes les versions d'Oracle. Il a l'avantage d’exister sur toutes les plates-formes où Oracle est porté. Il présente l'inconvénient d'une ergonomie en mode caractère qui peut faire préférer pour 2-2 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus certains usages des outils graphiques parfois moins performants mais plus agréables d'utilisation. L’outil en mode caractère est indispensable à l’automatisation d’exécution des fichiers scripts de commande pour l’administration du serveur ORACLE. En conclusion, SQL*Plus est un outil ORACLE qui reconnaît le langage SQL et soumet les instructions SQL au Serveur ORACLE pour l'exécution. Cet outil comporte son propre langage de commande. Comparaison entre les instructions SQL et les commandes de SQL*Plus : SQL Un langage Conforme au standard ANSI Les mots clés ne peuvent pas être abrégés Les instructions manipulent des données et des définitions de tables dans la base de données Les instructions sont entrées dans le tampon mémoire sur une ou plusieurs lignes © Tsoft – SQL pour Oracle10g SQL*Plus Un environnement Propriétaire d'ORACLE Les mots clés peuvent être abrégés Les commandes ne peuvent pas manipuler les données dans la base de données Les instructions sont entrées sur une ligne à la fois ; elles ne sont pas stockées dans le tampon mémoire 2-3 Module 02 : Les outils SQL*Plus Environnement SQL*Plus Qu'est-ce que SQL*Plus ? Éditeur favori Buffer Ordre SQL SQL*Plus Commande SQL*Plus Fichier SQL Rapport Formaté Résultat de la requête Rapport TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.2 SQL*Plus peut être utilisé en mode ligne de commande ou en environnement mode caractère dans une fenêtre Windows, les deux environnements étant identiques du point de vue de leur utilisation. Avant de pouvoir émettre des instructions SQL dans SQL*Plus, vous devez tout d’abord établir une connexion avec le serveur. Deux autres environnements sont utilisés à partir de la version Oracle9i : SQL*Plus Worksheet et iSQL*Plus. Connexion SQL*Plus en mode Windows A partir du menu Démarrer, sélectionnez Programmes, ORACLE-Formation, Application Development, SQL Plus. Une boîte de dialogue apparaît pour recueillir « un nom », « un mot de passe » et « une chaîne de connexion ». Attention Etant donné que nous utilisons un répertoire d'accueil ORACLE_HOME nommé Formation, l'option du menu Programmes est ORACLE-Formation. Elle est différente sur votre système. Connexion SQL*Plus en mode ligne de commande A partir d'une fenêtre utilisez la commande suivante pour lancer SQL*Plus : SQLPLUS « nom »/« mot de passe »@« chaîne de connexion » La syntaxe exacte de commande SQL*Plus est décrite plus loin dans ce module. 2-4 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus Environnement SQL*Plus (Suite) Qu'est-ce que SQL*Plus ? Éditeur favori Buffer Ordre SQL SQL*Plus Commande SQL*Plus Fichier SQL Rapport Formaté Résultat de la requête Rapport TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.2 Les grandes caractéristiques des interactions entre SQL*Plus et son environnement sont : • lors du lancement de SQL*Plus, un nom d'utilisateur, son mot de passe et la base de donnée cible vous sont demandés; • lors de la connexion à la base Oracle, le fichier glogin.sql est exécuté. Ce fichier, situé dans le répertoire « ORACLE_HOME\SQLPLUS\ADMIN » sur la machine qui héberge le code exécutable de SQL*Plus, peut contenir toutes sortes d'ordres SQL et SQL*Plus ; • par défaut, l'invite d'une session SQL*Plus est SQL> ; • à partir de la session SQL*Plus, vous pouvez lancer des commandes du système d’exploitation, par la commande HOST. Celle-ci ne termine pas votre session SQL*Plus qui peut être, au choix, bloquée ou active en attendant la fin de l'exécution de la commande OS ; • vous pouvez vous déconnecter de la base Oracle cible tout en restant dans SQL*Plus au moyen de la commande DISC (DISCONNECT) ; • pour se connecter à un autre compte Oracle ou à une autre base de données, utilisez la commande CONNECT; • pour se déconnecter et terminer une session SQL*Plus, utilisez EXIT ou QUIT. © Tsoft – SQL pour Oracle10g 2-5 Module 02 : Les outils SQL*Plus Commandes SQL*Plus Commandes SQL*Plus ! SQLPLUS ! CONNECT ! DISCONNECT ! EXIT ! RUN SQL*Plus TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.5 SQL*Plus possède également ses propres commandes et règles : • Les instructions sont entrées une ligne à la fois et elles ne sont pas stockées dans le tampon mémoire. • Le - est un caractère de continuation pour saisir une commande sur plusieurs lignes • Les mots clés peuvent être abrégés • Ne nécessite pas de caractère de terminaison, les commandes sont exécutées immédiatement SQLPLUS Lors de la connexion, il est possible de spécifier le nom d'utilisateur, le mot de passe, et le nom d'une base de données ainsi que lancer un fichier de commande spécifié. SQLPLUS [logon][@chaîne] @fichier[.ext] [arg] logon @chaîne @fichier[.ext] [arg...] « utilisateur »[/« mot_de_passe »] Si le nom d'utilisateur et/ou le mot_de_passe ne sont pas saisis, ORACLE les demande après le lancement. le nom du service pour la connexion Oracle Net. Si aucun nom de base n’est spécifié, c'est la base par défaut qui est prise en compte. un fichier de commande contenant des ordres SQL, des commandes SQL*Plus et PL/SQL. L’extension .SQL est facultative. On peut lancer SQLPLUS @fichier a condition que la première ligne de ce fichier corresponde à un nom d'utilisateur suivi d'un '/' et du mot de passe. les arguments Pour accéder à l’aide décrivant l’ensemble des syntaxes accessibles lors du lancement de SQL*Plus il faut exécuter « SQLPLUS - ». 2-6 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus C:\>sqlplus – SQL*Plus: Release 10.1.0.2.0 - Production Syntaxe : SQLPLUS [<option>] [logon] [<start>] ] <option> ::= -H | -V | [ [-C <v>] [-L] [-M <o>] [-R <n>] [-S] ] <logon> ::= <nomutilisateur>[/<motdepasse>][@<identificateur_connexion>] <start> ::= @<URL>|<nomfichier>[.<ext>] [<paramÞtre> ...] "-H" affiche le numéro de version de SQL*Plus et la syntaxe "-V" affiche le numéro de version de SQL*Plus "-C" définit la version de compatibilité SQL*Plus <v> "-L" tente de se connecter une seule fois "-M <o>" utilise les options de balisage HTML <o> "-R <n>" utilise le mode restreint <n> "-S" utilise le mode silencieux Note Notez la différence entre les deux exemples suivants : − Se connecter à la base de données cible. SQLPLUS utilisateur/mot_de_password@base_cible − Exécuter automatiquement le fichier de commande cité sur la base par défaut. SQLPLUS utilisateur/mot_de_password @fichier.sql Une autre modalité de travail avec SQL*Plus consiste à ouvrir l’application sans aucune connexion à la base, et suivant les besoins, à effectuer les connexions par la suite. SQLPLUS /NOLOG CONNECT L'instruction CONNECT vous permet de réaliser une nouvelle connexion après le lancement de SQL*Plus. CONN[ECT] « utilisateur »[/« mot_de_passe »][@chaîne] Si le mot de passe n'est pas fourni, Oracle effectue une demande de saisie. C:\>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on Mer. Mai 11 00:37:… Copyright (c) 1982, 2004, Oracle. SQL> connect scott/tiger Connected. SQL> connect scott/tiger@dba Connected. SQL> connect scott Enter password: Connected. All rights reserved. Comme on l’a vu précédemment, on peut ouvrir SQL*Plus et ne pas se connecter à une base de données. La connexion peut être réalisée par la suite. Parallèlement, on © Tsoft – SQL pour Oracle10g 2-7 Module 02 : Les outils SQL*Plus peut ouvrir SQL*Plus et lancer un fichier de commande qui lui-même effectue la connexion, exécute une ou plusieurs opérations et quitte l’application. C:\>type select_cat.sql connect scott/tiger@dba select * from cat; exit; C:\>sqlplus /nolog @select_cat.sql SQL*Plus: Release 10.1.0.2.0 - Production on Mer. Mai 11 00:52: Copyright (c) 1982, 2004, Oracle. All rights reserved. Connecté. TABLE_NAME -----------------------------DEPT EMP BONUS SALGRADE TABLE_TYPE ----------TABLE TABLE TABLE TABLE Déconnecté de Oracle Database 10g Enterprise Edition Release 10 With the Partitioning, OLAP and Data Mining options C:\> Une autre manière de travailler est de renvoyer à SQL*Plus une série de commandes ; il est préférable d’utiliser cette option pour des traitements ponctuels. oracle@napoca:~> sqlplus /nolog << EOF > connect scott/tiger@dba > select * from cat; > exit; > EOF SQL*Plus: Release 10.1.0.3.0 - Production on Wed May 11 01:13: Copyright (c) 1982, 2004, Oracle. SQL> Connected. SQL> TABLE_NAME -----------------------------CREATE$JAVA$LOB$TABLE JAVA$OPTIONS All rights reserved. TABLE_TYPE ----------TABLE TABLE SQL> Disconnected from Oracle Database 10g Enterprise Edition With the Partitioning, OLAP and Data Mining options oracle@napoca:~> Dans la version 10g il est possible de se connecter à l’aide de la syntaxe suivante : CONNECT/MOT_DE_PASSE@//NOM_DU_SERVEUR:PORT/SERVICE SQL> connect stagiaire/pwd@//minerve.etelia.fr:1521/dba.etelia.fr Connecté. 2-8 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus DISCONNECT L'instruction « DISCONNECT » permet à l'utilisateur de se déconnecter de la base de données. DISC[ONNECT] Après cette instruction l'utilisateur ne peut plus exécuter de commandes SQL ou PL/SQL. EXIT L'instruction « EXIT » ou « QUIT » permet à l'utilisateur de quitter l'outil SQL*Plus et de se déconnecter de la base de données. EXIT[SUCCESS | FAILURE | WARNING][COMMIT | ROLLBACK] Cette instruction permet de communiquer au système d'exploitation un code de retour sur l'exécution de la session. Attention L'instruction « EXIT » valide la transaction, est équivalente à « COMMIT », par laquelle on se déconnecte et quitte l’outil SQL*Plus. Il est très dangereux d’utiliser « EXIT » à la fin des scripts qui utilisent des instructions de type LMD. Il faudrait de préférence utiliser « EXIT ROLLBACK » et prendre soin de valider les modifications faisant suite aux transactions. RUN La commande « RUN » ou « / » affiche le contenu du tampon mémoire et exécute l’instruction stockée dans le tampon mémoire R[UN] ou « / » C:\>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on Mer. Mai 11 01:28: Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> host type select_cat.sql connect scott/tiger@dba select * from cat; exit; SQL> @select_cat.sql Connecté. TABLE_NAME -----------------------------DEPT EMP BONUS SALGRADE © Tsoft – SQL pour Oracle10g TABLE_TYPE ----------TABLE TABLE TABLE TABLE 2-9 Module 02 : Les outils SQL*Plus Commandes SQL*Plus (Suite) Commandes SQL*Plus ! SQLPLUS ! CONNECT ! DISCONNECT ! EXIT ! RUN SQL*Plus TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.5 START Indique à SQL*Plus d'exécuter les instructions enregistrées dans un fichier. STA[RT] fichier[.ext] [arg ...] L’extension « .SQL » est facultative. La commande @ : est équivalente à START @ fichier[.ext] [arg ...] EDIT La commande « EDIT » est utilisée pour ouvrir un fichier de nom fichier.sql sous l'éditeur associé. ED[IT] fichier[.ext] SAVE La commande « SAVE » mémorise le contenu du tampon dans un fichier. L'extension « .SQL » est ajoutée automatiquement au nom du fichier. SAV[E] fichier[.ext] [CREATE | REPLACE | APPEND] GET La commande « GET » est utilisée pour faire l'opération inverse, c'est-à-dire copier le contenu d'un fichier dans le tampon : GET fichier[.ext] [LIST | NOLIST] Le contenu du fichier est alors copié dans le tampon et affiché à l'écran, mais il n'est pas exécuté. L'exécution du contenu du tampon se fait par la commande RUN. 2-10 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus SPOOL La commande « SPOOL » est utilisée pour stocker le résultat d’une requête dans un fichier. Par défaut le résultat de toute requête est affiché à l'écran et il ne reste aucune trace de ce résultat. La commande « SPOOL » suivie par le nom du fichier récepteur mémorise ce résultat. SPO[OL] fichier[.ext] [OFF | OUT] A partir du moment où cette commande est exécutée, tout ce qui apparaît à l'écran est mémorisé dans le fichier jusqu'à l'exécution d'une autre commande « SPOOL » avec l'option « OFF » ou « OUT ». L'option « OUT » permet d'imprimer le contenu du fichier. Rappelez vous qu’une ou plusieurs commandes SQL peuvent être exécutées ; leur résultat est formaté et enregistré dans un fichier. Ainsi SQL*Plus peut exécuter ce fichier résultat comme un fichier script. C:\>sqlplus scott/tiger@dba SQL*Plus: Release 10.1.0.2.0 - Production on Mer. Mai 11 02:27 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connecté à : Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 With the Partitioning, OLAP and Data Mining options SQL> spool c:\count_lines_tables.sql SQL> select 'select count(*) from '||table_name||' ;' 2 "--Chaîne formaté" from cat; --Chaîne formaté ----------------------------------------------------select count(*) from DEPT ; select count(*) from EMP ; © Tsoft – SQL pour Oracle10g 2-11 Module 02 : Les outils SQL*Plus select count(*) from BONUS ; select count(*) from SALGRADE ; SQL> spool off SQL> @c:\count_lines_tables.sql SP2-0734: commande inconnue au début de "SQL> selec..." - le reste de la ligne est ignoré. COUNT(*) ---------4 COUNT(*) ---------12 COUNT(*) ---------0 COUNT(*) ---------5 SP2-0734: commande inconnue au début de "SQL> spool..." - le reste de la ligne est ignoré. SQL> host type c:\count_lines_tables.sql SQL> select 'select count(*) from '||table_name||' ;' 2 "--Chaîne formaté" from cat; --Chaîne formaté ----------------------------------------------------select count(*) from DEPT ; select count(*) from EMP ; select count(*) from BONUS ; select count(*) from SALGRADE ; SQL> spool off Dans cet exemple on commence par l’ouverture du SQL*Plus avec une connexion à la base de données « dba » comme l’utilisateur « scott ». Ensuite on démarre l’enregistrement dans le fichier spool de l’ensemble des commandes et leurs résultats. La commande SQL suivante formate les interrogations résultat, qui seront stockées dans le fichier « c:\count_lines_tables.sql ». SQL> select 'select count(*) from '||table_name||' ;' 2 "--Chaîne formaté" from cat; Le fichier ainsi obtenu est exécuté. Il y a pourtant des erreurs dues au comportement du spool qui enregistre dans le fichier toutes les informations apparues à l’écran, même les échos des commandes comme on peut le voir dans le listing du fichier. 2-12 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus HOST Envoie toute commande au système d'exploitation hôte. HO[ST] [commande] Un premier exemple est une demande d’afficher le répertoire courant et de lister les fichiers de ce répertoire dans un environnement linux. oracle@napoca:~> ls -al SQL*Plus: Release 10.1.0.3.0 - Production on Wed May 11 01:13 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> host pwd /home/oracle SQL> HOST ls -al total 36 drwxr-xr-x 4 oracle drwxr-xr-x 4 root -rw------- 1 oracle -rw-r--r-- 1 oracle -rw-r--r-- 1 oracle drwxrwxr-x 8 oracle -rwxr-xr-x 1 oracle -rw------- 1 oracle drwx------ 2 oracle -rw------- 1 oracle root 280 2005-05-02 21:53 . root 96 2005-03-13 23:49 .. oinstall 1483 2005-05-09 17:48 .bash_history oinstall 764 2005-04-05 14:04 .bash_profile oinstall 11075 2005-05-02 21:53 env_all oinstall 320 2005-03-14 04:00 oraInventory oinstall 449 2005-04-05 19:16 start_all oinstall 4594 2005-05-02 14:23 .viminfo oinstall 128 2005-03-14 00:51 .vnc oinstall 100 2005-03-14 00:46 .Xauthority Le deuxième exemple liste le contenu d’un fichier script, dans un environnement Windows. C:\>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on Mer. Mai 11 01:33 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> host type select_cat.sql connect scott/tiger@dba select * from cat; exit; © Tsoft – SQL pour Oracle10g 2-13 Module 02 : Les outils SQL*Plus Commandes SQL*Plus (Suite) Commandes SQL*Plus (Suite) ! DESCRIBE ! REMARK ! USER SQL*Plus TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.7 DESCRIBE La commande « DESCRIBE » est utilisée pour connaître la structure d'une table, d’une vue ou d’un synonyme. DESC[RIBE] {[schema.]object [@connect_identifier]} [@connect_identifier] indique un lien de base de données distante. Name Null ? Type Indique le nom de la colonne. Indique si la colonne doit contenir des données. « NOT NULL » rend obligatoire la présence de données. Affiche le type de données d’une colonne. SQL> DESC CATEGORIES Nom NULL ? Type ----------------------------------------- -------- -------------CODE_CATEGORIE NOT NULL NUMBER(6) NOM_CATEGORIE NOT NULL VARCHAR2(25) DESCRIPTION NOT NULL VARCHAR2(100) Cette instruction peut être utilisée avec d'autres objets : DESC[RIBE] nom_table | nom_vue | nom_synonyme nom_procedure | nom_fonction | nom_package nom_type_objet REMARK Indique à SQL*Plus que les mots qui suivent doivent être traités comme étant un commentaire. REM[ARK] 2-14 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus -Marque le début d'un commentaire en ligne dans une entrée SQL. Traite tout ce qui suit cette marque jusqu'à la fin de la ligne comme étant un commentaire. Analogue à « REMARK ». /*…*/ Marque le début et la fin d'un commentaire dans une entrée SQL. Analogue à « REMARK ». USER La commande « SHOW USER » affiche l’utilisateur connecté. SHO[W] USER SQL> SHOW USER USER is "SYS" SQL> SELECT USER FROM DUAL; USER ----------------------------SYS © Tsoft – SQL pour Oracle10g 2-15 Module 02 : Les outils SQL*Plus Commandes SQL*Plus (Suite) Commandes SQL*Plus (Suite) ! LINESIZE ! PAGESIZE ! COLUMN SQL*Plus ***** ************ ***** ***** --------------------------------------------***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** ***** ************ ***** ***** TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.8 LINESIZE La commande « SET LINESIZE » définit le nombre maximal de caractères autorisés dans chaque ligne. SET LINESIZE VALEUR SQL> SET LINESIZE 50 SQL> SELECT DESCRIPTION FROM CATEGORIES 2 WHERE CODE_CATEGORIE = 1 DESCRIPTION -----------------------------------------Boissons, cafés, thés, bières SQL> SET LINESIZE 10 SQL> SELECT DESCRIPTION FROM CATEGORIES 2 WHERE CODE_CATEGORIE = 1 DESCRIPTIO ---------Boissons, cafés, thé s, bières PAGESIZE La commande « SET PAGESIZE » définit le nombre maximal de lignes dans chaque page ; le calcul est effectué en tenant compte des lignes d’en-tête et bas de 2-16 © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus page. Lorsque vous créez un fichier de données, vous pouvez configurer la variable « PAGESIZE » avec la valeur 0. SET PAGESIZE VALEUR SQL> SET PAGESIZE 10 SQL> SELECT NOM, PRENOM FROM EMPLOYES NOM -------------------Callahan Buchanan Peacock Leverling Davolio Dodsworth King PRENOM ---------Laura Steven Margaret Janet Nancy Anne Robert NOM -------------------Suyama Fuller PRENOM ---------Michael Andrew 9 ligne(s) sélectionnée(s). COLUMN La commande « SET COLUMN » permet de formater les données de colonnes. Dans le cas de caractères, cette clause détermine la largeur du champ et la façon dont les données qui dépassent doivent être gérés : elles peuvent être soit tronquées, soit reportées sur la ligne suivante. Dans le cas de nombres, cette clause permet de contrôler la quantité des chiffres à afficher et leur format. SQL> SQL> SQL> SQL> SQL> COLUMN COLUMN COLUMN COLUMN SELECT USER TRUNC FORMAT A3 UTIL FORMAT A3 UID FORMAT 999 SYSDATE FORMAT A8 USER, USER UTIL, UID, SYSDATE FROM DUAL; USE UTI UID SYSDATE --- --- ---- -------STA STA 64 23/07/06 GIA IRE © Tsoft – SQL pour Oracle10g 2-17 Atelier 2 Atelier 2 ! Préparer le poste de développement ! Connexion ! Environnement SQL*Plus ! Générer des scripts SQL Durée : 45 minutes TSOFT - ORACLE 10g SQL et PL*SQL Module 2 : Les outils SQL*Plus - Diapo 2.18 Questions 2-1. Quel est l'outil que vous retrouvez sur chaque serveur de base de données installée ? A. SQL*Plus. B. iSQL*Plus. C. SQL*Plus Worksheet D. Oracle Enterprise Manager. 2-2. SQL*Plus est-il un langage ou un environnement ? 2-3. Pour utiliser iSQL*Plus sur une machine distante, avez-vous besoin d'installer le client Oracle ? 2-4. Quelle est la commande qui vous permet de vous connecter ? 2-5. Dans la syntaxe de démarrage de SQL*Plus, pouvez-vous lancer l’exécution d’un script ? 2-6. Quelle est la commande qui vous permet de stocker dans un fichier tout ce qui est affiché à l’écran ? 2-7. Dans l’environnement SQL*Plus, peut-on exécuter des commandes du système d’exploitation ? 2-8. Citez trois types de paramètres de mise en forme des résultats des requêtes. 2-9. Quelle est la commande qui vous permet de décrire la structure d’une vue ? © Tsoft – SQL pour Oracle10g 2-39 Module 02 : Les outils SQL*Plus Exercice n° 1 Préparer le poste de développement Installez le schéma des exemples pour les ateliers en respectant la démarche décrite dans ce module. D:\>dir shema_exemple.zip D:\>unzip shema_exemple.zip D:\>cd Ora10gSQL D:\Ora10gSQL>dir D:\Ora10gSQL>slqplus /nolog @InitEnvStagiaireXE.sql Téléchargez et Installez l’outil SQL Developer. Exercice n° 2 Connexion Démarrez SQL*Plus, en ligne de commande, avec le nom d’utilisateur du schéma exemples « STAGIAIRE » et son mot de passe « PWD ». Démarrez SQL Developer et paramétrez la connexion à la base de données. Exercice n° 2 Environnement SQL*Plus En utilisant SQL*Plus en ligne de commande, redirigez les sorties vers un fichier et exécutez les commandes suivantes : • Décrivez la table « COMMANDES » ; • Déconnectez-vous de la base de données sans sortir du SQL*Plus ; • Décrivez de nouveau la table « COMMANDES ». Que remarquez-vous ? • Connectez vous ; • Affichez l’utilisateur courant ; • Arrêtez la redirection des sorties vers le fichier ; • Sans quitter l’environnement, listez le fichier que vous venez de créer. Exercice n° 3 Générer des scripts SQL Connectez-vous à SQL*Plus, redirigez les sorties « DESC_ALL.SQL » et exécutez les commandes suivantes : 2-40 vers le fichier © Tsoft – SQL pour Oracle10g Module 02 : Les outils SQL*Plus • Interrogez la vue catalogue à l’aide de la syntaxe suivante : SET PAGESIZE 0 SET ECHO OFF SET FEEDBACK OFF SELECT 'DESC '||TABLE_NAME FROM CAT WHERE TABLE_TYPE = 'TABLE' ; • Maintenant vous pouvez arrêter la redirection des sorties vers le fichier et exécuter le script ainsi conçu. © Tsoft – SQL pour Oracle10g 2-41 Index IIndex ! [ !=(différent de) .....................................................4-8, 12-13 [ ](crochets)................................................................... 4-11 [:alpha:](classe de caractères) ....................................... 4-14 [:alphanum:](classe de caractères) ................................ 4-14 [:cntrl:](classe de caractères) ........................................ 4-14 [:digit:](classe de caractères) ........................................ 4-14 [:lower:](classe de caractères)....................................... 4-14 [:print:](classe de caractères) ........................................ 4-14 [:punct:](classe de caractères)....................................... 4-14 [:space:](classe de caractères)....................................... 4-14 [:upper:](classe de caractères)....................................... 4-14 [:xdigit:](classe de caractères) ...................................... 4-14 $ $(symbole dollar) ..........................................................4-11 % %(symbole pourcentage).................................................4-9 ( ( )(parenthèses)..............................................................4-11 (+)(jointure externe) ......................................................11-7 ' '(apostrophe)....................................................................3-6 ( (barre oblique inversée).................................................4-11 -(tiret) ......................................................... 3-11, 3-13, 7-11 * *(étoile) ............................................... 3-3, 3-11, 4-11, 7-11 . .(point)....................................................................3-6, 3-11 / ^ ^(accent circonflexe)..................................................... 4-11 ^=(différent de) ............................................................... 4-8 _ _(tiret bas)....................................................................... 4-9 { { }(accolades) ............................................................... 4-11 | |(barre verticale)............................................................ 4-11 ||(concaténation)..................................................... 3-10, 5-6 + +(plus)................................................3-11, 3-13, 4-11, 7-11 /(barre oblique).....................................................3-11, 7-11 < ? <(inférieur à)............................................................... 12-13 <=(inférieur ou égal)................................................... 12-13 <>(différent de).................................................... 4-8, 12-13 ?(point d’interrogation) .................................................4-11 © Tsoft – SQL pour Oracle10g I-1 Index = BINARY_MAX_NORMAL ...................................... 6-4 BITMAP ....................................................................... 17-4 =(égal) .........................................................................12-13 > >(supérieur à) ..............................................................12-13 >=(supérieur ou égal) ..................................................12-13 A ABS...............................................................................6-11 ACCEPT .......................................................................2-21 ACOS............................................................................6-10 ADD_MONTHS ...........................................................7-16 ALIAS.............................................................................3-3 ALL......................3-3, 3-5, 4-21, 12-2, 12-13, 12-16, 21-30 ALTER PROFIL ..................................................................19-14 ROLE......................................................................21-27 SEQUENCE ...........................................................18-10 TABLE ................................. 16-22, 16-24, 16-26, 16-33 TABLE DISABLE CONSTRAINT........................16-36 TABLE DROP CONSTRAINT..............................16-35 TABLE DROP UNUSED.......................................16-27 TABLE MOVE.......................................................16-31 TABLE RENAME..................................................16-30 TABLE SET UNUSED ..........................................16-27 USER ........................................................................20-8 ALTER SESSION SET ISOLATION_LEVEL ....................................14-11 TIME_ZONE.....................................................7-3, 7-12 AND..............................................................................4-18 ANY...................................................................4-20, 12-15 AS ..................................................... 3-3, 8-3, 15-13, 15-16 ASC......................................................................3-18, 17-4 ASCII ............................................................................5-21 ASIN .............................................................................6-10 ATAN ...........................................................................6-10 Autojointure ..................................................................11-8 AUTOT[RACE]............................................................17-8 AVG................................................................................9-4 B BETWEEN....................................................................4-18 BINARY_DOUBLE BINARY_DOUBLE...................................................8-4 BINARY_DOUBLE_INFINITY................................6-4 BINARY_DOUBLE_MAX_NORMAL.....................6-4 BINARY_DOUBLE_MAX_SUBNORMAL .............6-4 BINARY_DOUBLE_MIN_NORMAL ......................6-4 BINARY_DOUBLE_MIN_SUBNORMAL ..............6-4 BINARY_DOUBLE_NAN ........................................6-4 BINARY_FLOAT BINARY_FLOAT ......................................................8-4 BINARY_FLOAT_INFINITY ...................................6-4 BINARY_FLOAT_MAX_SUBNORMAL ................6-4 BINARY_FLOAT_MIN_NORMAL .........................6-4 BINARY_FLOAT_MIN_SUBNORMAL..................6-4 BINARY_FLOAT_NAN............................................6-4 I-2 C CACHE....................................................................... 18-10 Caractère générique ........................................................ 4-9 CASCADE CONSTRAINTS ....16-28, 16-29, 16-38, 21-19 CASE............................................................................ 8-23 CAST.............................................................................. 8-3 CEIL ............................................................................. 6-12 CHAR ............................................................................. 4-6 CHECK................................................................ 16-3, 16-8 CHECK OPTION ................................................ 18-3, 18-6 CHR.............................................................................. 5-21 Clause NOT NULL....................................................... 1-10 Clés étrangères.............................................................. 1-10 Clés primaires ............................................................... 1-10 Client/Serveur ............................................................... 1-17 COALESCE.................................................................. 8-25 Colonnes ................................................................ 1-9, 15-7 COLUMN..................................................................... 2-17 COMMIT........................................................................ 2-9 COMPOSITE LIMIT.................................................. 19-12 CONCAT........................................................................ 5-6 CONNECT .................................................1-19, 2-7, 21-31 CONNECT_TIME...................................................... 19-11 Connexion....................................................................... 2-4 Constante chaîne de caractère ......................................... 3-6 Constante numérique ...................................................... 3-6 CONSTRAINT ............................................................. 16-2 Contrainte d’intégrité.................................................. 13-21 Contrainte unique.......................................................... 1-10 COS .............................................................................. 6-10 COSH ........................................................................... 6-10 COUNT .......................................................................... 9-6 CPU_PER_CALL....................................................... 19-11 CPU_PER_SESSION ................................................. 19-11 CREATE DATABASE LINK ................................................ 18-12 INDEX ..................................................................... 17-3 PROFILE....................................................... 19-9, 19-13 ROLE ..................................................................... 21-24 SEQUENCE ............................................................. 18-9 SESSION.................................................................. 20-5 SYNONYM............................................................ 18-11 TABLE.......................15-18, 15-23, 15-26, 16-20, 17-18 TABLE AS............................................................. 15-35 TABLE OF............................................................. 15-30 TEMPORARY TABLE.......................................... 15-33 TYPE...................................................................... 15-12 TYPE BODY.......................................................... 15-16 USER ....................................................................... 20-3 VIEW ....................................................................... 18-2 CROSS JOIN .............................................................. 11-12 CUBE ............................................10-6, 10-9, 10-10, 10-12 CUME_DIST.............................................................. 10-35 CURRENT_DATE ....................................................... 7-12 CURRENT_TIMESTAMP........................................... 7-12 CURRVAL ................................................................. 18-10 CYCLE ......................................................................... 18-9 © Tsoft – SQL pour Oracle10g Index D G DATE..............................................................................8-6 DAY.....................................................................7-14, 7-20 DBA ............................................................................21-31 DBMS_FLASHBACK................................................14-19 DBTIMEZONE...............................................................7-2 DECODE .............................................................8-20, 8-23 DEFAULT ............................................. 13-7, 15-19, 16-24 DEFINE ........................................................................2-22 DELETE........................... 13-20, 13-21, 13-22, 15-34, 18-4 DENSE_RANK................................................10-32, 10-33 DESC ...................................................................3-18, 17-4 DESCRIBE ..........................................................2-14, 18-8 DIFERENCE.................................................................12-8 DISABLE....................................................................16-36 DISCONNECT ...............................................................2-9 DISTINCT ............................................ 3-3, 9-7, 12-2, 12-3 DROP COLUMN ...............................................................16-26 CONSTRAINT .......................................................16-35 INDEX....................................................................17-22 PROFIL ..................................................................19-14 ROLE......................................................................21-27 SEQUENCE ...........................................................18-10 TABLE ...................................................................16-38 TABLE CASCADE CONSTRAINTS....................16-38 TABLE PURGE .....................................................22-16 USER ......................................................................20-11 VIEW........................................................................18-8 DUAL ...........................................................................3-23 GET .............................................................................. 2-10 GLOBAL .................................................................... 15-33 GRANT ...........................................1-15, 20-6, 21-9, 21-13 GREATEST.................................................................. 8-18 GROUP BY .....9-8, 9-9, 9-10, 9-12, 9-14, 10-3, 10-6, 10-9, 10-12, 18-4 GROUPING................................................................ 10-12 GROUPING SETS ............................................ 10-9, 10-12 GROUPING_ID .............................................. 10-14, 10-16 E ECHO............................................................................2-18 EDIT .............................................................................2-10 ENABLE.....................................................................16-36 Espace de disque logique ................................................1-8 EXCEPT .....................................................................21-30 EXISTS .......................................................................12-20 EXIT ...............................................................................2-9 EXP .................................................................................6-9 Expression rationnelle ...................................................4-11 EXTRACT ....................................................................7-14 F FEEDBACK..................................................................2-18 FIRST_VALUE ..........................................................10-38 FLASHBACK TABLE ...............................................22-16 FLOOR .........................................................................6-12 Fonction Fonctions Analytiques ............................................10-19 Fonctions de groupe....................................................9-4 Fonctions Horizontales ...............................................9-2 Fonctions Verticales ............................................9-3, 9-4 FORCE..........................................................................18-3 FOREIGN KEY ............................................................16-3 FORMAT ........... 8-4, 8-6, 8-8, 8-10, 8-11, 8-12, 8-14, 8-15 FROM ............................................... 3-3, 11-3, 11-4, 12-22 FULL...........................................................................11-20 © Tsoft – SQL pour Oracle10g H HAVING ............................................................. 9-11, 9-12 HEADING .................................................................... 2-18 HIDE............................................................................. 2-21 HINT........................................................................... 17-16 HOST............................................................................ 2-13 HOUR........................................................................... 7-14 I IDENTIFIED BY............................................... 21-9, 21-30 IDLE_TIME ............................................................... 19-11 IN_..................................................................... 4-19, 12-13 INCREMENT ............................................................... 18-9 Index bitmap ............................................................... 17-20 Index B-tree ................................................................ 17-10 INITCAP ........................................................................ 5-6 INSERT13-3, 13-4, 13-8, 13-9, 13-10, 13-21, 13-22, 15-19, 18-4 INSERT ALL .................................................. 13-11, 13-13 INSERT FIRST .......................................................... 13-16 INSTR........................................................................... 5-13 INTERSECT................................................................. 12-7 IS INFINITE................................................................... 6-6 IS NAN ........................................................................... 6-6 IS NOT NULL.............................................................. 4-28 IS NULL ....................................................................... 4-15 IS_ ................................................................... 15-13, 15-16 iSQL*Plus..................................................................... 2-25 J JOIN ON.......................................................... 11-17, 11-19 JOIN USING .............................................................. 11-15 Jointure ......................................................................... 11-2 Jointure avec condition ................................................. 11-4 Jointure externe............................................................. 11-6 Jointure sans condition.................................................. 11-3 L LAG............................................................................ 10-41 LAST_DAY.................................................................. 7-18 LAST_VALUE........................................................... 10-39 LCD .............................................................................. 1-12 LDD..................................................................... 1-12, 1-15 Le groupe........................................................................ 9-8 LEAD ......................................................................... 10-42 I-3 Index LEAST ..........................................................................8-19 LEFT ...........................................................................11-20 LENGTH.......................................................................5-20 LID................................................................................1-12 Lignes.....................................................................1-9, 15-7 LIKE ...............................................................................4-9 LINESIZE .....................................................................2-16 LISTENER.........................................................1-18, 18-12 LMD............................................................. 1-12, 3-3, 13-2 LN ...................................................................................6-9 LOCALTIMESTAMP ..................................................7-13 LOCK TABLE ............................................................14-13 LOG ................................................................................6-9 LOGICAL_READS_PER_CALL...............................19-12 LOGICAL_READS_PER_SESSION .........................19-11 LONG ...........................................................................12-3 LOWER ..........................................................................5-5 LPAD ..............................................................................5-7 LTRIM ............................................................................5-9 M Marqueur de position ......................................................4-9 MAX ...............................................................................9-5 MAXVALUE................................................................18-9 MIN.................................................................................9-5 MINUS..........................................................................12-8 MINUTE .......................................................................7-14 MINVALUE .................................................................18-9 MOD ...............................................................................6-8 MONTH ...............................................................7-14, 7-20 MONTHS_BETWEEN.................................................7-17 N NANVL...........................................................................6-5 NATURAL JOIN .............................................11-13, 11-14 NCHR ...........................................................................5-21 netmgr ...........................................................................1-25 NEXT_DAY .................................................................7-18 NEXTVAL..................................................................18-10 NOCYCLE....................................................................18-9 NOFORCE ....................................................................18-3 NOT ..............................................................................4-27 NOT BETWEEN ..........................................................4-28 NOT IN ..............................................................4-27, 12-17 NOT NULL........9-5, 13-21, 15-19, 16-3, 16-6, 16-24, 18-4 NTILE .........................................................................10-36 NULL 3-14, 3-15, 3-18, 9-4, 9-5, 9-6, 9-7, 13-4, 13-6, 13-7, 13-8, 16-6, 16-24 NULL FIRST ......................................... 3-21, 10-24, 10-26 NULL LAST .......................................... 3-21, 10-24, 10-26 NULLIF ........................................................................8-25 NUMBER.................................................................4-6, 8-4 NUMTODSINTERVAL ...............................................8-15 NUMTOYMINTERVAL..............................................8-14 NVL ..............................................................................3-15 O ON COMMIT .............................................................15-33 I-4 ON DELETE CASCADE ........................................... 16-18 ON DELETE SET NULL........................................... 16-19 Opérateur ALL.......................................................................... 4-21 AND ......................................................................... 4-22 ANY ......................................................................... 4-20 BETWEEN............................................................... 4-18 Différent de ................................................................ 4-8 Egal à.......................................................................... 4-3 IN_ ........................................................................... 4-19 Inférieur à ................................................................... 4-5 IS NULL................................................................... 4-15 LIKE........................................................................... 4-9 Opérateur de concaténation ...................................... 3-10 Opérateurs arithmétique ........................................... 3-11 Opérateurs de type DATE ........................................ 3-13 Opérateurs ensembliste............................................. 12-2 Opérateurs logiques.. 4-3, 4-5, 4-8, 4-9, 4-11, 4-15, 4-18, 4-19, 4-20, 4-22, 4-24 OR ............................................................................ 4-24 REGEXP_LIKE ....................................................... 4-11 Supérieur à ................................................................. 4-5 ORACLE_HOME.......................................1-20, 1-35, 19-4 ORACLE_SID.............................................................. 1-35 ORDER BY ..... 3-18, 9-12, 10-24, 10-26, 12-3, 12-10, 18-3 OUTER JOIN .................................................... 11-6, 11-20 OVER ......................................................................... 10-19 P PAGESIZE ................................................................... 2-16 Paramètres de mots de passe FAILED_LOGIN_ATTEMPTS ..................... 19-3 Paramètres de mots de passe PASSWORD_GRACE_TIME .................................................................................. 19-4 Paramètres de mots de passe PASSWORD_LIFE_TIME .................................................................................. 19-3 Paramètres de mots de passe PASSWORD_LOCK_TIME .................................................................................. 19-3 Paramètres de mots de passe PASSWORD_REUSE_MAX .................................................................................. 19-3 Paramètres de mots de passe PASSWORD_REUSE_TIME .................................................................................. 19-3 Paramètres de mots de passe PASSWORD_VERIFY_FUNCTION ............ 19-4 PARTITION BY......................................................... 10-21 PERCENT_RANK ..................................................... 10-33 PL/SQL.........................................................1-14, 1-15, 2-2 POSITION .................................................................... 3-18 POWER .......................................................................... 6-8 PREDICAT..................................................................... 4-2 PRESERVE ................................................................ 15-34 PRIMARY KEY................ 13-4, 16-3, 16-10, 16-15, 16-36 PRIVATE_SGA ......................................................... 19-12 Privilège objet ALTER..................................................................... 21-7 DELETE................................................................... 21-7 EXECUTE................................................................ 21-7 INSERT.................................................................... 21-7 READ....................................................................... 21-7 REFERENCE ........................................................... 21-7 © Tsoft – SQL pour Oracle10g Index SELECT....................................................................21-7 UPDATE ..................................................................21-7 Produit cartésien............................................................11-3 Produit relationnel .........................................................11-3 PROMPT.......................................................................2-21 Pseudocolonne................................... 3-13, 3-22, 8-7, 18-10 PUBLIC ......................................................................18-11 Q Q 7-20 QUIT ...............................................................................2-9 R RANK .........................................................................10-32 RATIO_TO_REPORT ................................................10-40 READ ONLY................................................................18-3 REFERENCES............................ 16-3, 16-15, 16-17, 21-19 REGEXP_INSTR..........................................................5-14 REGEXP_LIKE ............................................................4-11 REGEXP_REPLACE....................................................5-16 REGEXP_SUBSTR ......................................................5-11 REMARK......................................................................2-14 RENAME...........................................................16-30, 18-8 REPLACE..........................................................5-16, 15-16 RESSOURCE..............................................................21-31 REVOKE ...........................................................1-15, 21-19 RIGHT ........................................................................11-20 ROLLBACK .................................................................14-5 ROLLUP .............................. 10-3, 10-6, 10-9, 10-10, 10-12 ROUND ...............................................................6-13, 7-20 ROW_NUMBER ........................................................10-37 ROWID .................................................... 17-2, 17-4, 17-14 ROWNUM ....................................................................3-22 RPAD..............................................................................5-8 RTRIM..........................................................................5-10 RUN ................................................................................2-9 S SAVE ............................................................................2-10 SAVEPOINT ................................................................14-5 SCN (System Change Number)...................................14-18 SCN_TO_TIMESTAMP.............................................14-22 SECOND.......................................................................7-14 SELECT Le groupe....................................................................9-8 Opérateurs ensembliste .............................................12-2 Projection....................................................................3-3 Restriction...................................................................4-2 SCN | TIMESTAMP...............................................14-24 Sélection .....................................................................4-2 Sous-requête ...................................... 13-9, 13-10, 13-19 Tri du résultat............................................................3-18 VERSIONS BETWEEN.........................................14-26 Vue ...........................................................................18-3 SESSIONS_PER_USER .............................................19-11 SESSIONTIMEZONE ....................................................7-3 SET ..................................................................13-17, 13-19 SET ROLE ..................................................................21-30 © Tsoft – SQL pour Oracle10g SIGN............................................................................. 6-11 SIN................................................................................ 6-10 SINH............................................................................. 6-10 SOUNDEX ................................................................... 5-20 Sous-requête synchronisé............................................ 12-19 Sous-requêtes.............................................................. 12-10 SPOOL ......................................................................... 2-11 SQL.........................1-2, 1-12, 1-14, 1-15, 2-2, 3-2, 3-3, 5-2 SQL*Plus........................................................2-2, 2-4, 22-3 SQL*Plus Worksheet.................................................... 2-23 SQLPLUS....................................................................... 2-6 SQRT.............................................................................. 6-9 START ......................................................................... 2-10 START WITH ..................................................... 18-4, 18-9 STDDEV ........................................................................ 9-6 SUBSTR ....................................................................... 5-11 SUM ............................................................................... 9-4 SYS_EXTRACT_UTC................................................. 7-15 SYSDATE .................................................................... 3-13 SYSDBA ...................................................................... 21-6 SYSTIMESTAMP ................................................. 7-13, 8-7 T Tablespaces..................................................................... 1-8 TAN.............................................................................. 6-10 TANH ........................................................................... 6-10 TERMOUT................................................................... 2-18 TIME_ZONE................................................................ 7-12 TIMESTAMP ................................................................. 8-6 TIMESTAMP WITH LOCAL TIME ZONE.................. 8-6 TIMESTAMP WITH TIME ZONE................................ 8-6 TIMESTAMP_TO_SCN ............................................ 14-22 TIMEZONE_ABBR ..................................................... 7-14 TIMEZONE_HOUR..................................................... 7-14 TIMEZONE_MINUTE ................................................ 7-14 TIMEZONE_REGION ................................................. 7-14 tnsnames.ora ........................................................ 1-18, 1-20 TNSPING ..................................................................... 1-20 TO_BINARY_FLOAT ............................................ 8-8, 8-9 TO_CHAR............................................................... 8-4, 8-6 TO_DATE .................................................................... 8-10 TO_DSINTERVAL ...................................................... 8-13 TO_NCHAR ............................................................ 8-4, 8-6 TO_NUMBER................................................................ 8-8 TO_TIMESTAMP ........................................................ 8-11 TO_TIMESTAMP_TZ ................................................. 8-12 TO_YMINTERVAL..................................................... 8-13 Transaction ................................................................... 13-2 Transaction COMMIT ................................................................. 14-4 Transaction ROLLBACK ............................................................ 14-4 Transaction SAVEPOINT............................................................ 14-5 TRANSLATE ............................................................... 5-19 TRIMSPOOL................................................................ 2-18 TRUNC................................................................ 6-14, 7-22 TRUNCATE ............................................................... 16-39 Type de donnée BFILE..................................................................... 15-11 I-5 Index BINARY_DOUBLE...................................................6-3 BINARY_FLOAT ......................................................6-3 BLOB .....................................................................15-11 CHAR ...................................................... 4-6, 5-3, 15-21 CLOB .....................................................................15-11 DATE .........................................................................7-5 INTERVAL DAY TO SECOND............. 7-8, 8-13, 8-15 INTERVAL YEAR TO MONTH............ 7-8, 8-13, 8-14 LOB .............................................................15-11, 15-23 LONG .....................................................................15-11 LONG RAW...........................................................15-11 NCHAR ......................................................................5-3 NCLOB...................................................................15-11 NUMBER ................................................ 4-6, 6-2, 15-21 NVARCHAR2 ............................................................5-3 ROWID.....................................................................15-9 TIMESTAMP .............................................................7-5 TIMESTAMP WITH LOCAL TIME ZONE..............7-5 TIMESTAMP WITH TIME ZONE............................7-5 UROWID................................................................15-10 VARCHAR2............................................ 4-6, 5-3, 15-21 Types de données ............................................................1-9 TZ_OFFSET .................................................................7-15 U UNDEFINE...................................................................2-22 UNION..........................................................................12-4 UNIQUE ................................ 3-3, 16-3, 16-13, 16-15, 17-4 UPDATE..................................... 13-17, 13-21, 13-22, 18-4 UPPER ............................................................................5-5 USER ............................................................................2-15 UTC.................................................................................7-2 V V$TIMEZONE_NAMES................................................7-3 VALUES..............................................................13-4, 13-8 VARCHAR2 ...................................................................4-6 Variable de substitution.................................................2-19 VARIANCE ....................................................................9-6 VERIFY ........................................................................2-20 VERSIONS_ENDSCN ...............................................14-26 VERSIONS_ENDTIME .............................................14-26 VERSIONS_STARTSCN ...........................................14-26 VERSIONS_STARTTIME .........................................14-26 VSIZE .............................................................................5-3 Vue du dictionnaire ALL_ ........................................................................22-5 ALL_CATALOG....................................................22-11 ALL_CLU_COLUMNS .........................................22-19 ALL_CLUSTERS...................................................22-19 ALL_CONS_COLUMNS..............................16-4, 22-17 ALL_CONSTRAINTS ..................................16-3, 22-17 ALL_DIMENSIONS ..............................................22-19 I-6 ALL_IND_COLUMNS.......................................... 22-18 ALL_INDEXES ..................................................... 22-17 ALL_MVIEWS ...................................................... 22-19 ALL_OBJECTS ..................................................... 22-12 ALL_SEQUENCES ............................................... 22-16 ALL_SYNONYMS................................................ 22-16 ALL_TAB_COLUMNS......................................... 22-14 ALL_TABLES ....................................................... 22-13 ALL_TYPES.......................................................... 22-19 ALL_VIEWS ......................................................... 22-15 DBA_ ....................................................................... 22-5 DBA_AUDIT_OBJECT......................................... 22-27 DBA_AUDIT_SESSION ....................................... 22-27 DBA_AUDIT_STATEMENT................................ 22-27 DBA_AUDIT_TRAIL ........................................... 22-27 DBA_COL_PRIVS ................................................ 22-26 DBA_DATA_FILES.............................................. 22-21 DBA_DBLINK ...................................................... 22-19 DBA_EXTENTS.................................................... 22-23 DBA_LOBS ........................................................... 22-19 DBA_OBJ_AUDIT_OPTS .................................... 22-27 DBA_PROFILES ........................................ 20-13, 22-25 DBA_RECYCLEBIN ............................................ 22-16 DBA_ROLE_PRIVS.............................................. 22-26 DBA_ROLES......................................................... 22-25 DBA_SEGMENTS ................................................ 22-22 DBA_SYS_PRIVS................................................. 22-25 DBA_TAB_PRIVS ................................................ 22-25 DBA_TEMP_FILES .............................................. 22-22 DBA_TS_QUOTAS............................................... 22-22 DBA_USERS .............................................. 20-12, 22-25 DICT_COLUMNS ................................................... 22-7 DICTIONARY ......................................................... 22-6 SESSION_PRIVS .................................................... 21-4 USER_...................................................................... 22-5 USER_CATALOG................................................. 22-11 USER_CONS_COLUMNS...................................... 16-4 USER_CONSTRAINTS .......................................... 16-3 USER_TABLESPACES ........................................ 22-20 Vue dynamique V$FIXED_TABLE .................................................. 22-5 W WHEN .................................................... 8-23, 13-13, 13-16 WHERE ................. 4-2, 9-9, 9-11, 9-12, 11-4, 13-17, 13-20 WITH ADMIN OPTION................................... 21-9, 21-11 WITH GRANT OPTION............................................ 21-16 WW............................................................................... 7-20 Y YEAR ........................................................................... 7-14 YYYY........................................................................... 7-20 © Tsoft – SQL pour Oracle10g Avis du lecteur Vos critiques et suggestions sont indispensables ! TSOFT fait la mise à jour de ses ouvrages dès que vos remarques le justifient. Nous comptons sur vous pour nous faire part de toute correction à effectuer ou de toute amélioration à apporter. Vous avez choisi les ouvrages TSOFT pour vous former ou former d’autres personnes. Vous êtes donc les premiers concernés pour qu’à votre prochaine commande, le guide de formation ait été rectifié si nécessaire ou complété s’il le faut. Titre de l’ouvrage : ..................................................................................................................... Date de l'édition de cet ouvrage (voir dernière page) concernée par vos réponses : ................. Erreurs relevées (notez les pages concernées) Sujets à ajouter (précisez éventuellement le chapitre) Critiques et suggestions M. Mme Mlle..................................................................Prénom .............................................. Société..............................................................................Profession.......................................... Adresse ....................................................................................................................................... .................................................................................................................................................... Code postal ................Ville ......................................................... Pays ...................................... A télécopier ou découper et à envoyer à : TSOFT – Service lecteurs – 10 rue du Colisée 75008 Paris Fax : 01 53 76 03 64 - email : [email protected] Consultez tous nos ouvrages sur le site Web : www.Tsoft.fr © Tsoft – SQL pour Oracle10g Guide de formation TSOFT SQL pour Oracle 10g Référence : TS0075 Novembre 2006 © Tsoft – SQL pour Oracle10g