MySQL校对规则怎么使用

发布时间:2022-08-09 17:18:05 作者:iii
来源:亿速云 阅读:135

本文小编为大家详细介绍“MySQL校对规则怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL校对规则怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

MySQL的校对规则

校对规则列举 

//不存在utf8_unicode_cs

查看校对规则

查看支持的校验规则

mysql> SHOW COLLATION like 'utf8%';
+--------------------------+---------+-----+---------+----------+---------+
| Collation                | Charset | Id  | Default | Compiled | Sortlen |
+--------------------------+---------+-----+---------+----------+---------+
| utf8_general_ci          | utf8    |  33 | Yes     | Yes      |       1 |
| utf8_bin                 | utf8    |  83 |         | Yes      |       1 |
| utf8_unicode_ci          | utf8    | 192 |         | Yes      |       8 |
...
| utf8mb4_general_ci       | utf8mb4 |  45 | Yes     | Yes      |       1 |
| utf8mb4_bin              | utf8mb4 |  46 |         | Yes      |       1 |
| utf8mb4_unicode_ci       | utf8mb4 | 224 |         | Yes      |       8 |
| utf8mb4_icelandic_ci     | utf8mb4 | 225 |         | Yes      |       8 |

查看本地的校验规则

mysql> show global variables like '%coll%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_unicode_ci |
| collation_database   | utf8mb4_unicode_ci |
| collation_server     | utf8mb4_unicode_ci |
+----------------------+--------------------+

修改校对规则

修改数据库配置后,不会对已经存在的表造成影响,如要生效需要修改特定列的排序规则。优先级:列>表>数据库>服务器

对已存在的表修改

# 修改数据库:  
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;  
# 修改表:  
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;  
# 修改表字段:  
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL ;

创建表时指定

CREATE TABLE `T` (
  `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

utf8_general_ci 与 utf8_unicode_ci区别

utf8mb4_unicode_ciutf8mb4_general_ci总结
准确性基于标准的Unicode来排序和比较,能够在各种语言之间精确排序没有实现Unicode排序规则,在遇到某些特殊语言或字符时,排序结果可能不是所期望的。绝大多数情况下,特殊字符的顺序不需要那么精确。
性能在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。在比较和排序的时候更快

绝大多数情况下,不会发生此类复杂比较。

读到这里,这篇“MySQL校对规则怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. mysql通过命令行查询数据库校对规则
  2. 简单认识mysql字符集与校对规则

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:vue3+vite2中怎么使用svg方法

下一篇:python Dataframe合并与去重的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》