Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise Manager 10g Grid Control I-8 Systèmes de gestion de base de données relationnelle et orientés objet I-9 Plate-forme Internet d'Oracle I-10 Cycle de développement d'un système I-11 Stockage des données sur différents supports I-13 Concept de base de données relationnelle I-14 Définition d'une base de données relationnelle I-15 Modèles de données I-16 Modèle entité/relation I-17 Conventions de la modélisation entité/relation I-19 Mettre en relation plusieurs tables I-21 Terminologie des bases de données relationnelles I-23 Propriétés des bases de données relationnelles I-25 Communiquer avec un SGBDR par l'intermédiaire d'instructions SQL I-26 Le système de gestion de base de données relationnelle d'Oracle I-27 Instructions SQL I-28 Tables utilisées dans le cours I-29 Synthèse I-30 1Extraire des données à l'aide de l'instruction SQL SELECT Objectifs 1-2 Fonctionnalités des instructions SQL SELECT 1-3 Instruction SELECT de base 1-4 Sélectionner toutes les colonnes 1-5 Sélectionner des colonnes spécifiques 1-6 Ecrire des instructions SQL 1-7 Caractéristiques par défaut des en-têtes de colonne 1-8 Expressions arithmétiques 1-9 Utiliser des opérateurs arithmétiques 1-10 Priorité des opérateurs 1-11 Définir une valeur NULL 1-12 Valeurs NULL dans les expressions arithmétiques 1-13 Définir un alias de colonne 1-14 Utiliser des alias de colonne 1-15 Opérateur de concaténation 1-16 Chaînes de caractères littérales 1-17 Utiliser des chaînes de caractères littérales 1-18 Opérateur de délimitation (q) alternatif 1-19 Lignes en double 1-20 Sommaire iii
Interaction entre SQL et iSQL*Plus 1-21 Comparaison entre les instructions SQL et les commandes iSQL*Plus 1-22 Présentation de iSQL*Plus 1-23 Se connecter à iSQL*Plus 1-25 Environnement iSQL*Plus 1-26 Afficher la structure d'une table 1-27 Interagir avec des fichiers script 1-29 Page iSQL*Plus History 1-33 Définir les préférences iSQL*Plus 1-35 Définir la préférence d'emplacement de sortie 1-36 Synthèse 1-37 Présentation de l'exercice Restreindre et trier les données Objectifs 2-2 Limiter les lignes à l'aide d'une sélection 2-3 Limiter les lignes sélectionnées 2-4 Utiliser la clause WHERE 2-5 Chaînes de caractères et dates 2-6 Conditions de comparaison 2-7 Utiliser des conditions de comparaison 2-8 Utiliser la condition BETWEEN 2-9 Utiliser la condition IN 2-10 Utiliser la condition LIKE 2-11 Utiliser la condition NULL 2-13 Conditions logiques 2-14 Utiliser l'opérateur AND 2-15 Utiliser l'opérateur OR 2-16 Utiliser l'opérateur NOT 2-17 Règles de priorité 2-18 Utiliser la clause ORDER BY 2-20 Trier 2-21 Variables de substitution 2-22 Utiliser la variable de substitution & 2-24 Valeurs de type caractère et date avec des variables de substitution 2-26 Définir des noms de colonne, des expressions et du texte 2-27 Utiliser la variable de substitution && 2-28 Utiliser la commande iSQL*Plus DEFINE 2-29 Utiliser la commande VERIFY 2-30 Synthèse 2-31 Présentation de l'exercice iv
3Utiliser des fonctions monoligne afin de personnaliser la sortie Objectifs 3-2 Fonctions SQL 3-3 Deux types de fonction SQL 3-4 Fonctions monoligne 3-5 Fonctions de type caractère 3-7 Fonctions de manipulation de la casse 3-9 Utiliser les fonctions de manipulation de la casse 3-10 Fonctions de manipulation de caractères 3-11 Utiliser les fonctions de manipulation de caractères 3-12 Fonctions numériques 3-13 Utiliser la fonction ROUND 3-14 Utiliser la fonction TRUNC 3-15 Utiliser la fonction MOD 3-16 Utiliser les dates 3-17 Calculs arithmétiques sur des dates 3-20 Utiliser des opérateurs arithmétiques avec des dates 3-21 Fonctions de date 3-22 Utiliser des fonctions de date 3-23 Exercice 3 : présentation de la partie Fonctions de conversion 3-26 Conversion implicite de type de données 3-27 Conversion explicite de type de données 3-29 Utiliser la fonction TO_CHAR avec des dates 3-32 Eléments du modèle de format de date 3-33 Utiliser la fonction TO_CHAR avec des dates 3-37 Utiliser la fonction TO_CHAR avec des nombres 3-38 Utiliser les fonctions TO_NUMBER et TO_DATE 3-41 Format de date RR 3-43 Exemple de format de date RR 3-44 Imbriquer des fonctions 3-45 Fonctions générales 3-47 Fonction NVL 3-48 Utiliser la fonction NVL 3-49 Utiliser la fonction NVL Utiliser la fonction NULLIF 3-51 Utiliser la fonction COALESCE 3-52 Expressions conditionnelles 3-54 Expression CASE 3-55 Utiliser l'expression CASE 3-56 Fonction DECODE 3-57 Utiliser la fonction DECODE 3-58 Synthèse 3-60 Exercice 3 : présentation de la partie v
4Afficher des données agrégées à l'aide des fonctions de groupe Objectifs 4-2 Que sont les fonctions de groupe ? 4-3 Types de fonction de groupe 4-4 Fonctions de groupe : syntaxe 4-5 Utiliser les fonctions AVG et SUM 4-6 Utiliser les fonctions MIN et MAX 4-7 Utiliser la fonction COUNT 4-8 Utiliser le mot-clé DISTINCT 4-9 Fonctions de groupe et valeurs NULL 4-10 Créer des groupes de données 4-11 Créer des groupes de données : syntaxe de la clause GROUP BY 4-12 Utiliser la clause GROUP BY 4-13 Regrouper en fonction de plusieurs colonnes 4-15 Utiliser la clause GROUP BY sur plusieurs colonnes 4-16 Interrogations illégales avec des fonctions de groupe 4-17 Restreindre les résultats des groupes 4-19 Restreindre les résultats des groupes à l'aide de la clause HAVING 4-20 Utiliser la clause HAVING 4-21 Imbriquer des fonctions de groupe 4-23 Synthèse 4-24 Présentation de l'exercice Afficher des données de plusieurs tables Objectifs 5-2 Obtenir des données de plusieurs tables 5-3 Types de jointure 5-4 Joindre des tables à l'aide de la syntaxe SQL: Créer des jointures naturelles 5-6 Extraire des enregistrements à l'aide de jointures naturelles 5-7 Créer des jointures avec la clause USING 5-8 Joindre des noms de colonne 5-9 Extraire des enregistrements avec la clause USING 5-10 Différencier les noms de colonne 5-11 Utiliser des alias de table 5-12 Créer des jointures avec la clause ON 5-13 Extraire des enregistrements avec la clause ON 5-14 Auto-jointures avec la clause ON 5-15 Appliquer des conditions supplémentaires à une jointure 5-17 Créer des jointures à trois liens avec la clause ON 5-18 Non-équijointures 5-19 Extraire des enregistrements à l'aide de non-équijointures 5-20 Jointures externes 5-21 Comparaison des jointures INNER et OUTER 5-22 LEFT OUTER JOIN 5-23 RIGHT OUTER JOIN 5-24 vi
FULL OUTER JOIN 5-25 Produits cartésiens 5-26 Générer un produit cartésien 5-27 Créer des jointures croisées 5-28 Synthèse 5-29 Présentation de l'exercice Utiliser des sous-interrogations pour résoudre des interrogations Objectifs 6-2 Utiliser une sous-interrogation pour résoudre un problème 6-3 Syntaxe d'une sous-interrogation 6-4 Utiliser une sous-interrogation 6-5 Règles d'utilisation des sous-interrogations 6-6 Types de sous-interrogation 6-7 Sous-interrogations monoligne 6-8 Exécuter des sous-interrogations monoligne 6-9 Utiliser des fonctions de groupe dans une sous-interrogation 6-10 La clause HAVING avec des sous-interrogations 6-11 Quel est le problème de cette instruction ? 6-12 Cette instruction renvoie-t-elle des lignes ? 6-13 Sous-interrogations multiligne 6-14 Utiliser l'opérateur ANY dans les sous-interrogations multiligne 6-15 Utiliser l'opérateur ALL dans les sous-interrogations multiligne 6-16 Valeurs NULL dans une sous-interrogation 6-17 Synthèse 6-19 Présentation de l'exercice Utiliser les opérateurs ensemblistes Objectifs 7-2 Opérateurs ensemblistes 7-3 Tables utilisées dans ce chapitre 7-4 Opérateur UNION 7-8 Utiliser l'opérateur UNION 7-9 Opérateur UNION ALL 7-11 Utiliser l'opérateur UNION ALL 7-12 Opérateur INTERSECT 7-13 Utiliser l'opérateur INTERSECT 7-14 Opérateur MINUS 7-15 Règles relatives aux opérateurs ensemblistes 7-17 Le serveur Oracle et les opérateurs ensemblistes 7-18 Mettre en correspondance les instructions 7-19 Mettre en correspondance l'instruction : exemple 7-20 Contrôler l'ordre des lignes 7-21 Synthèse 7-23 Présentation de l'exercice vii
8Manipuler les données Objectifs 8-2 Langage de manipulation de données 8-3 Ajouter une nouvelle ligne à une table 8-4 Syntaxe de l'instruction INSERT 8-5 Insérer de nouvelles lignes 8-6 Insérer des lignes avec des valeurs NULL 8-7 Insérer des valeurs spéciales 8-8 Insérer des valeurs de date spécifiques 8-9 Créer un script 8-10 Copier des lignes à partir d'une autre table 8-11 Modifier des données dans une table 8-12 Syntaxe de l'instruction UPDATE 8-13 Mettre à jour des lignes dans une table 8-14 Mettre à jour deux colonnes avec une sous-interrogation 8-15 Mettre à jour des lignes en fonction d'une autre table 8-16 Supprimer une ligne d'une table 8-17 Instruction DELETE 8-18 Supprimer des lignes d'une table 8-19 Supprimer des lignes en fonction d'une autre table 8-20 Instruction TRUNCATE 8-21 Utiliser une sous-interrogation dans une instruction INSERT 8-22 Transactions de base de données 8-24 Avantages des instructions COMMIT et ROLLBACK 8-26 Gérer les transactions 8-27 Annuler les modifications apportées jusqu'à un marqueur 8-28 Traitement implicite des transactions 8-29 Etat des données avant l'opération COMMIT ou ROLLBACK 8-31 Etat des données après l'opération COMMIT 8-32 Valider les données 8-33 Etat des données après l'opération ROLLBACK 8-34 Annulation au niveau instruction 8-36 Cohérence en lecture 8-37 Implémentation de la cohérence en lecture 8-38 Synthèse 8-39 Présentation de l'exercice Utiliser des instructions LDD pour créer et gérer des tables Objectifs 9-2 Objets de base de données 9-3 Règles d'appellation 9-4 Instruction CREATE TABLE 9-5 Référencer les tables d'un autre utilisateur 9-6 Option DEFAULT 9-7 Créer des tables 9-8 Types de données 9-9 Types de données date-heure 9-11 viii
Type de données INTERVAL DAY TO SECOND 9-16 Inclure des contraintes 9-17 Règles relatives aux contraintes 9-18 Définir des contraintes 9-19 Contrainte NOT NULL 9-21 Contrainte UNIQUE 9-22 Contrainte PRIMARY KEY 9-24 Contrainte FOREIGN KEY 9-25 Contrainte FOREIGN KEY : mots-clés 9-27 Contrainte CHECK 9-28 CREATE TABLE : exemple 9-29 Violation de contraintes 9-30 Créer une table avec une sous-interrogation 9-32 Instruction ALTER TABLE 9-34 Supprimer une table 9-35 Synthèse 9-36 Présentation de l'exercice Créer d'autres objets de schéma Objectifs 10-2 Objets de base de données 10-3 Qu'est-ce qu'une vue ? 10-4 Avantages des vues 10-5 Vues simples et vues complexes 10-6 Créer une vue 10-7 Extraire des données d'une vue Modifier une vue Créer une vue complexe Règles concernant les opérations LMD sur une vue Utiliser la clause WITH CHECK OPTION Empêcher les opérations LMD Supprimer une vue Exercice 10 : présentation de la partie Séquences Instruction CREATE SEQUENCE : syntaxe Créer une séquence Pseudo-colonnes NEXTVAL et CURRVAL Utiliser une séquence Mettre en mémoire cache les valeurs d'une séquence Modifier une séquence Règles de modification d'une séquence Index Comment les index sont-ils créés ? Créer un index Règles de création des index Supprimer un index ix
Synonymes Créer et supprimer des synonymes Synthèse Exercice 10 : présentation de la partie Gérer les objets à l'aide de vues du dictionnaire de données Objectifs 11-2 Le dictionnaire de données 11-3 Structure du dictionnaire de données 11-4 Comment utiliser les vues du dictionnaire ? 11-6 Vue USER_OBJECTS 11-7 Informations relatives aux tables 11-9 Informations relatives aux colonnes Informations relatives aux contraintes Informations relatives aux vues Informations relatives aux séquences Informations relatives aux synonymes Ajouter des commentaires à une table Synthèse Présentation de l'exercice ASolutions des exercices BDescription et données des tables CSyntaxe des jointures Oracle DUtiliser SQL*Plus Index Exercices complémentaires Exercices complémentaires : description et données des tables Exercices complémentaires : solutions x