464494 administrez-vos-bases-de-donnees-avec-mysql

413

Click here to load reader

Transcript of 464494 administrez-vos-bases-de-donnees-avec-mysql

  • Administrez vosbases de donnes

    avec MySQLPar Chantal Gribaumont (Taguan)

    www.siteduzero.com

    Licence Creative Commons 6 2.0Dernire mise jour le 5/10/2012

  • Sommaire 2Sommaire ........................................................................................................................................... 7Partager .............................................................................................................................................. 9 Administrez vos bases de donnes avec MySQL .............................................................................. 9Quelques exemples d'applications .................................................................................................................................... 9Points abords dans ce tutoriel .........................................................................................................................................

    11Partie 1 : MySQL et les bases du langage SQL ................................................................................ 11Introduction ...................................................................................................................................................................... 11Concepts de base ...................................................................................................................................................................................................... 11Base de donnes ....................................................................................................................................................................................................... 11SGBD ........................................................................................................................................................................................................................ 11SGBDR ...................................................................................................................................................................................................................... 12Le langage SQL ........................................................................................................................................................................................................ 13Prsentation succincte de MySQL... ......................................................................................................................................................................... 13Un peu d'histoire ....................................................................................................................................................................................................... 13Mise en garde ............................................................................................................................................................................................................ 13... et de ses concurrents ............................................................................................................................................................................................ 13Oracle database ........................................................................................................................................................................................................ 13PostgreSQL ............................................................................................................................................................................................................... 14MS Access ................................................................................................................................................................................................................. 14SQLite ....................................................................................................................................................................................................................... 14Organisation d'une base de donnes ........................................................................................................................................................................

    15Installation de MySQL ..................................................................................................................................................... 16Avant-propos ............................................................................................................................................................................................................. 16Ligne de commande .................................................................................................................................................................................................. 16Interface graphique ................................................................................................................................................................................................... 17Pourquoi utiliser la ligne de commande ? ................................................................................................................................................................. 17Installation du logiciel ................................................................................................................................................................................................ 17Windows .................................................................................................................................................................................................................... 18Mac OS ..................................................................................................................................................................................................................... 19Linux .......................................................................................................................................................................................................................... 20Connexion MySQL ................................................................................................................................................................................................. 20Connexion au client ................................................................................................................................................................................................... 22Dconnexion ............................................................................................................................................................................................................. 22Syntaxe SQL et premires commandes .................................................................................................................................................................... 22"Hello World !" ........................................................................................................................................................................................................... 22Syntaxe ..................................................................................................................................................................................................................... 24Un peu de math ......................................................................................................................................................................................................... 24Utilisateur ..................................................................................................................................................................................................................

    26Les types de donnes ..................................................................................................................................................... 26Types numriques ..................................................................................................................................................................................................... 26Nombres entiers ........................................................................................................................................................................................................ 27Nombres dcimaux ................................................................................................................................................................................................... 27Types alphanumriques ............................................................................................................................................................................................ 27Chanes de type texte ............................................................................................................................................................................................... 28Chanes de type binaire ............................................................................................................................................................................................ 29SET et ENUM ............................................................................................................................................................................................................ 31Types temporels ........................................................................................................................................................................................................ 31DATE, TIME et DATETIME ........................................................................................................................................................................................ 33YEAR ......................................................................................................................................................................................................................... 33TIMESTAMP .............................................................................................................................................................................................................. 33La date par dfaut .....................................................................................................................................................................................................

    33Cration d'une base de donnes .................................................................................................................................... 34Avant-propos : conseils et conventions ..................................................................................................................................................................... 34Conseils .................................................................................................................................................................................................................... 34Conventions .............................................................................................................................................................................................................. 35Mise en situation ....................................................................................................................................................................................................... 35Cration et suppression d'une base de donnes ...................................................................................................................................................... 35Cration ..................................................................................................................................................................................................................... 35Suppression .............................................................................................................................................................................................................. 36Utilisation d'une base de donnes ............................................................................................................................................................................

    37Cration de tables ........................................................................................................................................................... 38Dfinition des colonnes ............................................................................................................................................................................................. 38Type de colonne ........................................................................................................................................................................................................ 38NULL or NOT NULL ? ................................................................................................................................................................................................ 38Rcapitulatif .............................................................................................................................................................................................................. 39Introduction aux cls primaires ................................................................................................................................................................................. 39Identit ....................................................................................................................................................................................................................... 39Cl primaire ............................................................................................................................................................................................................... 39Auto-incrmentation .................................................................................................................................................................................................. 40Les moteurs de tables ............................................................................................................................................................................................... 40 Prciser un moteur lors de la cration de la table .................................................................................................................................................... 40Syntaxe de CREATE TABLE ..................................................................................................................................................................................... 40Syntaxe ..................................................................................................................................................................................................................... 42Application : cration de Animal ................................................................................................................................................................................

    2/414

    www.siteduzero.com

  • 42Vrifications ............................................................................................................................................................................................................... 42Suppression d'une table ............................................................................................................................................................................................

    42Modification d'une table ................................................................................................................................................... 43Syntaxe de la requte ............................................................................................................................................................................................... 43Ajout et suppression d'une colonne .......................................................................................................................................................................... 43Ajout .......................................................................................................................................................................................................................... 44Suppression .............................................................................................................................................................................................................. 44Modification de colonne ............................................................................................................................................................................................. 44Changement du nom de la colonne .......................................................................................................................................................................... 44Changement du type de donnes .............................................................................................................................................................................

    45Insertion de donnes ....................................................................................................................................................... 46Syntaxe de INSERT .................................................................................................................................................................................................. 46Insertion sans prciser les colonnes ......................................................................................................................................................................... 47Insertion en prcisant les colonnes ........................................................................................................................................................................... 47Insertion multiple ....................................................................................................................................................................................................... 47Syntaxe alternative de MySQL .................................................................................................................................................................................. 48Utilisation de fichiers externes .................................................................................................................................................................................. 48Excuter des commandes SQL partir d'un fichier .................................................................................................................................................. 49Insrer des donnes partir d'un fichier format ...................................................................................................................................................... 50Remplissage de la base ............................................................................................................................................................................................ 50Excution de commandes SQL ................................................................................................................................................................................. 51LOAD DATA INFILE ...................................................................................................................................................................................................

    52Slection de donnes ...................................................................................................................................................... 53Syntaxe de SELECT ................................................................................................................................................................................................. 53Slectionner toutes les colonnes .............................................................................................................................................................................. 54La clause WHERE .................................................................................................................................................................................................... 54Les oprateurs de comparaison ................................................................................................................................................................................ 54Combinaisons de critres .......................................................................................................................................................................................... 56Slection complexe ................................................................................................................................................................................................... 57Le cas de NULL ......................................................................................................................................................................................................... 58Tri des donnes ......................................................................................................................................................................................................... 58Tri ascendant ou descendant .................................................................................................................................................................................... 59Trier sur plusieurs colonnes ...................................................................................................................................................................................... 59liminer les doublons ................................................................................................................................................................................................ 59Restreindre les rsultats ........................................................................................................................................................................................... 59Syntaxe ..................................................................................................................................................................................................................... 61Syntaxe alternative ....................................................................................................................................................................................................

    61largir les possibilits de la clause WHERE ................................................................................................................... 62Recherche approximative ......................................................................................................................................................................................... 63Sensibilit la casse ................................................................................................................................................................................................. 63Recherche dans les numriques ............................................................................................................................................................................... 64Recherche dans un intervalle .................................................................................................................................................................................... 64Set de critres ...........................................................................................................................................................................................................

    65Suppression et modification de donnes ........................................................................................................................ 66Sauvegarde d'une base de donnes ......................................................................................................................................................................... 67Suppression .............................................................................................................................................................................................................. 67Modification ...............................................................................................................................................................................................................

    68Partie 2 : Index, jointures et sous-requtes ....................................................................................... 69Index ................................................................................................................................................................................ 69Etat actuelle de la base de donnes ......................................................................................................................................................................... 70Qu'est-ce qu'un index ? ............................................................................................................................................................................................. 72Intrt des index ........................................................................................................................................................................................................ 72Dsavantages ........................................................................................................................................................................................................... 72Index sur plusieurs colonnes ..................................................................................................................................................................................... 74Index sur des colonnes de type alphanumrique ...................................................................................................................................................... 75Les diffrents types d'index ....................................................................................................................................................................................... 75Index UNIQUE ........................................................................................................................................................................................................... 76Index FULLTEXT ....................................................................................................................................................................................................... 76Cration et suppression des index ............................................................................................................................................................................ 76Ajout des index lors de la cration de la table ........................................................................................................................................................... 78Ajout des index aprs cration de la table ................................................................................................................................................................ 79Complment pour la cration d'un index UNIQUE - le cas des contraintes .............................................................................................................. 79Suppression d'un index ............................................................................................................................................................................................. 80Recherches avec FULLTEXT .................................................................................................................................................................................... 80Comment fonctionne la recherche FULLTEXT ? ....................................................................................................................................................... 81Les types de recherche .............................................................................................................................................................................................

    89Cls primaires et trangres ........................................................................................................................................... 89Cls primaires, le retour ............................................................................................................................................................................................ 89Choix de la cl primaire ............................................................................................................................................................................................. 90Cration d'une cl primaire ....................................................................................................................................................................................... 91Suppression de la cl primaire .................................................................................................................................................................................. 91Cls trangres ......................................................................................................................................................................................................... 92Cration ..................................................................................................................................................................................................................... 93Suppression d'une cl trangre ............................................................................................................................................................................... 93Modification de notre base ........................................................................................................................................................................................ 94La table Espece ........................................................................................................................................................................................................ 95La table Animal ..........................................................................................................................................................................................................

    97Jointures .......................................................................................................................................................................... 98Principe des jointures et notion d'alias ...................................................................................................................................................................... 98Principe des jointures ................................................................................................................................................................................................ 99Notion d'alias .............................................................................................................................................................................................................

    Sommaire 3/414

    www.siteduzero.com

  • 100Jointure interne ........................................................................................................................................................................................................ 101Syntaxe ................................................................................................................................................................................................................... 103Pourquoi "interne" ? ................................................................................................................................................................................................ 104Jointure externe ....................................................................................................................................................................................................... 104Jointures par la gauche ........................................................................................................................................................................................... 105Jointures par la droite .............................................................................................................................................................................................. 106Syntaxes alternatives .............................................................................................................................................................................................. 106Jointures avec USING ............................................................................................................................................................................................. 106Jointures naturelles ................................................................................................................................................................................................. 107Jointures sans JOIN ................................................................................................................................................................................................ 108Exemples d'application et exercices ....................................................................................................................................................................... 108A/ Commenons par des choses faciles ................................................................................................................................................................. 109B/ Compliquons un peu les choses ......................................................................................................................................................................... 110C/ Et maintenant, le test ultime ! ..............................................................................................................................................................................

    112Sous-requtes ............................................................................................................................................................... 113Sous-requtes dans le FROM ................................................................................................................................................................................. 114Les rgles respecter ............................................................................................................................................................................................. 115Sous-requtes dans les conditions .......................................................................................................................................................................... 115Comparaisons ......................................................................................................................................................................................................... 118Conditions avec IN et NOT IN ................................................................................................................................................................................. 119Conditions avec ANY, SOME et ALL ........................................................................................................................................................................ 120Sous-requtes corrles .........................................................................................................................................................................................

    122Jointures et sous-requtes : modification de donnes ................................................................................................. 123Insertion ................................................................................................................................................................................................................... 123Sous-requte pour l'insertion .................................................................................................................................................................................. 125Modification ............................................................................................................................................................................................................. 125Utilisation des sous-requtes .................................................................................................................................................................................. 127Modification avec jointure ........................................................................................................................................................................................ 127Suppression ............................................................................................................................................................................................................ 127Utilisation des sous-requtes .................................................................................................................................................................................. 128Suppression avec jointure .......................................................................................................................................................................................

    128Union de plusieurs requtes ......................................................................................................................................... 129Syntaxe ................................................................................................................................................................................................................... 129Les rgles ................................................................................................................................................................................................................ 131UNION ALL .............................................................................................................................................................................................................. 132LIMIT et ORDER BY ................................................................................................................................................................................................ 132LIMIT ....................................................................................................................................................................................................................... 134ORDER BY ..............................................................................................................................................................................................................

    135Options des cls trangres ......................................................................................................................................... 136Option sur suppression des cls trangres ........................................................................................................................................................... 136Petits rappels .......................................................................................................................................................................................................... 136Suppression d'une rfrence .................................................................................................................................................................................. 138Option sur modification des cls trangres ........................................................................................................................................................... 139Utilisation de ces options dans notre base .............................................................................................................................................................. 139Modifications ........................................................................................................................................................................................................... 140Suppressions .......................................................................................................................................................................................................... 140Les requtes ............................................................................................................................................................................................................

    141Violation de contrainte d'unicit ..................................................................................................................................... 142Ignorer les erreurs ................................................................................................................................................................................................... 142Insertion ................................................................................................................................................................................................................... 142Modification ............................................................................................................................................................................................................. 143LOAD DATA INFILE ................................................................................................................................................................................................. 143Remplacer l'ancienne ligne ..................................................................................................................................................................................... 145Remplacement de plusieurs lignes ......................................................................................................................................................................... 145LOAD DATA INFILE ................................................................................................................................................................................................. 146Modifier l'ancienne ligne .......................................................................................................................................................................................... 146Syntaxe ................................................................................................................................................................................................................... 147Attention : plusieurs contraintes d'unicit sur la mme table ..................................................................................................................................

    147Partie 3 : Fonctions : nombres, chanes et agrgats ....................................................................... 148Rappels et introduction ................................................................................................................................................. 148Etat actuel de la base de donnes .......................................................................................................................................................................... 150Rappels et manipulation simple de nombres .......................................................................................................................................................... 150Rappels ................................................................................................................................................................................................................... 151Combiner les donnes avec des oprations mathmatiques ................................................................................................................................. 153Dfinition d'une fonction .......................................................................................................................................................................................... 155Fonctions scalaires vs fonctions d'agrgation ......................................................................................................................................................... 155Quelques fonctions gnrales ................................................................................................................................................................................. 156Informations sur l'environnement actuel .................................................................................................................................................................. 156Informations sur la dernire requte ....................................................................................................................................................................... 158Convertir le type de donnes ..................................................................................................................................................................................

    160Fonctions scalaires ....................................................................................................................................................... 160Manipulation de nombres ........................................................................................................................................................................................ 160Arrondis ................................................................................................................................................................................................................... 161Exposants et racines ............................................................................................................................................................................................... 162Hasard ..................................................................................................................................................................................................................... 163Divers ...................................................................................................................................................................................................................... 163Manipulation de chanes de caractres ................................................................................................................................................................... 163Longueur et comparaison ....................................................................................................................................................................................... 164Retrait et ajout de caractres .................................................................................................................................................................................. 166Recherche et remplacement ................................................................................................................................................................................... 168Concatnation .........................................................................................................................................................................................................

    Sommaire 4/414

    www.siteduzero.com

  • 168FIELD(), une fonction bien utile pour le tri ............................................................................................................................................................... 169Code ASCII .............................................................................................................................................................................................................. 169Exemples d'application et exercices ....................................................................................................................................................................... 169On commence par du facile .................................................................................................................................................................................... 170Puis on corse un peu ..............................................................................................................................................................................................

    172Fonctions d'agrgation .................................................................................................................................................. 172Fonctions statistiques .............................................................................................................................................................................................. 172Nombre de lignes .................................................................................................................................................................................................... 173Minimum et maximum ............................................................................................................................................................................................. 173Somme et moyenne ................................................................................................................................................................................................ 174Concatnation ......................................................................................................................................................................................................... 174Principe ................................................................................................................................................................................................................... 174Syntaxe ................................................................................................................................................................................................................... 175Exemples ................................................................................................................................................................................................................

    175Regroupement ............................................................................................................................................................... 176Regroupement sur un critre ................................................................................................................................................................................... 177Voir d'autres colonnes ............................................................................................................................................................................................. 177Colonnes slectionnes .......................................................................................................................................................................................... 179Tri des donnes ....................................................................................................................................................................................................... 180Et les autres espces ? ........................................................................................................................................................................................... 181Regroupement sur plusieurs critres ...................................................................................................................................................................... 182Super-agrgats ........................................................................................................................................................................................................ 185Conditions sur les fonctions d'agrgation ................................................................................................................................................................ 186Optimisation ............................................................................................................................................................................................................

    188Exercices sur les agrgats ............................................................................................................................................ 188Du simple ............................................................................................................................................................................................................. 1881. Combien de races avons-nous dans la table Race ? .......................................................................................................................................... 1882. De combien de chiens connaissons-nous le pre ? ............................................................................................................................................ 1883. Quelle est la date de naissance de notre plus jeune femelle ? ........................................................................................................................... 1884. En moyenne, quel est le prix d'un chien ou d'un chat de race, par espce, et en gnral ? .............................................................................. 1895. Combien avons-nous de perroquets mles et femelles, et quels sont leurs noms (en une seule requte bien sr) ? ....................................... 189Vers le complexe ................................................................................................................................................................................................. 1891. Quelles sont les races dont nous ne possdons aucun individu ? ...................................................................................................................... 1892. Quelles sont les espces (tries par ordre alphabtique du nom latin) dont nous possdons moins de cinq mles ? ...................................... 1903. Combien de mles et de femelles de chaque race avons-nous, avec un compte total intermdiaire pour les races (mles et femelles confondues) et pour les espces ? Afficher le nom de la race, et le nom courant de l'espce. 1904. Quel serait le cot, par espce et au total, de l'adoption de Parlotte, Spoutnik, Caribou, Cartouche, Cali, Canaille, Yoda, Zambo et Lulla ? ...

    191Partie 4 : Fonctions : manipuler les dates ....................................................................................... 192Obtenir la date/l'heure actuelle ..................................................................................................................................... 192Etat actuel de la base de donnes .......................................................................................................................................................................... 194Rappels ................................................................................................................................................................................................................... 195Date ......................................................................................................................................................................................................................... 195Heure ....................................................................................................................................................................................................................... 195Date et heure ........................................................................................................................................................................................................... 195Timestamp ............................................................................................................................................................................................................... 195Anne ...................................................................................................................................................................................................................... 195Date actuelle ........................................................................................................................................................................................................... 196Heure actuelle ......................................................................................................................................................................................................... 196Date et heure actuelles ........................................................................................................................................................................................... 196Les fonctions ........................................................................................................................................................................................................... 196Qui peut le plus, peut le moins ................................................................................................................................................................................ 197Timestamp Unix ......................................................................................................................................................................................................

    198Formater une donne temporelle .................................................................................................................................. 198Extraire une information prcise ............................................................................................................................................................................. 198Informations sur la date ........................................................................................................................................................................................... 200Informations sur l'heure ........................................................................................................................................................................................... 201Formater une date facilement ................................................................................................................................................................................. 201Format ..................................................................................................................................................................................................................... 202Exemples ................................................................................................................................................................................................................ 203Fonction supplmentaire pour l'heure ..................................................................................................................................................................... 204Formats standards .................................................................................................................................................................................................. 204Crer une date partir d'une chane de caractres ................................................................................................................................................

    205Calculs sur les donnes temporelles ............................................................................................................................ 206Diffrence entre deux dates/heures ........................................................................................................................................................................ 207Ajout et retrait d'un intervalle de temps ................................................................................................................................................................... 208Ajout d'un intervalle de temps ................................................................................................................................................................................. 210Soustraction d'un intervalle de temps ..................................................................................................................................................................... 211Divers ...................................................................................................................................................................................................................... 211Crer une date/heure partir d'autres informations ................................................................................................................................................ 212Convertir un TIME en secondes, et vice versa ........................................................................................................................................................ 212Dernier jour du mois ................................................................................................................................................................................................

    212Exercices ....................................................................................................................................................................... 213Commenons par le format ..................................................................................................................................................................................... 214Passons aux calculs ................................................................................................................................................................................................ 215Et pour finir, mlangeons le tout ..............................................................................................................................................................................

    217Partie 5 : Scuriser et automatiser ses actions ............................................................................... 218Transactions .................................................................................................................................................................. 218Etat actuel de la base de donnes .......................................................................................................................................................................... 221Principe ................................................................................................................................................................................................................... 222Support des transactions ........................................................................................................................................................................................ 222Syntaxe et utilisation ............................................................................................................................................................................................... 222Valider/annuler les changements ............................................................................................................................................................................

    Sommaire 5/414

    www.siteduzero.com

  • 225Dmarrer explicitement une transaction ................................................................................................................................................................. 226Jalon de transaction ................................................................................................................................................................................................ 227Validation implicite et commandes non-annulables ................................................................................................................................................ 228ACID ........................................................................................................................................................................................................................ 228A pour Atomicit ...................................................................................................................................................................................................... 228C pour cohrence .................................................................................................................................................................................................... 229I pour Isolation ......................................................................................................................................................................................................... 231D pour Durabilit .....................................................................................................................................................................................................

    232Verrous .......................................................................................................................................................................... 233Principe ................................................................................................................................................................................................................... 233Verrous de table et verrous de ligne ........................................................................................................................................................................ 233Avertissements ........................................................................................................................................................................................................ 233Modification de notre base de donnes .................................................................................................................................................................. 236Syntaxe et utilisation : verrous de table ................................................................................................................................................................... 242Syntaxe et utilisation : verrous de ligne ................................................................................................................................................................... 242Requtes de modification, insertion et suppression ................................................................................................................................................ 242Requtes de slection ............................................................................................................................................................................................. 243Transactions et fin d'un verrou de ligne ................................................................................................................................................................... 243Exemples ................................................................................................................................................................................................................ 246En rsum ............................................................................................................................................................................................................... 247Rle des index ......................................................................................................................................................................................................... 248Lignes fantmes et index de cl suivante ............................................................................................................................................................... 250Pourquoi poser un verrou exclusif avec une requte SELECT ? ............................................................................................................................ 252Niveaux d'isolation .................................................................................................................................................................................................. 252Syntaxe ................................................................................................................................................................................................................... 252Les diffrents niveaux .............................................................................................................................................................................................

    255Requtes prpares ...................................................................................................................................................... 255Variables utilisateur ................................................................................................................................................................................................. 255Dfinitions ............................................................................................................................................................................................................... 255Crer et modifier une variable utilisateur ................................................................................................................................................................ 256Utilisation d'une variable utilisateur ......................................................................................................................................................................... 257Porte des variables utilisateurs ............................................................................................................................................................................. 258Principe et syntaxe des requtes prpares ........................................................................................................................................................... 258Principe ................................................................................................................................................................................................................... 258Syntaxe ................................................................................................................................................................................................................... 260Usage et utilit ........................................................................................................................................................................................................ 260Usage ...................................................................................................................................................................................................................... 262Utilit .......................................................................................................................................................................................................................

    265Procdures stockes ..................................................................................................................................................... 265Cration et utilisation d'une procdure .................................................................................................................................................................... 265Procdure avec une seule requte ......................................................................................................................................................................... 265Procdure avec un bloc d'instructions ..................................................................................................................................................................... 266Dlimiteur ................................................................................................................................................................................................................ 267Cration d'une procdure stocke .......................................................................................................................................................................... 267Utilisation d'une procdure stocke ........................................................................................................................................................................ 268Les paramtres d'une procdure stocke ............................................................................................................................................................... 268Sens des paramtres .............................................................................................................................................................................................. 268Syntaxe ................................................................................................................................................................................................................... 268Exemples ................................................................................................................................................................................................................ 272Suppression d'une procdure ................................................................................................................................................................................. 273Avantages, inconvnients et usage des procdures stockes ............................................................................................................................... 273Avantages ............................................................................................................................................................................................................... 273Inconvnients .......................................................................................................................................................................................................... 273Conclusion et usage ................................................................................................................................................................................................

    274Structurer ses instructions ............................................................................................................................................. 275Blocs d'instructions et variables locales .................................................................................................................................................................. 275Blocs d'instructions .................................................................................................................................................................................................. 275Variables locales ..................................................................................................................................................................................................... 279Structures conditionnelles ....................................................................................................................................................................................... 279La structure IF ......................................................................................................................................................................................................... 281La structure CASE ................................................................................................................................................................................................... 285Utiliser une structure conditionnelle directement dans une requte ....................................................................................................................... 286Boucles ................................................................................................................................................................................................................... 286La boucle WHILE .................................................................................................................................................................................................... 286La boucle REPEAT .................................................................................................................................................................................................. 287Donner un label une boucle ................................................................................................................................................................................. 288Les instructions LEAVE et ITERATE ....................................................................................................................................................................... 292La boucle LOOP ......................................................................................................................................................................................................

    293Gestionnaires d'erreurs, curseurs et utilisation avance .............................................................................................. 294Gestion des erreurs ................................................................................................................................................................................................. 295Cration d'un gestionnaire d'erreur ......................................................................................................................................................................... 296Dfinition de l'erreur gre ...................................................................................................................................................................................... 299Dclarer plusieurs gestionnaires, grer plusieurs erreurs par gestionnaire ............................................................................................................ 300Curseurs .................................................................................................................................................................................................................. 301Syntaxe ................................................................................................................................................................................................................... 302Restrictions ............................................................................................................................................................................................................. 303Parcourir intelligemment tous les rsultats d'un curseur ......................................................................................................................................... 306Utilisation avance des blocs d'instructions ............................................................................................................................................................ 306Utiliser des variables utilisateur dans un bloc d'instructions ................................................................................................................................... 307Utiliser une procdure dans un bloc ........................................................................................................................................................................ 307Transactions et gestion d'erreurs ............................................................................................................................................................................ 308Prparer une requte dans un bloc d'instructions ...................................................................................................................................................

    Sommaire 6/414

    www.siteduzero.com

  • 309Triggers ......................................................................................................................................................................... 310Principe et usage .................................................................................................................................................................................................... 310Qu'est-ce qu'un trigger ? ......................................................................................................................................................................................... 310 quoi sert un trigger ? ............................................................................................................................................................................................ 311Cration des triggers ............................................................................................................................................................................................... 311Syntaxe .................................................................................................................................................................................................................... 312Rgle et convention ................................................................................................................................................................................................ 312OLD et NEW ............................................................................................................................................................................................................ 313Erreur dclenche pendant un trigger ..................................................................................................................................................................... 313Suppression des triggers ........................................................................................................................................................................................ 313Exemples ................................................................................................................................................................................................................ 313Contraintes et vrification des donnes .................................................................................................................................................................. 318Mise jour d'informations dpendant d'autres donnes ......................................................................................................................................... 320Historisation ............................................................................................................................................................................................................ 324Restrictions .............................................................................................................................................................................................................

    326Partie 6 : Au-del des tables classiques : vues, tables temporaires et vues matrialises ............. 327Vues .............................................................................................................................................................................. 327Etat actuel de la base de donnes .......................................................................................................................................................................... 332Cration d'une vue .................................................................................................................................................................................................. 332Le principe ............................................................................................................................................................................................................... 332Cration ................................................................................................................................................................................................................... 334Les colonnes de la vue ........................................................................................................................................................................................... 335Requte SELECT stocke dans la vue ................................................................................................................................................................... 337Slection des donnes d'une vue ........................................................................................................................................................................... 338Modification et suppression d'une vue .................................................................................................................................................................... 338Modification ............................................................................................................................................................................................................. 339Suppression ............................................................................................................................................................................................................ 339Utilit des vues ........................................................................................................................................................................................................ 339Clarification et facilitation des requtes ................................................................................................................................................................... 341Cration d'une interface entre l'application et la base de donnes ......................................................................................................................... 341Restriction des donnes visibles par les utilisateurs ......................................................................