devops
devops copied to clipboard
mysql 字符集
-
utf8mb4_general_ci:utf8mb4是utf8的超集,可以用来存储更多的字符,包括一些特殊的表情符号。_general_ci表示排序规则不区分大小写。
-
utf8mb4_unicode_ci:与utf8mb4_general_ci类似,它也是utf8的超集,可以存储更多的字符。不同的是,_unicode_ci比_general_ci的排序规则更严格,它会更准确地根据Unicode标准进行排序和比较。
-
utf8_general_ci:这是utf8字符集的排序规则,_general_ci表示排序规则不区分大小写。
总的来说,这三者的主要区别在于能够存储的字符范围和排序/比较规则的不同。如果需要存储一些特殊的字符(例如表情符号),应该选择utf8mb4_unicode_ci或utf8mb4_general_ci。如果对排序和比较的准确性有较高的要求,应该选择utf8mb4_unicode_ci。
你可以使用以下SQL语句来修改表的字符集:
ALTER TABLE your_table_name
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
上述语句会将表的字符集更改为utf8mb4,并将排序规则更改为utf8mb4_general_ci。请将your_table_name替换为你的表名。
请注意,在运行此操作时,MySQL会尝试将所有的字符数据转换为新的字符集。如果新的字符集不支持某些字符,那么这些字符可能会被更改或丢失。因此,建议你在运行这样的操作之前先备份你的数据。