在 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- 此列的数据类型
NullYES或者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 语句列出表的列。