MySQL查看字符集(附带实例)
在 MySQL 8.0 以前的版本中,默认字符集为 latin1。开发人员在进行数据库设计的时候,往往会将默认字符集修改为 utf8,这时 utf8 指向的是 utf8mb3。如果开发人员忘记修改默认字符集,就会出现乱码问题。
从 MySQL 8.0 开始,默认字符集改为 utf8mb4,从而避免了乱码问题。
使用如下 SQL 语句查看 MySQL 8.0 中的字符集:
也可以在上述 SQL 语句中加入 WHERE 或 LIKE 条件。例如,要查看与“utf”相关的字符集,则可以使用如下 SQL 语句:
在 MySQL 中,utf8 是 utf8mb3 的别名,因此,后面提到 utf8 就意味着一个字符最多需要使用 3 字节表示。
在一般情况下,使用 utf8 字符集就足够了,但是部分特殊字符需要使用 4 字节才能表示,这时候就需要使用 utf8mb4 字符集。我们可以把 utf8mb4 理解为 utf8 的超集。
从 MySQL 8.0 开始,默认字符集改为 utf8mb4,从而避免了乱码问题。
使用如下 SQL 语句查看 MySQL 8.0 中的字符集:
mysql> SHOW CHARACTER SET; +----------+----------------------+--------------------+--------+ | Charset | Description | Default collation | Maxlen | +----------+----------------------+--------------------+--------+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 | | utf8 | UTF-8 Unicode | utf8mb3_general_ci | 3 | | utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 | +----------+----------------------+--------------------+--------+
- Charset 列:表示字符集名称;
- Default collation 列:表示字符集的默认校对规则;
- Maxlen 列:表示该字符集中的一个字符最多需要使用多少字节表示。
也可以在上述 SQL 语句中加入 WHERE 或 LIKE 条件。例如,要查看与“utf”相关的字符集,则可以使用如下 SQL 语句:
+----------+----------------------+--------------------+--------+ | Charset | Description | Default collation | Maxlen | +----------+----------------------+--------------------+--------+ | utf16 | UTF-16 Unicode | utf16_general_ci | 4 | | utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 | | utf32 | UTF-32 Unicode | utf32_general_ci | 4 | | utf8 | UTF-8 Unicode | utf8mb3_general_ci | 3 | | utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 | +----------+----------------------+--------------------+--------+MySQL 中常用的字符集是 utf8。从上述结果中可以看到,utf8 字符集有两个,分别是 utf8 和 utf8mb4。其中,utf8 字符集中的一个字符最多需要使用 3 字节表示,utf8mb4字 符集中的一个字符最多需要使用 4 字节表示。
在 MySQL 中,utf8 是 utf8mb3 的别名,因此,后面提到 utf8 就意味着一个字符最多需要使用 3 字节表示。
在一般情况下,使用 utf8 字符集就足够了,但是部分特殊字符需要使用 4 字节才能表示,这时候就需要使用 utf8mb4 字符集。我们可以把 utf8mb4 理解为 utf8 的超集。