如果你忘记了数据库名或表名,或者一个给定表的框架是怎样的(例如,它每列的名字是什么).MySQL可以通过一些提供数据库和表相关信息的命令来处理这些问题.

前面看到过SHOW DATABASES,他会列出服务器管理的数据库.为了查找当前选中的数据库,使用DATABASE()函数:

1
2
3
4
5
6
mysql> SELECT DATABASE();
+————————————+
| DATABASE() |
+————————————+
| menagerie |
+————————————+

如果你还没有选中任何数据库,结果为NULL.

为了查找默认数据库包含的表(例如,你不确定表名时),使用这个命令:

1
2
3
4
5
6
7
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+

如果你想查找一个表的框架,可以使用DESCRIBE,他会显示表每列的信息:

1
2
3
4
5
6
7
8
9
10
11
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Field表明列名,Type是列的数据类型,NULL表明这一列是否可以包含NULL值,Key表明这一列是否被索引,Default指定列的默认值,Extra显示关于列的特殊信息:如果一列使用AUTO_INCREMENT创建,其值将会是auto_increment而不是为空.

英文原文:

Getting Information About Databases and Tables