MySQL5
Sommaire
- Installer MySQL5
- Les outils nécessaires
- Télécharger et installer le serveur MySQL
- Télécharger la dernière version
- Lancer l'installation sous Windows
- Lancer l'installation sous Linux
- Configurer MySQL
- Choisir le type de serveur
- Utiliser la base de données
- Utiliser le tablespace InnoDB
- Définir le nombre d'utilisateurs simultanés
- Configurer le réseau
- Utiliser le mode SQL
- Choisir un jeu de caractères par défaut
- Paramétrer les options Windows
- Définir les options de sécurité
- Tester le bon fonctionnement de MySQL
- Le fichier my.ini
- Les autres outils
- La documentation MySQL
- Les interfaces graphiques (GUI Tools)
- Qu'y a-t-il d'autre sur les pages de téléchargement de MySQL ?
- Utiliser MySQL
- Un démon à votre service : mysqld
- Utiliser MySQL avec le client texte
- Utilité du client texte
- Se connecter avec le client texte
- Passer des commandes dans le client texte
- Le client mysqld et les fichiers texte
- Utiliser MySQL avec une interface graphique
- MySQL Administrator 1.2.1 bêta
- MySQL Query Browser 1.2.1 bêta
- PhpMyAdmin 2.8.1-rc1
- Toad for MySQL 2.0.1.400 (Quest Software)
- Incorporer MySQL dans un programme
- Atelier : installez le fichier d'aide
- Exercices
- Solutions commentées
- Modéliser une base de données
- Cahier des charges
- Introduction à la modélisation relationnelle
- Notion de table
- Répartition des informations entre plusieurs tables
- Notion de cardinalité
- Tables et hiérarchie
- Les clés
- Les numéros automatiques
- Les clés naturelles
- Les clés étrangères
- Relation plusieurs à plusieurs
- Des solutions intuitives
- Solution normalisée
- Atelier : modélisez la gestion des prêts
- Présentation
- Exercices
- Modélisation
- Solutions commentées
- Créer une base de données
- Le langage SQL
- Présentation du langage
- Premières instructions SQL
- Les bases de la syntaxe SQL
- Créer des tables et des colonnes
- Les types de colonnes et les options associées au type
- Créer la table Auteurs
- Des colonnes obligatoires ou "nullables"
- Les valeurs par défaut
- Écrire les valeurs littérales en SQL
- Intégrité et performance
- Les index
- Les moteurs de stockage
- L'intégrité référentielle
- Mémento
- Convention de la documentation MySQL
- Glossaire des instructions DDL et utilitaires
- Atelier : mettez en place la gestion des prêts
- Exercices
- Solutions commentées
- Premières requêtes SQL avec Select
- Les requêtes simples
- Première requête
- Architecture d'ensemble d'une requête SELECT
- Le rôle de la clause FROM
- Choix des colonnes avec SELECT
- Les conditions avec la clause WHERE
- L'ordre de tri avec la clause ORDER BY
- Le contrôle du nombre de lignes avec la clause LIMIT
- Les requêtes multitables
- Utiliser une relation simple
- Les requêtes distinctes
- Atelier : utilisez une base de suivi d'audience web
- Présentation
- Exercices
- Solutions commentées
- L'agrégation et le regroupement
- L'agrégation globale
- Notion d'agrégation
- Les fonctions d'agrégation classiques
- COUNT sur une colonne ou COUNT(*) ?
- L'agrégation avec regroupement
- Notion de regroupement
- Le regroupement multiple
- Les conditions sur les résultats du comptage avec la clause HAVING
- Le regroupement sur des clés primaires
- L'optimisation du regroupement par MySQL
- Les agrégations avancées
- L'agrégation des valeurs distinctes
- La fonction Group_Concat
- Autres fonctions d'agrégation
- Les sous-totaux avec WITH ROLLUP
- Atelier : faites des statistiques d'audience web
- Présentation
- Exercices
- Solutions commentées
- Modifier les données
- Les requêtes de modification simples
- La démarche d'ajout
- Ajouter des données avec INSERT
- Insertion, colonnes muettes et valeurs par défaut
- Retrouver le numéro automatique attribué lors de l'insertion
- Modifier des données avec UPDATE
- Strict Mode et respect des contraintes d'intégrité
- La suppression avec DELETE
- Purger une table avec TRUNCATE
- Les requêtes de modification combinées
- Ajouter, remplacer avec REPLACE
- Ajouter, modifier avec INSERT ON DUPLICATE
- KEY UPDATE
- INSERT SELECT et REPLACE SELECT
- Les requêtes de modification multitables
- UPDATE multitable
- DELETE multitable
- Atelier : gérer les prêts de la bibliothèque
- Présentation
- Exercices
- Solutions commentées
- Les opérateurs et les fonctions
- Les opérateurs
- Les opérateurs de calcul numérique
- La notion de précédence
- L'opérateur de calcul temporel INTERVAL
- Les opérateurs de comparaison
- Combiner des conditions avec les opérateurs logiques
- Le traitement de NULL
- La structure conditionnelle CASE WHEN
- Les fonctions
- La syntaxe des fonctions
- Les fonctions mathématiques
- Les fonctions textuelles
- Les fonctions de comparaison
- Les fonctions de conversion et de conversion implicite
- Les fonctions temporelles
- Les fonctions d'information
- Atelier : entraînez-vous aux calculs
- Exercices
- Solutions commentées
- Les jointures et autres combinaisons de tables
- La notion de produit cartésien
- Les jointures
- Jointures, produit cartésien et conditions
- L'écriture normalisée des jointures
- Les jointures externes
- Les jointures complexes
- Les instances multiples d'une même table et l'autojointure
- L'union
- Atelier : découvrez quelques recherches complexes
- Exercices
- Solutions commentées
- Les sous-requêtes
- Première approche
- Types et utilisation des sous-requêtes
- Les sous-requêtes scalaires
- Les sous-requêtes renvoyant une seule ligne avec un constructeur de ligne
- Les sous-requêtes dans le FROM
- Présentation
- Intérêt des sous-requêtes dans le FROM
- La corrélation
- Les opérateurs de sous-requêtes
- Les sous-requêtes avec IN
- Les sous-requêtes avec ANY et ALL
- Les équivalences entre ANY et ALL
- Les sous-requêtes avec EXISTS
- Les limites des sous-requêtes
- Atelier : recherchez et éliminez les doublons
- Exercices
- Solutions commentées
- Gérer les utilisateurs
- Les bases MySQL
- La connexion des utilisateurs à MySQL
- Notion de compte utilisateur
- Les mots de passe
- Ambiguïté des comptes
- Les privilèges des utilisateurs
- Les privilèges globaux
- Les privilèges liés à des objets
- La hiérarchie des autorisations
- Quand un changement de privilège prend-il effet ?
- Déléguer ses privilèges (GRANT OPTION)
- Accorder tous les privilèges
- Connaître les privilèges accordés
- Révoquer des privilèges
- Limiter les ressources des utilisateurs
- Atelier : gérer des rôles d'utilisateurs avec le DML
- Présentation
- Retour sur la base MySQL
- Exercices
- Solutions commentées
- Les vues
- Créer et utiliser des vues
- Premier exemple
- La double nature des vues
- Gérer les vues
- Modification de données à travers les vues
- Les vues et le système de privilège
- Les privilèges de gestion des vues
- Les privilèges de tables associées aux vues
- Atelier : utilisez le double rôle des vues
- Exercices
- Solutions commentées
- Sécuriser les modifications avec les transactions
- Intérêt et mise en oeuvre des transactions atomiques
- Notion de processus atomique
- Première transaction
- Transactions avec et sans l'Autocommit
- Validation implicite des transactions
- Isolation et concurrence
- Les niveaux d'isolation
- Les prêts de livres et leur réservation
- Les réservations concurrentes
- Changer le niveau d'isolation
- La lecture cohérente
- Les transactions en série
- L'interblocage et sa résolution par MySQL
- Les verrous de ligne
- Mémento
- Ouvrir et fermer une transaction
- Les verrous posés par les ordres DML sur les tables InnoDB
- La documentation du mécanisme des transactions
- Le SQL dynamique
- Les procédures stockées
- Créer une procédure stockée
- Méthodologie de test
- Exécuter une procédure stockée
- Les variables locales et scalaires - Select
- Choisir avec IF THEN
- La paramètre de sortie
- La variable utilisateur
- Les procédures et les transactions
- Les gestionnaires d'erreur
- Les boucles et les curseurs
- Gérer les routines et les privilèges associés
- Les fonctions stockées
- Créer une fonction
- Appeler une fonction
- Le gestionnaire d'erreur dans une fonction
- Les déclencheurs (triggers)
- Gérer un déclencheur
- Fonctionnement des déclencheurs
- Les déclencheurs et l'atomicité
- Gérer les déclencheurs et les privilèges associés
- Contexte d'exécution des déclencheurs
- Atelier : consolidez le processus de prêt
- Exercices
- Solutions commentées
- Trois outils pour le texte
- Les jeux de caractères et les collations
- La notion de jeu de caractères
- La notion de collation
- Le jeu de caractères et la collation des données
- Effet de la collation sur les requêtes
- Le jeu de caractères et la collation des requêtes
- Les conflits de jeux et de collations
- La recherche en Full-Text
- Qu'est-ce que la recherche Full-Text ?
- Mettre en place une indexation Full-Text/li>
- La fonction MATCH()
- Croiser deux séries de mots-clés
- Les options de recherche
- Les expressions régulières
- Premier essai
- Les classes de caractères
- Les ancres et les quantificateurs
- Une alternative
- Les pré,cautions d'emploi
- Mémento
- Les fonctions liées au système des jeux de caractères et aux collations
- Les mé,tacaractères disponibles pour les expressions régulières
- Les classes de caractères prédéfinies
- Atelier : explorer les outils textuels
- Exercices
- Solutions commentées
- Les tâches d'administration
- Explorer et surveiller le serveur
- La base information_schema
- Surveillance des processus
- Paramétrer MySQL
- Principes et outils d'optimisation
- Premiers tests
- Effets d'un index
- MySQL utilise-t-il vraiment l'index ?
- Copier et exporter des données
- Exporter avec SELECT INTO OUTFILE
- Exporter avec mysqldump
- Mémento
- Astuces d'optimisation
- Utiliser MySQL avec PHP
- Fonctionnement d'une architecture 3-tier
- Principes de fonctionnement
- Politiques d'accès au serveur MySQL
- Visibilité du code PHP
- Installer l'extension MySQLi
- Prérequis
- Installer MySQLi sous Windows
- Installer MySQLi sous Linux
- Premiers pas avec MySQLi
- Un scénario simple pour débuter avec MySQLi
- Les deux styles de programmation
- Premier script, pas à pas
- Curseur côté serveur
- Un langage dans un langage dans un langage
- De PHP vers MySQL
- De MySQL à HTML, via PHP
- De HTML/HTTP vers MySQL, via PHP
- Saisies utilisateur et sécurité
- Injection de variable, injection de valeur
- Injection SQL
- Les commandes préparées
- Mécanisme des commandes préparées
- Syntaxe des commandes préparées
- Exemple de script
- Intérêt et limites des commandes préparées
- Bonnes pratiques
- Atelier : construisez une interface web
- Fiche ouvrage
- Réservation d'ouvrage
- Interface de recherche
- Solutions commentées
- Annexes
- Glossaire
- Glossaire français-anglais
- Lexique anglais-français
- Bibliographie
- Site officiel de MySQL
- Outils à utiliser avec MySQL
- Sur la modélisation relationnelle et le langage SQL
- Sur PHP
- Sur les expressions régulières
- Groupe de discussion Usenet
- Index
