O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Programmer avec MySQL

Book Description

Présentation
Apprendre SQL par l'exemple

Particulièrement destiné aux débutants, cet ouvrage permet de découvrir toutes les aspects de la programmation SQL par le biais du système de gestion de bases de données MySQL. Tous les concepts du langage procédural de MySQL sont décrits avec précision : variables, structure de contrôle, interactions avec la base, sous-programmes, curseurs, transactions, gestion des exceptions, déclencheurs, SQL dynamique... L'auteur explique en outre comment exploiter une base MySQL (connexion et transactions) en programmant avec Java (JDBC) ou PHP 5. Chaque notion importante du livre est introduite à l'aide d'exemples simples et chaque chapitre se clôt par une série d'exercices (avec corrigés disponibles en ligne) qui permettront au lecteur de tester ses connaissances.

MySQL 5.5 en version de production

La seconde édition de cet ouvrage traite de la programmation avec la version de production 5.5 de MySQL : gestion du XML, signaux, événements... L'optimisation des requêtes est également détaillée, notamment le fonctionnement de l'optimiseur, l'utilisation des statistiques et les plans d'exécution. Enfin, différents techniques d'optimisation sont présentées, telles que l'indexation, les tables temporaires, le partitionnement et la dénormalisation.

À qui s'adresse cet ouvrage ?
  • À tous ceux qui souhaitent s'initier à MySQL
  • Aux développeurs Java et PHP
Sur le site www.editions-eyrolles.com
  • Téléchargez le code source des exemples et le corrigé des exercices
  • Consultez les mises à jour et les compléments
  • Dialoguez avec l'auteur
Au sommaire
  • SQL de base
    • Définitions des données
    • Manipulation des données
    • Évolution d'un schéma
    • Interrogation des données
    • Contrôle des données
  • Programmation procédurale
    • Bases du langage de programmation
    • Programmation avancée
  • Langages et outils
    • Utilisation avec Java
    • Utilisation avec PHP
    • Consoles graphiques
    • Optimisations
  • Annexe : bibliographie et webographie

Table of Contents

  1. Couverture
  2. Page de titre
  3. Copyright
  4. Chez le même éditeur
  5. Avant-propos
  6. Table des matières
  7. Introduction
    1. SQL, une norme, un succès
    2. Modèle de données
      1. Tables et données
      2. Les clés
    3. MySQL
      1. Les produits
      2. Licences
      3. La concurrence
      4. Les versions
      5. Architecture
      6. Moteurs de stockage
      7. Oracle devient propriétaire
      8. Le support
      9. Notion de database (schéma)
      10. Notion d’hôte
      11. Aspects étudiés
    4. Mise en œuvre de MySQL (sous Windows)
      1. Installation
      2. Désinstallation
      3. Réinstallation
    5. Premiers pas
      1. L’interface de commande
      2. Création d’un utilisateur
      3. Connexion au serveur
      4. Vérification de la version
      5. Options de base
      6. Batch
      7. Votre prompt, et vite !
      8. Commandes de base
  8. Partie I SQL de base
    1. 1 Définition des données
      1. Tables relationnelles
        1. Création d’une table (CREATE TABLE)
        2. Délimiteurs
        3. Sensibilité à la casse
        4. Commentaires
        5. Premier exemple
        6. Contraintes
        7. Conventions recommandées
        8. Types des colonnes
        9. Structure d’une table (DESCRIBE)
        10. Restrictions
      2. Index
        1. Arbres balancés
        2. Création d’un index (CREATE INDEX)
        3. Bilan
      3. Destruction d’un schéma
        1. Suppression d’une table (DROP TABLE)
        2. Ordre des suppressions
      4. Exercices
    2. 2 Manipulation des données
      1. Insertions d’enregistrements (INSERT)
        1. Syntaxe
        2. Les doublons
        3. Renseigner toutes les colonnes
        4. Renseigner certaines colonnes
        5. Renseignez vos colonnes !
        6. Plusieurs enregistrements
        7. Ne pas respecter des contraintes
        8. Insertions multilignes
        9. Données binaires
        10. Énumérations
        11. Dates et heures
      2. Séquences
        1. Utilisation en tant que clé primaire
        2. Modification d’une séquence
        3. Utilisation en tant que clé étrangère
      3. Modifications de colonnes
        1. Syntaxe (UPDATE)
        2. Modification d’une colonne
        3. Modification de plusieurs colonnes
        4. Modification de plusieurs enregistrements
        5. Ne pas respecter les contraintes
        6. Restrictions
        7. Dates et intervalles
      4. Remplacement d’un enregistrement
      5. Suppressions d’enregistrements
        1. Instruction DELETE
        2. Instruction TRUNCATE
      6. Intégrité référentielle
        1. Syntaxe
        2. Cohérences assurées
        3. Contraintes côté « père »
        4. Contraintes côté « fils »
        5. Clés composites et nulles
        6. Cohérence du fils vers le père
        7. Cohérence du père vers le fils
        8. En résumé
      7. Insertions à partir d’un fichier
      8. Exercices
    3. 3 Évolution d’un schéma
      1. Renommer une table (RENAME)
      2. Modifications structurelles (ALTER TABLE)
        1. Ajout de colonnes
        2. Renommer des colonnes
        3. Modifier le type des colonnes
        4. Valeurs par défaut
        5. Supprimer des colonnes
        6. Énumérations
      3. Modifications comportementales
        1. Ajout de contraintes
        2. Suppression de contraintes
        3. Désactivation des contraintes
        4. Réactivation des contraintes
        5. Contraintes différées
      4. Exercices
    4. 4 Interrogation des données
      1. Généralités
        1. Syntaxe (SELECT)
        2. Pseudotable
      2. Projection (éléments du SELECT)
        1. Extraction de toutes les colonnes
        2. Extraction de certaines colonnes
        3. Alias
        4. Duplicatas
        5. Expressions et valeurs nulles
        6. Ordonnancement
        7. Concaténation
        8. Insertion multiligne
        9. Limitation du nombre de lignes
      3. Restriction (WHERE)
        1. Opérateurs de comparaison
        2. Opérateurs logiques
        3. Opérateurs intégrés
        4. Alias
      4. Fonctions
        1. Caractères
        2. Numériques
        3. Fonction pour les bits
        4. Dates
        5. Conversions
        6. Comparaisons
        7. Énumérations
        8. Autres fonctions
      5. Regroupements
        1. Fonctions de groupe
        2. Étude du GROUP BY et HAVING
      6. Opérateurs ensemblistes
        1. Restrictions
        2. Exemple
        3. Intersection
        4. Opérateurs UNION et UNION ALL
        5. Différence
        6. Ordonner les résultats
        7. Produit cartésien
        8. Bilan
      7. Jointures
        1. Classification
        2. Jointure relationnelle
        3. Jointures SQL2
        4. Types de jointures
        5. Équijointure
        6. Autojointure
        7. Inéquijointure
        8. Jointures externes
        9. Jointures procédurales
        10. Jointures mixtes
        11. Sous-interrogations synchronisées
        12. Autres directives SQL2
      8. Division
        1. Définition
        2. Classification
        3. Division inexacte
        4. Division exacte
      9. Résulats en HTML ou XML
      10. Écriture dans un fichier
      11. Exercices
    5. 5 Contrôle des données
      1. Gestion des utilisateurs
        1. Classification
        2. Création d’un utilisateur (CREATE USER)
        3. Modification d’un utilisateur
        4. Renommer un utilisateur (RENAME USER)
        5. Suppression d’un utilisateur (DROP USER)
      2. Gestion des bases de données
        1. Création d’une base (CREATE DATABASE)
        2. Sélection d’une base de données (USE)
        3. Modification d’une base (ALTER DATABASE)
        4. Suppression d’une base (DROP DATABASE)
      3. Privilèges
        1. Niveaux de privilèges
        2. Tables de la base mysql
        3. Table mysql.user
        4. Attribution de privilèges (GRANT)
        5. Table mysql.db
        6. Table mysql.host
        7. Table mysql.tables_priv
        8. Table mysql.columns_priv
        9. Table mysql.procs_priv
        10. Révocation de privilèges (REVOKE)
        11. Attributions et révocations « sauvages »
      4. Accès distants
        1. Connexion par l’interface de commande
        2. Table mysql.host
      5. Vues
        1. Création d’une vue (CREATE VIEW)
        2. Classification
        3. Vues monotables
        4. Vues complexes
        5. Autres utilisations de vues
        6. Transmission de droits
        7. Modification d’une vue (ALTER VIEW)
        8. Visualisation d’une vue (SHOW CREATE VIEW)
        9. Suppression d’une vue (DROP VIEW)
      6. Dictionnaire des données
        1. Constitution
        2. Modèle graphique du dictionnaire des données
        3. Démarche à suivre
        4. Classification des vues
        5. Moteurs du serveur
        6. Bases de données du serveur
        7. Composition d’une base
        8. Détail de stockage d’une base
        9. Structure d’une table
        10. Recherche des contraintes d’une table
        11. Composition des contraintes d’une table
        12. Détails des contraintes référentielles
        13. Recherche du code source d’un sous-programme
        14. Paramètres des sous-programmes stockés
        15. Privilèges des utilisateurs d’une base de données
        16. Commande SHOW
      7. Exercices
  9. Partie II Programmation procédurale
    1. 6 Bases du langage de programmation
      1. Généralités
        1. Environnement client-serveur
        2. Avantages
        3. Structure d’un bloc
        4. Portée des objets
        5. Casse et lisibilité
        6. Identificateurs
        7. Commentaires
      2. Variables
        1. Variables scalaires
        2. Affectations
        3. Restrictions
        4. Résolution de noms
        5. Opérateurs
        6. Variables de session
        7. Conventions recommandées
      3. Test des exemples
      4. Structures de contrôle
        1. Structures conditionnelles
        2. Structures répétitives
      5. Interactions avec la base
        1. Extraire des données
        2. Manipuler des données
      6. Transactions
        1. Caractéristiques
        2. Début et fin d’une transaction
        3. Mode de validation
        4. Votre première transaction
        5. Contrôle des transactions
        6. Transactions imbriquées
      7. Modes d’exécution SQL
        1. Le contexte
        2. Programmation transactionnelle
        3. Les dates
        4. Les séquences
        5. Chaînes de caractères
        6. Les moteurs
        7. Portabilité
        8. Les combinaisons
      8. Exercices
    2. 7 Programmation avancée
      1. Sous-programmes
        1. Généralités
        2. Procédures cataloguées
        3. Fonctions cataloguées
        4. Structure d’un sous-programme
        5. Exemples
        6. Fonction n’interagissant pas avec la base
        7. Compilation
        8. Appel d’un sous-programme
        9. Récursivité
        10. Sous-programmes imbriqués
        11. Modification d’un sous-programme
        12. Destruction d’un sous-programme
        13. Restrictions
      2. Curseurs
        1. Généralités
        2. Instructions
        3. Parcours d’un curseur
        4. Accès concurrents (FOR UPDATE)
        5. Restrictions
      3. Erreurs (codes et messages)
      4. Exceptions
        1. Généralités
        2. Exceptions avec EXIT
        3. Exceptions avec CONTINUE
        4. Gestion des autres erreurs (SQLEXCEPTION)
        5. Même erreur sur différentes instructions
        6. Exceptions nommées
        7. Déroutements (SIGNAL et RESIGNAL)
      5. Déclencheurs
        1. Généralités
        2. À quoi sert un déclencheur ?
        3. Mécanisme général
        4. Syntaxe
        5. Déclencheurs LMD (de lignes)
        6. Appel de sous-programmes
        7. Dictionnaire des données
        8. Programmation d’une contrainte de vérification
        9. Programmation dans un déclencheur
        10. Exceptions dans un déclencheur
        11. Tables mutantes
        12. Restrictions
        13. Suppression d’un déclencheur
      6. SQL dynamique
        1. Syntaxe
        2. Exemples
        3. Restrictions
        4. Paramètres de retour
      7. Programmation d’événements
        1. Le contexte
        2. Création d’une planification
        3. Exemple
        4. Dictionnaire des données
        5. Modification
        6. Restrictions actuelles
      8. Gestion de XML
        1. Fonctions XML
        2. Gestion des erreurs
        3. Limitations
        4. Chargement XML (LOAD XML)
      9. Exercices
  10. Partie III Langages et outils
    1. 8 Utilisation avec Java
      1. JDBC avec Connector/J
        1. Classification des pilotes (drivers)
        2. Le paquetage java.sql
        3. Structure d’un programme
        4. Test de votre configuration
      2. Connexion à une base
        1. Base Access
        2. Base MySQL
        3. Interface Connection
      3. États d’une connexion
        1. Interfaces disponibles
        2. Méthodes génériques pour les paramètres
        3. États simples (interface Statement)
        4. Méthodes à utiliser
      4. Correspondances de types
      5. Manipulations avec la base
        1. Suppression de données
        2. Ajout d’enregistrements
        3. Modification d’enregistrements
      6. Extraction de données
        1. Curseurs statiques
        2. Curseurs navigables
      7. Curseurs modifiables
        1. Suppressions
        2. Modifications
        3. Insertions
      8. Gestion des séquences
        1. Méthode getGeneratedKeys
        2. Curseur modifiable
      9. Interface ResultSetMetaData
      10. Interface DatabaseMetaData
      11. Instructions paramétrées (PreparedStatement)
        1. Extraction de données (executeQuery)
        2. Mises à jour (executeUpdate)
        3. Instruction LDD (execute)
      12. Procédures cataloguées
        1. Exemple
      13. Transactions
        1. Points de validation
      14. Traitement des exceptions
        1. Affichage des erreurs
        2. Traitement des erreurs
      15. Exercices
    2. 9 Utilisation avec PHP
      1. Configuration adoptée
        1. Logiciels
        2. Fichiers de configuration
        3. Test d’Apache et de PHP
        4. Test d’Apache, de PHP et de MySQL
      2. API de PHP pour MySQL
        1. Connexion
        2. Interactions avec la base
        3. Extractions
        4. Instructions paramétrées
        5. Gestion des séquences
        6. Traitement des erreurs
        7. Procédures cataloguées
        8. Métadonnées
        9. Style d’écriture objet
      3. Exercices
    3. 10 Consoles graphiques
      1. MySQL Workbench
        1. Connexion
        2. Connexion nommée
        3. Développement SQL
        4. Modélisation
        5. Administration
      2. MySQL Enterprise
      3. phpMyAdmin
        1. Composition d’une base
        2. Structure d’une table
        3. Administrer une table
        4. Extractions
        5. Rechercher
        6. Exporter
        7. Utilisateurs
      4. Autres outils
    4. 11 Optimisations
      1. Cadre général
        1. Les acteurs
        2. Contexte et objectifs
        3. Causes possibles
        4. Présentation du jeu d’exemples
        5. L’optimiseur
        6. L’estimateur
        7. Traitement d’une instruction
      2. Les statistiques destinées à l’optimiseur
        1. Collecte
        2. Visualisation des statistiques
        3. Quand mettre à jour les statistiques ?
      3. Outils de mesure de performances
        1. MySQL Query Analyzer
        2. Visualisation des plans d’exécution
      4. Organisation des données
        1. Les contraintes
        2. Indexation
        3. Jointures
        4. Configuration de l’optimiseur (les hints)
        5. Tables temporaires
        6. Partitionnement
        7. Dénormalisation
        8. Derniers conseils
  11. Annexe : bibliographie et webographie
  12. Index