主题
字符集与排序规则
字符集(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 标准,支持更准确的语言排序规则,但性能略低。
正确配置字符集和排序规则,能避免乱码和排序异常,确保数据的准确存储和检索。