如果您忘记了数据库或表的名称,或者给定表的结构是什么,该怎么办?MySQL通过几个语句来解决这个问题,这些语句提供有关它支持的数据库和表的信息。
您之前看到过SHOW DATABASES
,它列出了服务器管理的数据库。要找出当前选择的数据库,请使用以下 DATABASE()
函数:
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
如果您尚未选择任何数据库,则结果为 NULL
。
要找出默认数据库包含的表(例如,当您不确定表的名称时),请使用以下语句:
mysql> use menagerie
Database changed
mysql> show tables;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
2 rows in set (0.01 sec)
如果你想了解一个表的结构,该 DESCRIBE
语句显示有关每个表列的信息:
mysql> describe event;
+--------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| date | date | YES | | NULL | |
| type | varchar(20) | YES | | NULL | |
| remark | varchar(255) | YES | | NULL | |
+--------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Field
表示列名称,Type
是列 的数据类型,NULL
指示列 是否可以包含 NULL
值,Key
指示列是否已编制索引,并Default
指定列的默认值。Extra显示有关列的特殊信息:如果使用AUTO_INCREMENT选项创建列,则该值将为auto_increment而不是empty。
show create table 可以显示创建表的命令语句
mysql> show create table event;
+-------+--------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------+
| event | CREATE TABLE `event` ( |
| | `name` varchar(20) DEFAULT NULL, |
| | `date` date DEFAULT NULL, |
| | `type` varchar(20) DEFAULT NULL, |
| | `remark` varchar(255) DEFAULT NULL |
| | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+--------------------------------------------------------------------+
1 row in set (0.00 sec)