📜  mysql 显示表字符集 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.442000             🧑  作者: Mango

MySQL 显示表字符集 - SQL

在 MySQL 数据库中,可以使用以下 SQL 语句来查看表的字符集以及字符集的校对规则:

SHOW FULL COLUMNS FROM 表名;

其中,表名 是要查看的表的名称。执行这个 SQL 语句后,将会返回表的列信息,其中包括每一列的字符集和校对规则。例如:

| 字段名 | 数据类型 | 不允许为空 | 字符集 | 校对规则 | | ---- | ---- | ---- | ---- | ---- | | id | int(11) unsigned | NO | utf8mb4 | utf8mb4_unicode_ci | | username | varchar(255) | YES | utf8mb4 | utf8mb4_unicode_ci | | password | varchar(255) | YES | utf8mb4 | utf8mb4_unicode_ci |

可以看到,上面的表中每一列的字符集和校对规则都是 utf8mb4utf8mb4_unicode_ci,即使用了 UTF-8 编码。

如果想要查看整个数据库中所有表的字符集和校对规则,可以使用以下 SQL 语句:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = '数据库名称';

其中,数据库名称 是要查看的数据库的名称。执行这个 SQL 语句后,将会返回一个表格,其中列出了每一个表的每一个列的字符集和校对规则。例如:

| TABLE_NAME | COLUMN_NAME | CHARACTER_SET_NAME | COLLATION_NAME | | ---- | ---- | ---- | ---- | | users | id | utf8mb4 | utf8mb4_unicode_ci | | users | username | utf8mb4 | utf8mb4_unicode_ci | | users | password | utf8mb4 | utf8mb4_unicode_ci | | products | id | utf8mb4 | utf8mb4_unicode_ci | | products | name | utf8mb4 | utf8mb4_unicode_ci | | products | price | NULL | NULL |

可以看到,上面的表格列出了两个表(usersproducts)以及每个表的每个列的字符集和校对规则。对于一些列没有指定字符集和校对规则的情况,可以认为它们继承了其所在表的字符集和校对规则。