乐趣区

关于mysql:mysql-中字段的-collate-和-charset-有什么区别

在 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 中,排序规定是与字符集一起设置的,所以在应用排序规定时须要同时指定字符集。

退出移动版