如果您忘记了数据库或表的名称,或者给定表的结构是什么(例如,它的列叫什么)怎么办?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
而不是空。
DESC是DESCRIBE的缩写形式
您可以使用SHOW CREATE TABLE获取创建现有表所需的CREATE TABLE语句。
如果表上有索引,SHOW INDEX FROM
生成有关它们的信息。tbl_name