avec mysql bases de données administrez vosooooobildooooo.free.fr/cours extra scolaire/cours site...

413
Administrez vos bases de données avec MySQL Par Chantal Gribaumont (Taguan) www.siteduzero.com Licence Creative Commons BY-NC-SA 2.0 Dernière mise à jour le 5/10/2012

Upload: others

Post on 17-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • Administrez vosbases de données

    avec MySQLPar Chantal Gribaumont (Taguan)

    www.siteduzero.com

    Licence Creative Commons BY-NC-SA 2.0Dernière mise à jour le 5/10/2012

    http://www.siteduzero.com

  • Sommaire

    2Sommaire ........................................................................................................................................... 7Partager .............................................................................................................................................. 9 Administrez vos bases de données avec MySQL .............................................................................. 9Quelques exemples d'applications .................................................................................................................................... 9Points abordés dans ce tutoriel .........................................................................................................................................

    11Partie 1 : MySQL et les bases du langage SQL ................................................................................ 11Introduction ...................................................................................................................................................................... 11Concepts de base ...................................................................................................................................................................................................... 11Base de données ....................................................................................................................................................................................................... 11SGBD ........................................................................................................................................................................................................................ 11SGBDR ...................................................................................................................................................................................................................... 12Le langage SQL ........................................................................................................................................................................................................ 13Présentation 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 données ........................................................................................................................................................................

    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 ................................................................................................................................................................................................... 22Déconnexion ............................................................................................................................................................................................................. 22Syntaxe SQL et premières commandes .................................................................................................................................................................... 22"Hello World !" ........................................................................................................................................................................................................... 22Syntaxe ..................................................................................................................................................................................................................... 24Un peu de math ......................................................................................................................................................................................................... 24Utilisateur ..................................................................................................................................................................................................................

    26Les types de données ..................................................................................................................................................... 26Types numériques ..................................................................................................................................................................................................... 26Nombres entiers ........................................................................................................................................................................................................ 27Nombres décimaux ................................................................................................................................................................................................... 27Types alphanumériques ............................................................................................................................................................................................ 27Chaînes de type texte ............................................................................................................................................................................................... 28Chaînes de type binaire ............................................................................................................................................................................................ 29SET et ENUM ............................................................................................................................................................................................................ 31Types temporels ........................................................................................................................................................................................................ 31DATE, TIME et DATETIME ........................................................................................................................................................................................ 33YEAR ......................................................................................................................................................................................................................... 33TIMESTAMP .............................................................................................................................................................................................................. 33La date par défaut .....................................................................................................................................................................................................

    33Création d'une base de données .................................................................................................................................... 34Avant-propos : conseils et conventions ..................................................................................................................................................................... 34Conseils .................................................................................................................................................................................................................... 34Conventions .............................................................................................................................................................................................................. 35Mise en situation ....................................................................................................................................................................................................... 35Création et suppression d'une base de données ...................................................................................................................................................... 35Création ..................................................................................................................................................................................................................... 35Suppression .............................................................................................................................................................................................................. 36Utilisation d'une base de données ............................................................................................................................................................................

    37Création de tables ........................................................................................................................................................... 38Définition des colonnes ............................................................................................................................................................................................. 38Type de colonne ........................................................................................................................................................................................................ 38NULL or NOT NULL ? ................................................................................................................................................................................................ 38Récapitulatif .............................................................................................................................................................................................................. 39Introduction aux clés primaires ................................................................................................................................................................................. 39Identité ....................................................................................................................................................................................................................... 39Clé primaire ............................................................................................................................................................................................................... 39Auto-incrémentation .................................................................................................................................................................................................. 40Les moteurs de tables ............................................................................................................................................................................................... 40 Préciser un moteur lors de la création de la table .................................................................................................................................................... 40Syntaxe de CREATE TABLE ..................................................................................................................................................................................... 40Syntaxe ..................................................................................................................................................................................................................... 42Application : création de Animal ................................................................................................................................................................................

    2/414

    www.siteduzero.com

    http://www.siteduzero.com

  • 42Vérifications ............................................................................................................................................................................................................... 42Suppression d'une table ............................................................................................................................................................................................

    42Modification d'une table ................................................................................................................................................... 43Syntaxe de la requête ............................................................................................................................................................................................... 43Ajout et suppression d'une colonne .......................................................................................................................................................................... 43Ajout .......................................................................................................................................................................................................................... 44Suppression .............................................................................................................................................................................................................. 44Modification de colonne ............................................................................................................................................................................................. 44Changement du nom de la colonne .......................................................................................................................................................................... 44Changement du type de données .............................................................................................................................................................................

    45Insertion de données ....................................................................................................................................................... 46Syntaxe de INSERT .................................................................................................................................................................................................. 46Insertion sans préciser les colonnes ......................................................................................................................................................................... 47Insertion en précisant les colonnes ........................................................................................................................................................................... 47Insertion multiple ....................................................................................................................................................................................................... 47Syntaxe alternative de MySQL .................................................................................................................................................................................. 48Utilisation de fichiers externes .................................................................................................................................................................................. 48Exécuter des commandes SQL à partir d'un fichier .................................................................................................................................................. 49Insérer des données à partir d'un fichier formaté ...................................................................................................................................................... 50Remplissage de la base ............................................................................................................................................................................................ 50Exécution de commandes SQL ................................................................................................................................................................................. 51LOAD DATA INFILE ...................................................................................................................................................................................................

    52Sélection de données ...................................................................................................................................................... 53Syntaxe de SELECT ................................................................................................................................................................................................. 53Sélectionner toutes les colonnes .............................................................................................................................................................................. 54La clause WHERE .................................................................................................................................................................................................... 54Les opérateurs de comparaison ................................................................................................................................................................................ 54Combinaisons de critères .......................................................................................................................................................................................... 56Sélection complexe ................................................................................................................................................................................................... 57Le cas de NULL ......................................................................................................................................................................................................... 58Tri des données ......................................................................................................................................................................................................... 58Tri ascendant ou descendant .................................................................................................................................................................................... 59Trier sur plusieurs colonnes ...................................................................................................................................................................................... 59Éliminer les doublons ................................................................................................................................................................................................ 59Restreindre les résultats ........................................................................................................................................................................................... 59Syntaxe ..................................................................................................................................................................................................................... 61Syntaxe alternative ....................................................................................................................................................................................................

    61Élargir les possibilités de la clause WHERE ................................................................................................................... 62Recherche approximative ......................................................................................................................................................................................... 63Sensibilité à la casse ................................................................................................................................................................................................. 63Recherche dans les numériques ............................................................................................................................................................................... 64Recherche dans un intervalle .................................................................................................................................................................................... 64Set de critères ...........................................................................................................................................................................................................

    65Suppression et modification de données ........................................................................................................................ 66Sauvegarde d'une base de données ......................................................................................................................................................................... 67Suppression .............................................................................................................................................................................................................. 67Modification ...............................................................................................................................................................................................................

    68Partie 2 : Index, jointures et sous-requêtes ....................................................................................... 69Index ................................................................................................................................................................................ 69Etat actuelle de la base de données ......................................................................................................................................................................... 70Qu'est-ce qu'un index ? ............................................................................................................................................................................................. 72Intérêt des index ........................................................................................................................................................................................................ 72Désavantages ........................................................................................................................................................................................................... 72Index sur plusieurs colonnes ..................................................................................................................................................................................... 74Index sur des colonnes de type alphanumérique ...................................................................................................................................................... 75Les différents types d'index ....................................................................................................................................................................................... 75Index UNIQUE ........................................................................................................................................................................................................... 76Index FULLTEXT ....................................................................................................................................................................................................... 76Création et suppression des index ............................................................................................................................................................................ 76Ajout des index lors de la création de la table ........................................................................................................................................................... 78Ajout des index après création de la table ................................................................................................................................................................ 79Complément pour la création d'un index UNIQUE - le cas des contraintes .............................................................................................................. 79Suppression d'un index ............................................................................................................................................................................................. 80Recherches avec FULLTEXT .................................................................................................................................................................................... 80Comment fonctionne la recherche FULLTEXT ? ....................................................................................................................................................... 81Les types de recherche .............................................................................................................................................................................................

    89Clés primaires et étrangères ........................................................................................................................................... 89Clés primaires, le retour ............................................................................................................................................................................................ 89Choix de la clé primaire ............................................................................................................................................................................................. 90Création d'une clé primaire ....................................................................................................................................................................................... 91Suppression de la clé primaire .................................................................................................................................................................................. 91Clés étrangères ......................................................................................................................................................................................................... 92Création ..................................................................................................................................................................................................................... 93Suppression d'une clé étrangère ............................................................................................................................................................................... 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

    http://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/ Commençons par des choses faciles ................................................................................................................................................................. 109B/ Compliquons un peu les choses ......................................................................................................................................................................... 110C/ Et maintenant, le test ultime ! ..............................................................................................................................................................................

    112Sous-requêtes ............................................................................................................................................................... 113Sous-requêtes dans le FROM ................................................................................................................................................................................. 114Les règles à respecter ............................................................................................................................................................................................. 115Sous-requêtes dans les conditions .......................................................................................................................................................................... 115Comparaisons ......................................................................................................................................................................................................... 118Conditions avec IN et NOT IN ................................................................................................................................................................................. 119Conditions avec ANY, SOME et ALL ........................................................................................................................................................................ 120Sous-requêtes corrélées .........................................................................................................................................................................................

    122Jointures et sous-requêtes : modification de données ................................................................................................. 123Insertion ................................................................................................................................................................................................................... 123Sous-requête pour l'insertion .................................................................................................................................................................................. 125Modification ............................................................................................................................................................................................................. 125Utilisation des sous-requêtes .................................................................................................................................................................................. 127Modification avec jointure ........................................................................................................................................................................................ 127Suppression ............................................................................................................................................................................................................ 127Utilisation des sous-requêtes .................................................................................................................................................................................. 128Suppression avec jointure .......................................................................................................................................................................................

    128Union de plusieurs requêtes ......................................................................................................................................... 129Syntaxe ................................................................................................................................................................................................................... 129Les règles ................................................................................................................................................................................................................ 131UNION ALL .............................................................................................................................................................................................................. 132LIMIT et ORDER BY ................................................................................................................................................................................................ 132LIMIT ....................................................................................................................................................................................................................... 134ORDER BY ..............................................................................................................................................................................................................

    135Options des clés étrangères ......................................................................................................................................... 136Option sur suppression des clés étrangères ........................................................................................................................................................... 136Petits rappels .......................................................................................................................................................................................................... 136Suppression d'une référence .................................................................................................................................................................................. 138Option sur modification des clés étrangères ........................................................................................................................................................... 139Utilisation de ces options dans notre base .............................................................................................................................................................. 139Modifications ........................................................................................................................................................................................................... 140Suppressions .......................................................................................................................................................................................................... 140Les requêtes ............................................................................................................................................................................................................

    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 même table ..................................................................................................................................

    147Partie 3 : Fonctions : nombres, chaînes et agrégats ....................................................................... 148Rappels et introduction ................................................................................................................................................. 148Etat actuel de la base de données .......................................................................................................................................................................... 150Rappels et manipulation simple de nombres .......................................................................................................................................................... 150Rappels ................................................................................................................................................................................................................... 151Combiner les données avec des opérations mathématiques ................................................................................................................................. 153Définition d'une fonction .......................................................................................................................................................................................... 155Fonctions scalaires vs fonctions d'agrégation ......................................................................................................................................................... 155Quelques fonctions générales ................................................................................................................................................................................. 156Informations sur l'environnement actuel .................................................................................................................................................................. 156Informations sur la dernière requête ....................................................................................................................................................................... 158Convertir le type de données ..................................................................................................................................................................................

    160Fonctions scalaires ....................................................................................................................................................... 160Manipulation de nombres ........................................................................................................................................................................................ 160Arrondis ................................................................................................................................................................................................................... 161Exposants et racines ............................................................................................................................................................................................... 162Hasard ..................................................................................................................................................................................................................... 163Divers ...................................................................................................................................................................................................................... 163Manipulation de chaînes de caractères ................................................................................................................................................................... 163Longueur et comparaison ....................................................................................................................................................................................... 164Retrait et ajout de caractères .................................................................................................................................................................................. 166Recherche et remplacement ................................................................................................................................................................................... 168Concaténation .........................................................................................................................................................................................................

    Sommaire 4/414

    www.siteduzero.com

    http://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'agrégation .................................................................................................................................................. 172Fonctions statistiques .............................................................................................................................................................................................. 172Nombre de lignes .................................................................................................................................................................................................... 173Minimum et maximum ............................................................................................................................................................................................. 173Somme et moyenne ................................................................................................................................................................................................ 174Concaténation ......................................................................................................................................................................................................... 174Principe ................................................................................................................................................................................................................... 174Syntaxe ................................................................................................................................................................................................................... 175Exemples ................................................................................................................................................................................................................

    175Regroupement ............................................................................................................................................................... 176Regroupement sur un critère ................................................................................................................................................................................... 177Voir d'autres colonnes ............................................................................................................................................................................................. 177Colonnes sélectionnées .......................................................................................................................................................................................... 179Tri des données ....................................................................................................................................................................................................... 180Et les autres espèces ? ........................................................................................................................................................................................... 181Regroupement sur plusieurs critères ...................................................................................................................................................................... 182Super-agrégats ........................................................................................................................................................................................................ 185Conditions sur les fonctions d'agrégation ................................................................................................................................................................ 186Optimisation ............................................................................................................................................................................................................

    188Exercices sur les agrégats ............................................................................................................................................ 188Du simple… ............................................................................................................................................................................................................. 1881. Combien de races avons-nous dans la table Race ? .......................................................................................................................................... 1882. De combien de chiens connaissons-nous le père ? ............................................................................................................................................ 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 espèce, et en général ? .............................................................................. 1895. Combien avons-nous de perroquets mâles et femelles, et quels sont leurs noms (en une seule requête bien sûr) ? ....................................... 189…Vers le complexe ................................................................................................................................................................................................. 1891. Quelles sont les races dont nous ne possédons aucun individu ? ...................................................................................................................... 1892. Quelles sont les espèces (triées par ordre alphabétique du nom latin) dont nous possédons moins de cinq mâles ? ...................................... 1903. Combien de mâles et de femelles de chaque race avons-nous, avec un compte total intermédiaire pour les races (mâles et femelles confondues) et pour les espèces ? Afficher le nom de la race, et le nom courant de l'espèce. 1904. Quel serait le coût, par espèce 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 données .......................................................................................................................................................................... 194Rappels ................................................................................................................................................................................................................... 195Date ......................................................................................................................................................................................................................... 195Heure ....................................................................................................................................................................................................................... 195Date et heure ........................................................................................................................................................................................................... 195Timestamp ............................................................................................................................................................................................................... 195Année ...................................................................................................................................................................................................................... 195Date actuelle ........................................................................................................................................................................................................... 196Heure actuelle ......................................................................................................................................................................................................... 196Date et heure actuelles ........................................................................................................................................................................................... 196Les fonctions ........................................................................................................................................................................................................... 196Qui peut le plus, peut le moins ................................................................................................................................................................................ 197Timestamp Unix ......................................................................................................................................................................................................

    198Formater une donnée temporelle .................................................................................................................................. 198Extraire une information précise ............................................................................................................................................................................. 198Informations sur la date ........................................................................................................................................................................................... 200Informations sur l'heure ........................................................................................................................................................................................... 201Formater une date facilement ................................................................................................................................................................................. 201Format ..................................................................................................................................................................................................................... 202Exemples ................................................................................................................................................................................................................ 203Fonction supplémentaire pour l'heure ..................................................................................................................................................................... 204Formats standards .................................................................................................................................................................................................. 204Créer une date à partir d'une chaîne de caractères ................................................................................................................................................

    205Calculs sur les données temporelles ............................................................................................................................ 206Différence 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 ...................................................................................................................................................................................................................... 211Créer une date/heure à partir d'autres informations ................................................................................................................................................ 212Convertir un TIME en secondes, et vice versa ........................................................................................................................................................ 212Dernier jour du mois ................................................................................................................................................................................................

    212Exercices ....................................................................................................................................................................... 213Commençons par le format ..................................................................................................................................................................................... 214Passons aux calculs ................................................................................................................................................................................................ 215Et pour finir, mélangeons le tout ..............................................................................................................................................................................

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

    Sommaire 5/414

    www.siteduzero.com

    http://www.siteduzero.com

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

    232Verrous .......................................................................................................................................................................... 233Principe ................................................................................................................................................................................................................... 233Verrous de table et verrous de ligne ........................................................................................................................................................................ 233Avertissements ........................................................................................................................................................................................................ 233Modification de notre base de données .................................................................................................................................................................. 236Syntaxe et utilisation : verrous de table ................................................................................................................................................................... 242Syntaxe et utilisation : verrous de ligne ................................................................................................................................................................... 242Requêtes de modification, insertion et suppression ................................................................................................................................................ 242Requêtes de sélection ............................................................................................................................................................................................. 243Transactions et fin d'un verrou de ligne ................................................................................................................................................................... 243Exemples ................................................................................................................................................................................................................ 246En résumé ............................................................................................................................................................................................................... 247Rôle des index ......................................................................................................................................................................................................... 248Lignes fantômes et index de clé suivante ............................................................................................................................................................... 250Pourquoi poser un verrou exclusif avec une requête SELECT ? ............................................................................................................................ 252Niveaux d'isolation .................................................................................................................................................................................................. 252Syntaxe ................................................................................................................................................................................................................... 252Les différents niveaux .............................................................................................................................................................................................

    255Requêtes préparées ...................................................................................................................................................... 255Variables utilisateur ................................................................................................................................................................................................. 255Définitions ............................................................................................................................................................................................................... 255Créer et modifier une variable utilisateur ................................................................................................................................................................ 256Utilisation d'une variable utilisateur ......................................................................................................................................................................... 257Portée des variables utilisateurs ............................................................................................................................................................................. 258Principe et syntaxe des requêtes préparées ........................................................................................................................................................... 258Principe ................................................................................................................................................................................................................... 258Syntaxe ................................................................................................................................................................................................................... 260Usage et utilité ........................................................................................................................................................................................................ 260Usage ...................................................................................................................................................................................................................... 262Utilité .......................................................................................................................................................................................................................

    265Procédures stockées ..................................................................................................................................................... 265Création et utilisation d'une procédure .................................................................................................................................................................... 265Procédure avec une seule requête ......................................................................................................................................................................... 265Procédure avec un bloc d'instructions ..................................................................................................................................................................... 266Délimiteur ................................................................................................................................................................................................................ 267Création d'une procédure stockée .......................................................................................................................................................................... 267Utilisation d'une procédure stockée ........................................................................................................................................................................ 268Les paramètres d'une procédure stockée ............................................................................................................................................................... 268Sens des paramètres .............................................................................................................................................................................................. 268Syntaxe ................................................................................................................................................................................................................... 268Exemples ................................................................................................................................................................................................................ 272Suppression d'une procédure ................................................................................................................................................................................. 273Avantages, inconvénients et usage des procédures stockées ............................................................................................................................... 273Avantages ............................................................................................................................................................................................................... 273Inconvénients .......................................................................................................................................................................................................... 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 requête ....................................................................................................................... 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 avancée .............................................................................................. 294Gestion des erreurs ................................................................................................................................................................................................. 295Création d'un gestionnaire d'erreur ......................................................................................................................................................................... 296Définition de l'erreur gérée ...................................................................................................................................................................................... 299Déclarer plusieurs gestionnaires, gérer plusieurs erreurs par gestionnaire ............................................................................................................ 300Curseurs .................................................................................................................................................................................................................. 301Syntaxe ................................................................................................................................................................................................................... 302Restrictions ............................................................................................................................................................................................................. 303Parcourir intelligemment tous les résultats d'un curseur ......................................................................................................................................... 306Utilisation avancée des blocs d'instructions ............................................................................................................................................................ 306Utiliser des variables utilisateur dans un bloc d'instructions ................................................................................................................................... 307Utiliser une procédure dans un bloc ........................................................................................................................................................................ 307Transactions et gestion d'erreurs ............................................................................................................................................................................ 308Préparer une requête dans un bloc d'instructions ...................................................................................................................................................

    Sommaire 6/414

    www.siteduzero.com

    http://www.siteduzero.com

  • 309Triggers ......................................................................................................................................................................... 310Principe et usage .................................................................................................................................................................................................... 310Qu'est-ce qu'un trigger ? ......................................................................................................................................................................................... 310À quoi sert un trigger ? ............................................................................................................................................................................................ 311Création des triggers ............................................................................................................................................................................................... 311Syntaxe .................................................................................................................................................................................................................... 312Règle et convention ................................................................................................................................................................................................ 312OLD et NEW ............................................................................................................................................................................................................ 313Erreur déclenchée pendant un trigger ..................................................................................................................................................................... 313Suppression des triggers ........................................................................................................................................................................................ 313Exemples ................................................................................................................................................................................................................ 313Contraintes et vérification des données .................................................................................................................................................................. 318Mise à jour d'informations dépendant d'autres données ......................................................................................................................................... 320Historisation ............................................................................................................................................................................................................ 324Restrictions .............................................................................................................................................................................................................

    326Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées ............. 327Vues .............................................................................................................................................................................. 327Etat actuel de la base de données .......................................................................................................................................................................... 332Création d'une vue .................................................................................................................................................................................................. 332Le principe ............................................................................................................................................................................................................... 332Création ................................................................................................................................................................................................................... 334Les colonnes de la vue ........................................................................................................................................................................................... 335Requête SELECT stockée dans la vue ................................................................................................................................................................... 337Sélection des données d'une vue ........................................................................................................................................................................... 338Modification et suppression d'une vue .................................................................................................................................................................... 338Modification ............................................................................................................................................................................................................. 339Suppression ............................................................................................................................................................