8.5 Informations sur les bases de données et tables

Que se passe t il si vous oubliez le nom d'une base de données, d'une table ou la structure d'une table donnée ? MySQL résoud ce problème avec plusieurs commandes qui fournissent des informations sur les bases et les tables.

Vous avez déjà rencontré SHOW DATABASES, qui liste les bases gérés par le serveur. Pour connaître la base de données courante, utilisez DATABASE():

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie  |
+------------+

Si vous n'avez pas de base sélectionnée, le résultat est vide.

Pour connaître les tables de la base de données courante, (par exemple, si vous n'êtes pas sur du nom d'une table), utilisez la commande suivante :

mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| event               |
| animaux             |
+---------------------+

Pour connaître les colonnes d'une table, (par exemple, si vous n'êtes pas sur du nom d'une colonne), utilisez la commande suivante :

mysql> DESCRIBE animaux;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| nom            | varchar(20) | YES  |     | NULL    |       |
| proprietaire   | varchar(20) | YES  |     | NULL    |       |
| espece         | varchar(20) | YES  |     | NULL    |       |
| genre          | char(1)     | YES  |     | NULL    |       |
| naissance      | date        | YES  |     | NULL    |       |
| mort           | date        | YES  |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+

Field donne le nom de la colonne, Type est le type de données, Null indique si la colonne accepte la valeur NULL ou pas, Key indique que la colonne est manual_tocée, et Default indique la valeur par défaut de la colonne.

Si vous avez des manual_toc sur une table, SHOW manual_toc FROM tbl_nom fournit la liste des informations les concernant.