You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL命令行中获取数据表列的全部属性(含注释等)

MySQL数据列属性界面

MySQL查看完整列属性的方法

MySQL数据列共包含13项属性:

  • Field(字段名)
  • Type(数据类型)
  • Length(字段长度)
  • Unsigned(无符号)
  • Zerofill(零填充)
  • Binary(二进制)
  • Allow Null(允许空值)
  • Key(索引类型)
  • Default(默认值)
  • Extra(额外属性)
  • Encoding(字符编码)
  • Collation(排序规则)
  • Comment(字段注释)

可视化MySQL客户端可以直接展示全部属性,但终端命令行中执行desc <tbl_name>仅能返回部分属性,示例返回如下:

mysql> desc user;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int unsigned | NO   | PRI | NULL    | auto_increment |
| name     | varchar(20)  | NO   | MUL |         |                |
| nickname | varchar(50)  | YES  | UNI | NULL    |                |
| age      | tinyint      | YES  |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

desc命令不会返回Zerofill、Binary、Encoding、Collation、Comment属性,要查看这些缺失属性,可以用以下三种命令:


1. SHOW FULL COLUMNS 命令

这是最简便的查询方式,语法:

SHOW FULL COLUMNS FROM <表名>;

相比desc,这个命令的返回结果会额外包含Collation、Privileges、Comment三列:

  • Zerofill、Binary属性会直接显示在Type列的字段类型后缀中
  • 字符编码可以通过Collation值的前缀判断,比如utf8mb4_general_ci对应的编码就是utf8mb4

示例返回:

mysql> SHOW FULL COLUMNS FROM user;
+----------+------------------------+--------------------+------+-----+---------+----------------+---------------------------------+----------+
| Field    | Type                   | Collation          | Null | Key | Default | Extra          | Privileges                      | Comment  |
+----------+------------------------+--------------------+------+-----+---------+----------------+---------------------------------+----------+
| id       | int unsigned zerofill  | NULL               | NO   | PRI | NULL    | auto_increment | select,insert,update,references | 用户ID   |
| name     | varchar(20) binary     | utf8_bin           | NO   | MUL |         |                | select,insert,update,references | 用户名   |
| nickname | varchar(50)            | utf8mb4_general_ci | YES  | UNI | NULL    |                | select,insert,update,references | 用户昵称 |
| age      | tinyint                | NULL               | YES  |     | NULL    |                | select,insert,update,references | 用户年龄 |
+----------+------------------------+--------------------+------+-----+---------+----------------+---------------------------------+----------+

2. 查询 information_schema.COLUMNS 系统表

如果需要将所有属性拆分为独立列返回、精准获取每个字段的参数,可以直接查询MySQL内置的元数据系统表,示例语法:

SELECT 
  COLUMN_NAME AS `Field`,
  COLUMN_TYPE AS `Type`,
  CHARACTER_MAXIMUM_LENGTH AS `Length`,
  IF(COLUMN_TYPE LIKE '%unsigned%', 'YES', 'NO') AS `Unsigned`,
  IF(COLUMN_TYPE LIKE '%zerofill%', 'YES', 'NO') AS `Zerofill`,
  IF(COLLATION_NAME LIKE '%_bin' OR COLUMN_TYPE LIKE '%binary%', 'YES', 'NO') AS `Binary`,
  IS_NULLABLE AS `Allow Null`,
  COLUMN_KEY AS `Key`,
  COLUMN_DEFAULT AS `Default`,
  EXTRA AS `Extra`,
  CHARACTER_SET_NAME AS `Encoding`,
  COLLATION_NAME AS `Collation`,
  COLUMN_COMMENT AS `Comment`
FROM information_schema.COLUMNS 
WHERE 
  TABLE_SCHEMA = DATABASE() -- 替换为指定库名可跨库查询
  AND TABLE_NAME = 'user'; -- 替换为目标表名

执行后会直接返回全部13项列属性,不需要从Type字段中解析参数,适合批量导出表结构的场景。

3. SHOW CREATE TABLE 命令

如果需要直观查看字段的完整定义,可以执行以下命令查看建表语句:

SHOW CREATE TABLE <表名>\G

末尾加\G会将结果垂直排版,避免字段过多时折行混乱。返回结果中会完整展示每个字段的所有属性,包括零填充、二进制、字符集、排序规则、注释等全部配置,示例:

mysql> SHOW CREATE TABLE user\G
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `id` int unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `name` varchar(20) binary NOT NULL COMMENT '用户名',
  `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户昵称',
  `age` tinyint DEFAULT NULL COMMENT '用户年龄',
  PRIMARY KEY (`id`),
  UNIQUE KEY `nickname` (`nickname`),
  KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1 row in set (0.00 sec)

内容的提问来源于stack exchange,提问作者Willis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 10:21:39