Apprendre SQL par l'exemple Tout particulièrement conçu pour les étudiants et les débutants, cet ouvrage permet d'acquérir les notions essentielles du langage SQL par le biais d'Oracle, leader des systèmes de gestion de bases de données. Concis et de difficulté progressive, il est émaillé de nombreux exemples et de 50 exercices corrigés qui illustrent tous les aspects fondamentaux de SQL. Couvrant les versions 11 g, 10 g et 9 i d'Oracle, il permet également de se familiariser avec les principales fonctionnalités de ce logiciel, ainsi qu'avec les API les plus utilisées (JBDC et PHP). Mise à jour et augmentée, la troisième édition de cet ouvrage consacre en outre un chapitre à l'interopérabilité entre SQL et XML (documents et grammaires) et à la gestion de ressources avec XML DB Repository. À qui s'adresse cet ouvrage? À tous ceux qui souhaitent s'initier à SQL, à Oracle ou à la gestion de bases de données Aux développeurs C, C++, Java, PHP et XML qui souhaitent stocker leurs données Installez vous-même Oracle! Cet ouvrage décrit en détail la procédure d'installation des versions 11 g, 10 g, 10 g Express et 9 i d'Oracle. Ces versions peuvent être téléchargées gratuitement sur le site d'Oracle : destinées à des fins non commerciales, elles sont complètes et sans limitation de durée. Sur le site www.editions-eyrolles.com Téléchargez le code source des exemples et le corrigé des exercices Consultez les mises à jour et les compléments Dialoguez avec l'auteur Table des matières......Page 7 Remerciements......Page 19 Guide de lecture......Page 21 Contact avec l’auteur et site Web......Page 23 SQL, une norme, un succès......Page 25 Modèle de données......Page 26 Oracle......Page 27 Installation d’Oracle......Page 33 Les interfaces SQL*Plus......Page 43 Partie I SQL de base......Page 53 Tables relationnelles......Page 55 Index......Page 64 Tables organisées en index......Page 68 Destruction d’un schéma......Page 70 Insertions d’enregistrements (INSERT)......Page 75 Séquences......Page 81 Modifications de colonnes......Page 87 Suppressions d’enregistrements......Page 94 Intégrité référentielle......Page 95 Flottants......Page 100 Renommer une table (RENAME)......Page 109 Modifications structurelles (ALTER TABLE)......Page 110 Modifications comportementales......Page 113 Contraintes différées......Page 121 Généralités......Page 133 Projection (éléments du SELECT)......Page 135 Restriction (WHERE)......Page 141 Fonctions......Page 144 Regroupements......Page 152 Opérateurs ensemblistes......Page 157 Jointures......Page 163 Division......Page 183 Requêtes hiérarchiques......Page 186 Mises à jour conditionnées (fusions)......Page 196 Expressions régulières......Page 199 Extractions diverses......Page 209 5 Contrôle des données......Page 217 Gestion des utilisateurs......Page 218 Privilèges......Page 230 Rôles......Page 238 Vues......Page 245 Synonymes......Page 261 Dictionnaire des données......Page 263 Partie II PL/SQL......Page 277 Généralités......Page 279 Variables......Page 283 Types de données PL/SQL......Page 293 Structures de contrôles......Page 296 Interactions avec la base......Page 304 Transactions......Page 312 Sous-programmes......Page 319 Paquetages (packages)......Page 330 Curseurs......Page 334 Exceptions......Page 343 Déclencheurs......Page 356 SQL dynamique......Page 380 Partie III SQL avancé......Page 387 Généralités......Page 389 Extraction d’un enregistrement......Page 394 Utilisation de curseurs......Page 396 Utilisation de Microsoft Visual C++......Page 399 Généralités......Page 401 Connexion à une base......Page 406 États d’une connexion......Page 410 Correspondances de types......Page 413 Interactions avec la base......Page 414 Extraction de données......Page 415 Curseurs modifiables......Page 421 Interface ResultSetMetaData......Page 426 Interface DatabaseMetaData......Page 427 Instructions paramétrées (PreparedStatement)......Page 428 Appels de sous-programmes......Page 431 Transactions......Page 433 Traitement des exceptions......Page 435 Généralités......Page 439 Intégration de SQL......Page 442 Transactions......Page 450 Appels de sous-programmes......Page 452 Traitement des exceptions......Page 455 Contextes de connexion......Page 457 SQL dynamique......Page 459 Procédures stockées Java......Page 463 Procédures externes Java......Page 474 Configuration minimale d’Apache......Page 477 PL/SQL Web Toolkit......Page 479 PL/SQL Server Pages......Page 488 Intégration de PHP......Page 492 Généralités......Page 511 Stockages XMLType......Page 514 Autres fonctionnalités......Page 540 XML DB Repository......Page 548 Annexe : Bibliographie et webographie......Page 559 Index......Page 561 Table des matières 7 Remerciements 19 Avant-propos 21 Guide de lecture 21 Conventions d’écriture 23 Contact avec l’auteur et site Web 23 Introduction 25 SQL, une norme, un succès 25 Modèle de données 26 Oracle 27 Installation d’Oracle 33 Les interfaces SQL*Plus 43 Partie I SQL de base 53 1 Définition des données 55 Tables relationnelles 55 Index 64 Tables organisées en index 68 Destruction d’un schéma 70 2 Manipulation des données 75 Insertions d’enregistrements (INSERT) 75 Séquences 81 Modifications de colonnes 87 Suppressions d’enregistrements 94 Intégrité référentielle 95 Flottants 100 3 Évolution d’un schéma 109 Renommer une table (RENAME) 109 Modifications structurelles (ALTER TABLE) 110 Modifications comportementales 113 Contraintes différées 121 4 Interrogation des données 133 Généralités 133 Projection (éléments du SELECT) 135 Restriction (WHERE) 141 Fonctions 144 Regroupements 152 Opérateurs ensemblistes 157 Jointures 163 Division 183 Requêtes hiérarchiques 186 Mises à jour conditionnées (fusions) 196 Expressions régulières 199 Extractions diverses 209 5 Contrôle des données 217 Gestion des utilisateurs 218 Privilèges 230 Rôles 238 Vues 245 Synonymes 261 Dictionnaire des données 263 Partie II PL/SQL 277 6 Bases du PL/SQL 279 Généralités 279 Variables 283 Types de données PL/SQL 293 Structures de contrôles 296 Interactions avec la base 304 Transactions 312 7 Programmation avancée 319 Sous-programmes 319 Paquetages (packages) 330 Curseurs 334 Exceptions 343 Déclencheurs 356 SQL dynamique 380 Partie III SQL avancé 387 8 Le précompilateur Pro*C/C++ 389 Généralités 389 Extraction d’un enregistrement 394 Mises à jour 396 Utilisation de curseurs 396 Utilisation de Microsoft Visual C++ 399 9 L’interface JDBC 401 Généralités 401 Connexion à une base 406 États d’une connexion 410 Correspondances de types 413 Interactions avec la base 414 Extraction de données 415 Curseurs modifiables 421 Interface ResultSetMetaData 426 Interface DatabaseMetaData 427 Instructions paramétrées (PreparedStatement) 428 Appels de sous-programmes 431 Transactions 433 Traitement des exceptions 435 10 L’approche SQLJ 439 Généralités 439 Intégration de SQL 442 Transactions 450 Appels de sous-programmes 452 Traitement des exceptions 455 Contextes de connexion 457 SQL dynamique 459 11 Procédures stockées et externes 463 Procédures stockées Java 463 Procédures externes Java 474 12 Oracle et le Web 477 Configuration minimale d’Apache 477 PL/SQL Web Toolkit 479 PL/SQL Server Pages 488 Intégration de PHP 492 13 Oracle XML DB 511 Généralités 511 Stockages XMLType 514 Autres fonctionnalités 540 XML DB Repository 548 Annexe : Bibliographie et webographie 559 Index 561