在 MySQL 中使用 DESC 查看一个表的所有的列
在 MySQL 中,DESC
语句用来显示一个表的所有的列的信息。
有时候,您或许想查看一个表中的所有列的信息。MySQL 提供了两个命令帮你完成此操作:
- 使用
DESC
语句列出表中的列 - 使用
SHOW COLUMNS
语句列出表中的列
MySQL DESC
语句是 SHOW COLUMNS
的简化形式,本文主要说明 DESC
语句的用法。
MySQL DESC 用法
要显示一个表的所有的列,请按照如下方法使用 DESC
语句:
DESC [database_name.]table_name
这里,
database_name
是数据库的名字。当你已经选择了一个数据库作为默认数据库时,database_name.
是可以省略的。table_name
是表的名字。
您也可以使用 DESCRIBE
代替 DESC
。DESC
是 DESCRIBE
的缩写,他们完全一样。
如果您没有指定默认数据库,又省略了数据库名字,MySQL 将会返回一个错误: ERROR 1046 (3D000): No database selected。
返回的列
MySQL DESC
语句返回 6 个列:
Field
- 此列的名称
Type
- 此列的数据类型
Null
YES
或者NO
指示此列是否可以为 NULLKey
- 此列的索引定义
Default
- 此列的默认值
Extra
- 其他的额外信息。比如
auto_increment
等。
MySQL DESC 实例
以下实例显示如何使用 DESC
语句列出来自 Sakila 示例数据库中的表 actor
表中的列。
-
使用 mysql 客户端工具连接到 MySQL 服务器:
mysql -u root -p
输入
root
帐户的密码并按Enter
:Enter password: ********
-
直接运行下面的命令尝试列出所有的表:
DESC actor;
此时,MySQL 会返回一个错误:ERROR 1046 (3D000): No database selected 。 因为您还未指定默认的数据库。
-
在
DESC
语句中指定数据库和表名:DESC sakila.actor;
下面是输出:
+-------------+-------------------+------+-----+-------------------+-----------------------------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------------+------+-----+-------------------+-----------------------------------------------+ | actor_id | smallint unsigned | NO | PRI | NULL | auto_increment | | first_name | varchar(45) | NO | | NULL | | | last_name | varchar(45) | NO | MUL | NULL | | | last_update | timestamp | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP | +-------------+-------------------+------+-----+-------------------+-----------------------------------------------+
-
使用 USE 命令设置默认的数据库:
USE sakila;
-
直接运行下面的命令尝试列出所有的表:
DESC actor;
此时, 此命令的输出和上面的命令
DESC sakila.actor;
相同。这是因为此时的默认数据库是sakila
。
结论
在本文中,您学习了在 MySQL 中如何使用 DESC
语句列出一个表的所有的列。 DESC
语句是 SHOW COLUMNS
的快捷命令。如果您想对结果进行过滤或者显示更多的信息,请使用 SHOW COLUMNS
语句列出表的列。