教程 mariadb tutorial

字符集与排序规则

字符集(Character Set)定义了数据库中允许存储的字符范围,排序规则(Collation)则决定字符比较和排序的方式。

1. 常用字符集

  • utf8mb4:支持完整的 Unicode 字符集,推荐使用,适合多语言环境。
  • latin1:单字节字符集,适合西欧语言,不支持多字节字符。

2. 查看服务器默认字符集与排序规则

sql
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';

`

3. 设置数据库字符集与排序规则

创建数据库时,可以指定字符集和排序规则:

sql
CREATE DATABASE dbname
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

4. 修改已有数据库字符集与排序规则

sql
ALTER DATABASE dbname
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

5. 设置表和列的字符集

创建表时可指定字符集:

sql
CREATE TABLE table_name (
  id INT,
  name VARCHAR(100)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

也可以单独为列设置:

sql
name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

6. 常见排序规则说明

  • utf8mb4_general_ci:不区分大小写的通用排序,性能较好。
  • utf8mb4_unicode_ci:遵循 Unicode 标准,支持更准确的语言排序规则,但性能略低。

正确配置字符集和排序规则,能避免乱码和排序异常,确保数据的准确存储和检索。