在 MySQL 中获取表结构及字段描述信息,有以下几种方法:

使用 INFORMATION_SCHEMA 数据库(推荐)

这是最标准的方法,可以获取详细的元数据信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- 获取指定数据库的所有表结构信息
SELECT
TABLE_NAME AS '表名',
COLUMN_NAME AS '字段名',
COLUMN_TYPE AS '数据类型',
IS_NULLABLE AS '是否为空',
COLUMN_DEFAULT AS '默认值',
COLUMN_COMMENT AS '字段描述'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
ORDER BY TABLE_NAME, ORDINAL_POSITION;

-- 获取特定表的字段信息
SELECT
COLUMN_NAME AS '字段名',
COLUMN_TYPE AS '数据类型',
IS_NULLABLE AS '是否为空',
COLUMN_DEFAULT AS '默认值',
EXTRA AS '额外信息',
COLUMN_COMMENT AS '字段描述'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
AND TABLE_NAME = 'your_table_name'
ORDER BY ORDINAL_POSITION;

使用 SHOW 命令

1
2
3
4
5
6
7
8
-- 显示所有表
SHOW TABLES;

-- 显示表结构(包含字段注释)
SHOW FULL COLUMNS FROM your_table_name;

-- 显示表创建语句(包含注释信息)
SHOW CREATE TABLE your_table_name;

获取表级别的注释信息

1
2
3
4
5
6
-- 获取表的注释信息
SELECT
TABLE_NAME AS '表名',
TABLE_COMMENT AS '表描述'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name';

完整的表结构查询示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 获取数据库完整结构信息
SELECT
t.TABLE_NAME AS '表名',
t.TABLE_COMMENT AS '表描述',
c.COLUMN_NAME AS '字段名',
c.COLUMN_TYPE AS '数据类型',
c.IS_NULLABLE AS '是否为空',
c.COLUMN_DEFAULT AS '默认值',
c.COLUMN_COMMENT AS '字段描述',
c.COLUMN_KEY AS '键类型'
FROM INFORMATION_SCHEMA.TABLES t
JOIN INFORMATION_SCHEMA.COLUMNS c
ON t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_NAME = c.TABLE_NAME
WHERE t.TABLE_SCHEMA = 'your_database_name'
ORDER BY t.TABLE_NAME, c.ORDINAL_POSITION;

获取索引信息

1
2
3
4
5
6
7
8
9
10
-- 获取表的索引信息
SELECT
TABLE_NAME AS '表名',
INDEX_NAME AS '索引名',
COLUMN_NAME AS '字段名',
SEQ_IN_INDEX AS '索引顺序',
INDEX_TYPE AS '索引类型'
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_database_name'
ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;

实用查询示例

1
2
3
4
5
6
7
8
9
10
11
12
-- 查询当前数据库的所有表结构
SELECT
TABLE_NAME AS '表名',
COLUMN_NAME AS '字段名',
COLUMN_TYPE AS '数据类型',
IF(IS_NULLABLE = 'YES', '是', '否') AS '允许为空',
IFNULL(COLUMN_DEFAULT, 'NULL') AS '默认值',
IF(COLUMN_KEY = 'PRI', '是', '否') AS '主键',
COLUMN_COMMENT AS '字段描述'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
ORDER BY TABLE_NAME, ORDINAL_POSITION;

注意事项

  1. 权限要求:需要具有查询 INFORMATION_SCHEMA 数据库的权限

  2. 数据库名称:将 your_database_name 替换为实际的数据库名

  3. 表名称:将 your_table_name 替换为实际的表名

  4. 当前数据库:使用 DATABASE() 函数可以引用当前连接的数据库

这些方法可以帮助你全面了解 MySQL 数据库的表结构信息,包括字段描述、数据类型、约束条件等重要元数据。