© Éditions Eyrolles
XI
Table des matières
Apprendre SQL avec MySQL
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Division inexacte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Division exacte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Résulats en HTML ou XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Écriture dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5 Contrôle des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Création d’un utilisateur ( CREATE USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Modification d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Renommer un utilisateur ( RENAME USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Suppression d’un utilisateur ( DROP USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Gestion des bases de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Création d’une base ( CREATE DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Sélection d’une base de données ( USE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Modification d’une base ( ALTER DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Suppression d’une base ( DROP DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Privilèges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Niveaux de privilèges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Tables de la base mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Table mysql.user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Attribution de privilèges ( GRANT ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Table mysql.db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Table mysql.host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Table mysql.tables_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Table mysql.columns_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Table mysql.procs_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Révocation de privilèges ( REVOKE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Attributions et révocations « sauvages » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Accès distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Connexion par l’interface de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Table mysql.host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Création d’une vue ( CREATE VIEW ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Vues monotables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Vues complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Autres utilisations de vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Transmission de droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Modification d’une vue ( ALTER VIEW ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
XI
Table des matières
Apprendre SQL avec MySQL
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Division inexacte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Division exacte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Résulats en HTML ou XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Écriture dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5 Contrôle des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Création d’un utilisateur ( CREATE USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Modification d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Renommer un utilisateur ( RENAME USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Suppression d’un utilisateur ( DROP USER ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Gestion des bases de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Création d’une base ( CREATE DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Sélection d’une base de données ( USE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Modification d’une base ( ALTER DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Suppression d’une base ( DROP DATABASE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Privilèges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Niveaux de privilèges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Tables de la base mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Table mysql.user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Attribution de privilèges ( GRANT ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Table mysql.db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Table mysql.host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Table mysql.tables_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Table mysql.columns_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Table mysql.procs_priv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Révocation de privilèges ( REVOKE ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Attributions et révocations « sauvages » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Accès distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Connexion par l’interface de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Table mysql.host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Création d’une vue ( CREATE VIEW ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Vues monotables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Vues complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Autres utilisations de vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Transmission de droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Modification d’une vue ( ALTER VIEW ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
