我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL Server与MySQL中排序规则与字符集是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL Server与MySQL中排序规则与字符集是什么

这篇文章主要讲解了“SQL Server与MySQL中排序规则与字符集是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL Server与MySQL中排序规则与字符集是什么”吧!

字符集&&排序规则

字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码。排序规则则是在特定字符集的基础上特定的字符排序方式,排序规则是基于字符集的,是对字符集在排序方式维度上的一个划分。

排序规则是依赖于字符集的,一种字符集可以有多种排序规则,但是一种排序规则只能基于某一种字符集的,比如中文字符集,也即汉字,可以按照“拼音排序”、“按姓氏笔划排序”等等。而对于英语,就没有“拼音”和“姓氏笔画”,但是可以分为区分大小写、不区分大小写等等,而其他语言下面也有自己特定的排序规则。

在SQL Server中,任何一种字符集的数据库,都能存储任何一种语言的字符。

并不是说拉丁(Latin)字符集的数据就存储不了中文,中文(Chinese)字符集的数据库就存储不了蒙古语(只要操作系统本身支持)。sqlserver中,不管哪种字符集(实际上是排序规则)的数据库(或者字段),都是可以使用nvarchar(或者nchar),而nvarchar(或者nchar)是可以存储任意非Unicode字符的。至于排序规则,那是根据不同的字符集所支持的不同的排序规则人为定义的。

SQL Server中的字符集和排序规则

排序规则只不过是指定了存储的数据的排序(比较)规则而已,换句话说就是,排序规则中已经包含了字符集的信息。因此在sqlserver中 ,不需要关心字符集,只需要关心排序规则,sqlserver中在创建只能指定排序规则(不能直接指定字符集),如截图,只能指定collation,也就是字符集

SQL Server与MySQL中排序规则与字符集是什么

在MySQL中的字符集和排序规则

上面说了,排序规则是依赖于字符集的,一种字符集可以有多种排序规则,但是一种排序规则只能基于某一种字符集的。如下是MySQL中排序规则和字符集的对应关系。

SQL Server与MySQL中排序规则与字符集是什么

MySQL的建库语法比较扯,可以指定字符集和排序规则,如果指定的排序规则在字符集的下面,则是没有问题的,如果指定的排序规则不在字符集下面,则会报错。

比如下面这一句,排序规则utf8_bin是属于字符集utf8下面的一种排序规则,这个语句执行是没有问题的

create database test_database2 charset utf8 collate utf8_bin;

再比如下面这一句,排序规则latin1_bin不是属于字符集utf8下面的一种排序规则,这个语句执行是会报错的

create database test_database2 charset utf8 collate latin1_bin;

SQL Server与MySQL中排序规则与字符集是什么

以上是字符集和排序规则在sqlserver和MySQL中的一些基本应用,再说说常用的排序规则的区别

***_genera_ci & ***_genera_cs & ***_bin 常见排序规则的特点

以上是某种字符集下常用的三种排序规则,下面以常见的utf8为例说明。

  • utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感,

  • utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感,但是目前MySQL版本中已经不支持类似于***_genera_cs的排序规则,直接使用utf8_bin替代。

  • utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。

那么,同样是区分大小写,utf8_general_cs和utf8_bin有什么区别?

  • cs为case sensitive的缩写,即大小写敏感;bin的意思是二进制,也就是二进制编码比较。

  • utf8_general_cs排序规则下,即便是区分了大小写,但是某些西欧的字符和拉丁字符是不区分的,比如ä=a,但是有时并不需要ä=a,所以才有utf8_bin

  • utf8_bin的特点在于使用字符的二进制的编码进行运算,任何不同的二进制编码都是不同的,因此在utf8_bin排序规则下:&auml;<>a

在utf8_genera_ci的情况下A=a,&auml;=a

SQL Server与MySQL中排序规则与字符集是什么

在utf8_bin排序规则下,A<>a,&auml;<>a

SQL Server与MySQL中排序规则与字符集是什么

所以要想区分大小写,有没有特殊需求,就直接使用utf8_bin(实际上***_general_cs在MySQL中本身就不支持,在SQL Server中支持)。以上字符集的特点以及使用情况在SQL Server中表现为类似。

感谢各位的阅读,以上就是“SQL Server与MySQL中排序规则与字符集是什么”的内容了,经过本文的学习后,相信大家对SQL Server与MySQL中排序规则与字符集是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL Server与MySQL中排序规则与字符集是什么

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

下载Word文档

猜你喜欢

MySQL原理 - 字符集与排序规则

任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集)。这些字符如何排序呢?决定字符排序的规则就是排序规则。查看内置字符集与比较规则通过show charset;命令,可以
MySQL原理 - 字符集与排序规则
2021-04-11

mysql字符集和排序规则是什么

MySQL字符集和排序规则是用于定义数据库中字符串数据存储和比较的规则。字符集(Character Set)指的是一组字符的集合,包括了字母、数字、标点符号、空格等字符。MySQL支持多种字符集,常见的字符集有UTF-8、GBK、Latin
2023-08-25

MySQL字符集排序的规则是什么

MySQL字符集排序规则是根据字符的二进制值来进行排序的。不同的字符集具有不同的排序规则,比如在Latin1字符集中,按照ASCII码的顺序来排序;在UTF-8字符集中,按照Unicode码的顺序来排序。MySQL提供了多种不同的字符集,可
MySQL字符集排序的规则是什么
2024-04-09

sql字符串排序规则是什么

在SQL中,字符串排序是根据字符的编码顺序进行的。字符串排序规则如下:1. 首先按照字符串的第一个字符的编码进行排序。例如,'a'会排在'b'之前。2. 如果第一个字符相同,则比较第二个字符的编码,依次类推,直到找到不同的字符进行比较。3.
2023-09-26

mysql怎么查看字符集和排序规则

在MySQL中,可以使用以下命令来查看字符集和排序规则:查看当前数据库的字符集和排序规则:SHOW VARIABLES LIKE 'collation%';查看MySQL服务器的字符集和排序规则:SHOW VARIABL
mysql怎么查看字符集和排序规则
2024-04-09

oracle字符串排序规则是什么

Oracle字符串排序规则是根据字符的Unicode编码值来进行排序的。Unicode编码是一种标准化的字符编码方式,通过给每个字符分配一个唯一的数字来表示字符。在Oracle中,字符串按照Unicode编码值从小到大的顺序进行排序。这意味
oracle字符串排序规则是什么
2024-04-30

MySQL字符集与校对规则怎么应用

MySQL字符集和校对规则是用来确定字符串数据的存储方式和比较规则的设置。在MySQL中,可以在数据库、表、列级别设置字符集和校对规则。数据库级别设置字符集和校对规则:可以在创建数据库时指定字符集和校对规则,例如:CREATE DATAB
MySQL字符集与校对规则怎么应用
2024-04-09

MySQL中字符集与校对规则的选择与优化

在MySQL中,字符集和校对规则是影响数据库性能和数据一致性的重要因素。选择合适的字符集和校对规则可以提高数据的存储效率、查询效率和一致性。以下是关于如何在MySQL中选择和优化字符集与校对规则的建议:选择合适的字符集:根据应用程序的需求选
MySQL中字符集与校对规则的选择与优化
2024-10-21

mysql中utf8mb4的排序规则是什么

在MySQL中,UTF8MB4排序规则是根据Unicode字符集定义的。Unicode定义了每个字符的排序顺序,根据字符的Unicode码点来确定其在排序中的位置。UTF8MB4字符集支持Unicode字符集中的所有字符,包括emoji表情
mysql中utf8mb4的排序规则是什么
2024-04-09

mysql中and与or的规则是什么

在MySQL中,AND和OR是用来连接多个条件的逻辑运算符。AND运算符:AND运算符用于连接多个条件,并且要求所有条件都必须为真,才会返回true。如果其中一个条件为假,整个表达式就会返回false。例如:SELECT * FROM t
mysql中and与or的规则是什么
2024-04-09

编程热搜

目录