- 1 Qu’est‑ce qu’un « schéma » dans MySQL ? (Terminologie et concepts fondamentaux)
- 2 [Basics] Comment vérifier les schémas MySQL (liste, changement, tables)
- 3 [Advanced] Récupérer des informations détaillées à l’aide d’INFORMATION_SCHEMA
- 4 [Expert] Utiliser les métadonnées InnoDB et le schéma sys (MySQL 8.0+)
- 5 [Quick Reference by Use Case] Commandes recommandées
- 6 [Troubleshooting and Error Handling]
- 7 FAQ (Foire aux questions)
- 7.1 Q1. En quoi un schéma MySQL diffère‑t‑il des schémas dans Oracle ou PostgreSQL ?
- 7.2 Q2. Quelle est la façon la plus efficace d’obtenir des informations détaillées sur les colonnes ?
- 7.3 Q3. Comment vérifier le jeu de caractères ou le classement ?
- 7.4 Q4. Je n’ai pas la permission de voir les informations. Que faire ?
- 7.5 Q5. Comment vérifier les informations de schéma dans les outils GUI ?
- 8 Conclusion et liens associés
Qu’est‑ce qu’un « schéma » dans MySQL ? (Terminologie et concepts fondamentaux)
De nombreux débutants qui viennent de commencer à utiliser MySQL, ou ceux qui migrent depuis d’autres systèmes de bases de données, tombent souvent sur le terme « schéma ». Même si le mot « schéma » est employé dans différents SGBD, son sens peut varier selon le système. Le comprendre clairement dès le départ est essentiel.
À l’origine, « schéma » désigne une « structure » ou un « plan ». Dans le contexte des systèmes de gestion de bases de données relationnelles (SGBDR), il fait généralement référence à la définition structurelle complète d’une base de données, incluant la configuration des tables, les informations de colonnes, les index, les vues, les procédures stockées, etc.
Cependant, dans MySQL, les termes « schéma » et « base de données » sont traités comme presque identiques. La documentation officielle de MySQL indique clairement que « schéma = base de données », et les deux sont utilisés de façon interchangeable. Par exemple, pour créer un schéma, on utilise la commande CREATE DATABASE.
Dans d’autres SGBDR tels que Oracle et PostgreSQL, « schéma » et « base de données » sont clairement distingués :
- Oracle : Un schéma est un ensemble d’objets géré par utilisateur. La base de données est le conteneur physique, et plusieurs schémas y résident.
- PostgreSQL : Une seule base de données peut contenir plusieurs schémas (espaces de noms), permettant de classer et de gérer les tables et les vues.
En revanche, dans MySQL, « base de données » = « schéma ». Quel que soit le terme utilisé dans les explications, les opérations réelles et les méthodes de gestion restent les mêmes. Ainsi, « vérifier les schémas » dans MySQL signifie essentiellement « vérifier les bases de données ».
Dans la documentation en anglais, les deux termes apparaissent, et les manuels MySQL les utilisent parfois de façon interchangeable. En pratique, lorsqu’on voit « schéma » dans la documentation MySQL, on peut l’interpréter comme signifiant « base de données ».
En comprenant correctement l’usage de la terminologie propre à MySQL, vous éviterez les confusions lors de la gestion des systèmes ou de la consultation de la documentation technique. À partir de la section suivante, nous expliquerons clairement comment vérifier les schémas (bases de données) dans MySQL, étape par étape.
[Basics] Comment vérifier les schémas MySQL (liste, changement, tables)
Pour comprendre le contenu d’un « schéma (base de données) » dans MySQL, il est important de connaître les commandes et procédures de base. Dans cette section, nous expliquons soigneusement les opérations courantes — de la liste des schémas à la vérification des tables et des colonnes. Même les débutants peuvent suivre.
Lister les schémas (bases de données)
Dans MySQL, vous pouvez créer plusieurs bases de données (schémas) sur un serveur.
Pour afficher la liste, utilisez la commande suivante :
SHOW DATABASES;
Lorsqu’elle est exécutée, cette commande affiche les noms de tous les schémas (bases de données) du serveur. Dans certains environnements, vous pouvez également utiliser SHOW SCHEMATA;, qui produit le même résultat que SHOW DATABASES;. Si vous vous préoccupez des différences de version, consultez le manuel officiel.
Changer le schéma actif
Pour travailler sur un schéma (base de données) spécifique, vous devez d’abord le sélectionner.
Pour changer de schéma, utilisez :
USE database_name;
Par exemple, pour utiliser un schéma nommé sample_db, saisissez :
USE sample_db;
Toutes les opérations suivantes s’appliqueront à ce schéma (base de données) sélectionné.
Vérifier la structure des tables et des colonnes
Chaque schéma contient plusieurs tables.
Pour les lister, utilisez :
SHOW TABLES;
Cette commande affiche tous les noms de tables du schéma actuellement sélectionné.
Pour inspecter la structure d’une table spécifique (noms de colonnes, types de données, paramètres NULL, etc.), utilisez l’une des commandes suivantes :
DESCRIBE table_name;
ou
SHOW COLUMNS FROM table_name;
Les deux commandes renvoient des résultats presque identiques. Par exemple, pour vérifier la structure des colonnes de la table users, saisissez :
DESCRIBE users;
Vérifier les paramètres détaillés du schéma
Si vous souhaitez examiner les paramètres propres au schéma, tels que le jeu de caractères et le classement, utilisez :
SHOW CREATE DATABASE database_name;
Cette commande affiche la déclaration SQL utilisée pour créer le schéma (base de données). Elle est particulièrement utile pour vérifier le jeu de caractères et les paramètres de collation afin d’éviter les problèmes liés à la configuration.
Points clés
- Toutes les tâches d’inspection de base peuvent être effectuées à l’aide des commandes MySQL standard.
- Les résultats sont affichés directement dans le terminal (ligne de commande), vous permettant de poursuivre efficacement.
- La plupart des tâches peuvent également être effectuées à l’aide d’outils graphiques tels que MySQL Workbench ou phpMyAdmin, mais les commandes en ligne de commande sont souvent plus fiables lors du dépannage.
Les commandes présentées dans cette section constituent des connaissances fondamentales pour quiconque travaille régulièrement avec MySQL.
[Advanced] Récupérer des informations détaillées à l’aide d’INFORMATION_SCHEMA
Alors que les commandes MySQL de base vous permettent de vérifier les structures de schémas et de tables, des informations plus détaillées ou une extraction massive sont mieux gérées à l’aide d’INFORMATION_SCHEMA. INFORMATION_SCHEMA est une base de données système qui vous permet de référencer les métadonnées gérées en interne par le serveur MySQL sous forme de tables SQL standard.
Parce qu’elle permet une récupération flexible basée sur SQL des informations nécessaires, elle est très utile pour l’automatisation et le reporting.
Qu’est-ce qu’INFORMATION_SCHEMA ?
INFORMATION_SCHEMA est l’une des bases de données système incluses par défaut dans MySQL.
Elle contient des tables telles que « SCHEMATA », « TABLES » et « COLUMNS », qui stockent les métadonnées concernant les bases de données (schémas), les tables et les colonnes.
Vous pouvez interroger ces tables à l’aide d’instructions SELECT standard pour extraire les configurations internes et les détails structurels.
Principaux cas d’utilisation :
- Récupérer des informations détaillées sur les schémas et les tables
- Vérifier les types de données, les contraintes et les valeurs par défaut
- Effectuer une extraction flexible avec des filtres et des agrégations
Récupérer les informations du schéma
Pour récupérer une liste et les attributs de tous les schémas (bases de données) :
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
Cette requête renvoie les noms des schémas (SCHEMA_NAME), les jeux de caractères par défaut (DEFAULT_CHARACTER_SET_NAME), les collations (DEFAULT_COLLATION_NAME) et d’autres détails de configuration.
Récupérer les informations sur les tables et les colonnes
Pour récupérer en masse des informations détaillées sur les tables ou les colonnes, utilisez les tables « TABLES » et « COLUMNS ».
Exemple : Récupérer toutes les informations des tables d’un schéma
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'target_schema_name';
Exemple : Récupérer des informations détaillées sur les colonnes
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'target_schema_name'
AND TABLE_NAME = 'target_table_name';
Cela fournit les noms de colonnes (COLUMN_NAME), les types de données (DATA_TYPE), les paramètres NULL (IS_NULLABLE), les valeurs par défaut (COLUMN_DEFAULT) et les longueurs maximales (CHARACTER_MAXIMUM_LENGTH).
Exemples pratiques de filtrage
INFORMATION_SCHEMA permet un filtrage flexible à l’aide de clauses WHERE.
Exemple 1 : Extraire toutes les colonnes de type INT d’un schéma
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'target_schema_name'
AND DATA_TYPE = 'int';
Exemple 2 : Trouver les tables utilisant une collation spécifique
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'target_schema_name'
AND TABLE_COLLATION LIKE 'utf8mb4%';
L’utilisation d’INFORMATION_SCHEMA permet une extraction et une analyse flexibles basées sur SQL de la structure interne de MySQL.
[Expert] Utiliser les métadonnées InnoDB et le schéma sys (MySQL 8.0+)
Une fois que vous êtes à l’aise avec la récupération des informations de schéma et de table, vous pouvez passer à la gestion avancée et à l’analyse des performances. En particulier lors de l’utilisation du moteur de stockage InnoDB ou de la gestion de systèmes à grande échelle, les tables InnoDB d’INFORMATION_SCHEMA et le schéma sys sont extrêmement utiles.
Métadonnées du moteur InnoDB
InnoDB est le moteur de stockage par défaut de MySQL et prend en charge les transactions, le verrouillage au niveau des lignes et les contraintes de clés étrangères.
Les tables utiles liées à InnoDB incluent :
INNODB_TABLES: Informations de base sur les tables gérées par InnoDBINNODB_COLUMNS: Informations sur les colonnesINNODB_INDEXES: Détails des indexINNODB_LOCKS: Informations sur les verrous actuelsINNODB_TRX: Transactions actives
Exemple : Vérifier l’état actuel des verrous
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
Utilisation du schéma sys
Disponible par défaut dans MySQL 5.7 et versions ultérieures (en particulier 8.0+), le schéma sys fournit des vues résumées conviviales du schéma INFORMATION_SCHEMA et des données du performance schema.
Vues couramment utilisées :
sys.schema_table_statistics: Statistiques d’accès aux tablessys.schema_index_statistics: Statistiques d’utilisation des indexsys.innodb_lock_waits: Informations sur les attentes de verrousys.user_summary: Résumés d’activité des utilisateurs
Exemple : Vérifier les attentes de verrou actuelles
SELECT * FROM sys.innodb_lock_waits;
Exemple : Vérifier les statistiques de lecture/écriture pour toutes les tables
SELECT * FROM sys.schema_table_statistics;

Résumé
INFORMATION_SCHEMA et le schéma sys sont des outils puissants qui visualisent l’état interne de MySQL via SQL.
Ils sont particulièrement utiles dans les environnements de production utilisant InnoDB ou visant des opérations avancées et l’optimisation des performances.
[Quick Reference by Use Case] Commandes recommandées
Lors de la vérification des schémas ou des structures de tables dans MySQL, choisir la bonne commande pour votre objectif est essentiel à l’efficacité. Le tableau ci‑dessous résume les commandes couramment utilisées selon le but.
| Purpose | Command / SQL Example | Notes |
|---|---|---|
| List all schemas on the server | SHOW DATABASES; | Most basic command |
| List tables in the selected schema | SHOW TABLES; | Displays tables in current schema |
| Retrieve all table info in a schema | SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'schema_name'; | Includes table attributes |
| Quickly check column definitions | DESCRIBE table_name;SHOW COLUMNS FROM table_name; | Shows column names and types |
| Retrieve detailed column info | SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'schema_name' AND TABLE_NAME = 'table_name'; | Includes NULL and default values |
| Check schema creation settings | SHOW CREATE DATABASE schema_name; | Includes COLLATE and CHARSET |
| Check table creation details | SHOW CREATE TABLE table_name; | Includes indexes and foreign keys |
| Check InnoDB locks and transactions | SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;SELECT * FROM sys.innodb_lock_waits; | Useful for InnoDB |
| Check table/index access statistics | SELECT * FROM sys.schema_table_statistics;SELECT * FROM sys.schema_index_statistics; | Uses sys schema |
| Check user privileges | SHOW GRANTS FOR 'username'@'hostname'; | Verify user permissions |
[Troubleshooting and Error Handling]
Lorsque vous essayez d’inspecter des schémas ou des tables dans MySQL, vous pouvez rencontrer des problèmes tels que des commandes qui ne s’exécutent pas ou des informations qui ne s’affichent pas.
Erreurs d’autorisation (Accès refusé)
Exemples d’erreurs :
ERROR 1044 (42000): Access denied for user 'user'@'host' to database 'mysql'
ERROR 1142 (42000): SHOW command denied to user 'user'@'host' for table 'database'
Solutions :
- Connectez‑vous avec un compte administrateur.
- Demandez les privilèges SHOW ou SELECT nécessaires.
GRANT SHOW DATABASES ON *.* TO 'user'@'host'; FLUSH PRIVILEGES;
Vérifiez les privilèges actuels :
SHOW GRANTS FOR 'user'@'host';
Base de données ou table introuvable
Exemple :
ERROR 1049 (42000): Unknown database 'db_name'
ERROR 1146 (42S02): Table 'db_name.table_name' doesn't exist
Vérifiez les fautes de frappe, la sensibilité à la casse, et confirmez l’existence avec :
SHOW DATABASES;
SHOW TABLES;
Différences de version
Certaines fonctionnalités dépendent de la version de MySQL.
Vérifiez la version :
SELECT VERSION();
Autres problèmes
- Échecs de connexion dus à des problèmes réseau/serveur
- Dépassements de temps d’exécution des requêtes — optimisez les requêtes ou ajustez les paramètres de timeout
FAQ (Foire aux questions)
Q1. En quoi un schéma MySQL diffère‑t‑il des schémas dans Oracle ou PostgreSQL ?
R. Dans MySQL, schéma = base de données. Dans Oracle et PostgreSQL, les schémas et les bases de données sont des concepts séparés.
Q2. Quelle est la façon la plus efficace d’obtenir des informations détaillées sur les colonnes ?
R.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name';
Q3. Comment vérifier le jeu de caractères ou le classement ?
R. Utilisez :
SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;
Q4. Je n’ai pas la permission de voir les informations. Que faire ?
R. Demandez les privilèges appropriés. Vérifiez vos permissions actuelles :
SHOW GRANTS FOR 'username'@'hostname';
Q5. Comment vérifier les informations de schéma dans les outils GUI ?
R. Dans MySQL Workbench ou phpMyAdmin, les schémas apparaissent dans le panneau de navigation à gauche. Vous pouvez également exécuter des commandes SQL dans l’onglet SQL.
Conclusion et liens associés
Résumé
- Dans MySQL, le schéma = base de données.
- Les vérifications de base peuvent être effectuées avec
SHOW DATABASES;,SHOW TABLES;etDESCRIBE table_name;. - INFORMATION_SCHEMA et le schéma sys offrent des informations plus approfondies et une visibilité sur les performances.
- La plupart des problèmes proviennent des permissions, des erreurs de nommage ou des différences de version.
- Gardez les commandes de référence rapide à portée de main pour des opérations efficaces.
Liens associés
- Documentation officielle de MySQL
- Référence INFORMATION_SCHEMA
- Guide du schéma sys
- Guide des privilèges utilisateur MySQL
Épilogue
Nous espérons que ce guide vous aidera à mieux gérer les schémas et les tables MySQL dans vos opérations quotidiennes. Continuez à mettre à jour vos connaissances à mesure que de nouvelles versions de MySQL et des besoins opérationnels évoluent.


