在mysql中设置表字段中COLLATE、CHARSET详解

2023-06-01 00:00:00 设置 表字 详解

在MySQL中设置字符集和排序规则的参数:COLLATE和CHARSET。

CHARSET :

用于设置字符集,字符集是用于编码字符的规则集。

常用的字符集包括utf8和utf8mb4,分别用于编码普通的文本和包含Emoji等特殊字符的文本。

COLLATE :

用于设置排序规则,排序规则是用于比较和排序字符的规则集。

常用的排序规则包括utf8_general_ci 和 utf8mb4_unicode_ci,分别用于不区分大小写的比较和区分大小写的比较。

例如:

在创建表时,可以使用 CHARSET=utf8mb4和COLLATE=utf8mb4_unicode_ci 参数,

来设置表的字符集为 utf8mb4,排序规则为区分大小写的比较。


示例代码:

CREATE TABLE table_name ( 
column1 VARCHAR(255) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci ); 

在上面的代码中,列 column1 的字符集设置为 utf8mb4,排序规则设置为区分大小写的比较。

需要注意,在 MySQL 中,字符集和排序规则是分开设置的,所以需要同时指定字符集和排序规则才能正确处理字符。


常见的排序规则(COLLATE):

utf8_general_ci:
不区分大小写的比较

utf8_unicode_ci:
区分大小写的比较

utf8mb4_general_ci:
不区分大小写的比较,支持 Emoji 等特殊字符

utf8mb4_unicode_ci:
区分大小写的比较,支持 Emoji 等特殊字符

在MySQL中,排序规则是与字符集一起设置的,

所以在使用排序规则时需要同时指定字符集。

相关文章