获取有关数据库和表的信息

如果你忘记了数据库或表的名称,或者给定表的结构是什么(例如,它的列被称为什么),该怎么办?MySQL通过几个语句来解决这个问题,这些语句提供有关它支持的数据库和表的信息。

你之前已经看过SHOW DATABASES,它列出了服务器管理的数据库,要找出当前选择的数据库,请使用DATABASE()函数:

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

如果尚未选择任何数据库,则结果为NULL

要找出默认数据库包含的表(例如,当你不确定表的名称时),请使用以下语句:

mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event               |
| pet                 |
+---------------------+

此语句生成的输出中的列名称始终为Tables_in_db_name,其中db_name是数据库的名称。

如果要了解表的结构,DESCRIBE语句很有用,它显示有关每个表的列的信息:

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而不是空。

DESCDESCRIBE的简短形式。

你可以使用SHOW CREATE TABLE语句获取创建现有表所需的CREATE TABLE语句。

如果表上有索引,则SHOW INDEX FROM tbl_name会生成有关它们的信息。


上一篇:使用多个表

博弈
2.5k 声望1.5k 粉丝

态度决定一切