广告
返回顶部
首页 > 资讯 > 数据库 >MySQL校对规则(COLLATION)的具体使用
  • 120
分享到

MySQL校对规则(COLLATION)的具体使用

MySQL校对规则 2022-08-09 16:08:14 120人浏览 泡泡鱼
摘要

目录简介Mysql的校对规则校对规则列举 查看校对规则修改校对规则总结:简介 本文介绍mysql的校对规则。 Mysql的校对规则 两个不同的字符集不能有相同的校对规则。每个字符集有一个默认校对规则。例如:ut

简介

本文介绍mysql的校对规则。

Mysql的校对规则

  • 两个不同的字符集不能有相同的校对规则。
  • 每个字符集有一个默认校对规则。例如:
    • utf8mb4默认校对规则:utf8mb4_general_ci。
    • utf8默认校对规则:utf8_general_ci。
  • 存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二进制,大小写敏感)结束。

校对规则列举 

  • utf8mb4_general_ci
  • utf8mb4_unicode_ci
  • utf8mb4_general_cs
  • utf8mb4_bin

//不存在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排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法在比较和排序的时候更快

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

总结:

utf8_unicode_ci比较准确,utf8_general_ci速度比较快。

通常情况下 utf8_general_ci 的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了。

如果是utf8mb4那么对应的就是 utf8mb4_general_ci utf8mb4_unicode_ci

到此这篇关于MySQL校对规则(COLLATION)的具体使用的文章就介绍到这了,更多相关MySQL 校对规则内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL校对规则(COLLATION)的具体使用

本文链接: https://www.lsjlt.com/news/33625.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL校对规则(COLLATION)的具体使用
    目录简介mysql的校对规则校对规则列举 查看校对规则修改校对规则总结:简介 本文介绍MySQL的校对规则。 MySQL的校对规则 两个不同的字符集不能有相同的校对规则。每个字符集有一个默认校对规则。例如:ut...
    99+
    2022-08-09
    MySQL校对规则
  • PHP正则表达式preg_match的具体使用规则是怎样的
    这篇文章将为大家详细讲解有关PHP正则表达式preg_match的具体使用规则是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP对于初学者来说,最难理解的内容要属于正则表达式的应用...
    99+
    2023-06-17
  • mysql联合索引的使用规则
    联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支...
    99+
    2022-11-12
  • MySQL binlog_ignore_db 参数的具体使用
    前言:  经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、show等)。注意默认情况下会记录所有库的操作,那么如果我们有另类需求,比...
    99+
    2022-05-10
    MySQL binlog参数 MySQL binlog MySQL binlog_ignore_db
  • MySQL ifnull()函数的具体使用
    mysql IFNULL函数简介 MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。两个参数可以是文字值或表达式。 以下说...
    99+
    2022-08-11
    MySQLifnull()函数
  • Mysql CONVERT函数的具体使用
    目录1.转换指定字符集2.转换指定数据类型示例CONVERT函数用于将值转换为指定的数据类型或字符集 1.转换指定字符集 CONVERT函数用于将字符串expr的字符集变成transcoding_name 语法结构 CO...
    99+
    2022-08-12
    MysqlCONVERT函数 MysqlCONVERT
  • Mysql CAST函数的具体使用
    目录语法参数说明示例练习案例CAST函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型 语法 CAST(value AS datatype) AS关键字用于分隔两个参数,在AS之前的是要处理的数据,在AS之后的...
    99+
    2022-08-12
    MysqlCAST函数 MysqlCAST
  • MySQL七大JOIN的具体使用
    目录简介练习简介 A的独有+AB的公有B的独有+AB的公有AB的公有A的独有B的独有A的独有+B的独有+AB的公有A的独有+B的独有 练习 建表 部门表 DROP TABL...
    99+
    2022-11-13
  • MySQL DQL语句的具体使用
    目录DQL基本语法基础查询条件查询语法条件案例聚合函数DQL DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。 基本语法 DQL 查询语句,语法结构如下: ...
    99+
    2023-03-22
    MySQL DQL语句 MySQL DQL
  • MySQL内外连接的具体使用
    目录内连接外连接左外连接右外连接简单案例MySQL内外连接 表的连接分为内连接和外连接。 内连接 内连接 内连接的SQL如下: SELECT ... FROM t1 INNE...
    99+
    2023-01-28
    MySQL内外连接
  • MySQL窗口函数的具体使用
    目录一、什么是窗口函数1、怎么理解窗口?2、什么是窗口函数二、窗口函数用法1、序号函数:row_number() / rank() / dense_rank()2、分布函数:...
    99+
    2022-11-12
  • MySQL索引查询的具体使用
    目录索引的分类聚簇索引非聚簇索引实战理解我们都知道MySQL的辅助索引可以提升检索效率,但是为什么有的时候,走辅助索引反而不如走主键索引的效率高呢?这里我觉得需要先弄懂辅助索引的底层...
    99+
    2023-05-19
    MySQL索引查询 MySQL索引
  • Mysql prepare预处理的具体使用
    目录1.预处理2.预处理应用方式A.例子:B.预处理对执行计划变化跟踪C.存储过程包含预处理D.通过profile 查看解析语句的开销3.总结MySQL PREPARE预处理技术意义...
    99+
    2022-11-12
  • golang mysql的连接池的具体使用
    目录1.mysql-通过sql建立连接池2.mysql-gorm 建立连接池3.连接池相较于单个client4.通用连接池参考1.mysql-通过sql建立连接池 连接池用sql.Open函数创建连接池,可是此时只是初始...
    99+
    2023-02-21
    golangmysql连接池 golang连接池
  • Python 可迭代对象 iterable的具体使用
    目录前置知识可迭代对象如何判断一个对象是否是可迭代对象?enumerate 函数多嵌套列表总结前置知识 如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple,这种遍...
    99+
    2022-06-02
    Python 可迭代对象 iterable Python iterable
  • MySQL内部临时表的具体使用
    目录UNION表初始化执行语句UNION RESULTUNION ALLGROUP BY内存充足执行语句执行过程排序过程ORDER BY NULL内存不足执行...
    99+
    2022-11-12
  • Mysql中强制索引的具体使用
    目录强制索引使用题外话哪些情况适合建立索引哪些情况不适合建立索引强制索引 强制索引,即指定本次查询使用某个特定的索引,这样就可避免mysql优化器使用低效的索引或者走全表扫描放弃使用索引。(Mysql的优化器并不完全可靠...
    99+
    2023-08-14
    Mysql 强制索引
  • Python 使用@property对属性进行数据规范性校验的实现
    在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合...
    99+
    2022-11-12
  • PHP对话的具体使用技巧有哪些
    这篇文章给大家介绍PHP对话的具体使用技巧有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于PHP来说,***的遗憾是它对对话并不支持。更新到PHP4.0的时候,这一遗憾被填补上了。今天我们就来具体了解一下PHP...
    99+
    2023-06-17
  • MySQL表内连和外连的具体使用
    目录一. 内连接二. 外连接1. 左外连接2. 右外连接一. 内连接 利用where子句对两种表形成的笛卡尔积进行筛选,其实就是内连接的一种方式另一种方式是inner join select 字段 f...
    99+
    2023-10-18
    MySQL表内连 MySQL表外连
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作