数据库教程:SQLserver排序规则基本概念探索

前言 昨天在论坛里面遇到一个比较特殊的场景。他的公司做的是海外的项目,中英再加一个当地语言,要兼容三种文字啊. 那有没有什么字符集或排序规则,能兼容所有文字的?对于

前言

昨天在论坛里面遇到一个比较特殊的场景。他的公司做的是海外的项目,中英再加一个当地语言,要兼容三种文字啊.
那有没有什么字符集或排序规则,能兼容所有文字的?对于海外项目很痛苦啊 .oracle 有al32utf8 ,mysql 有utf8 ,那sql server 有吗?

基本概念

ascii编码

在计算机发明后不久,计算机只在美国用。他们创造出了ascii编码,来表示:空格、标点符号、数字、大小写字母,控制符等。可以完整的表达所有的英文。但是也只支持英文。

gbk编码

后来随着计算机的流行,中国人民通过对 ascii 编码的中文扩充改造,产生了 gb2312 编码,可以表示6000多个常用汉字。汉字实在是太多了,包括繁体和各种字符,于是产生了

 gbk 编码,它包括了 gb2312 中的编码,同时扩充了很多。中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 gbk 编码扩充为 gb18030 编码。

每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。

终于,有个叫 iso 的组织看不下去了。他们一起创造了一种编码 unicode ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 unicode 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 unicode 编码就可以被其他电脑正常解释。

utf-8 and utf-16

unicode 在网络传输中,出现了两个标准 utf-8 和 utf-16,分别每次传输 8个位(2个字节)和 16个位(4个字节)。于是就会有人产生疑问,utf-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 gbk 等编码的人?因为 utf-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用gbk 等编码也可以。

总的来说:

unicode 是「字符集」

utf-8 是「编码规则」

其中:

字符集:为每一个「字符」分配一个唯一的 id(学名为码位 / 码点 / code point)
编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)

排序规则

比如我们常用的:chinese_prc_ci_as ,前面部分是chinese_prc 这个部分表示支持的中国大陆的字符集。但是这里有个特别需要注意的事项,划重点,在很多博客上面会有这样的描述:

大陆简体字unicode的排序规则

这里有很大的歧义。并不是说这个排序规则对所有字符都是有的unicode。这样说并不准确。

排序规则的后半部份即后缀 含义:

  _bin 二进制排序
  _ci(cs) 是否区分大小写,ci不区分,cs区分(case-insensitive/case-sensitive)
  _ai(as) 是否区分重音,ai不区分,as区分(accent-insensitive/accent-sensitive)
  _ki(ks) 是否区分假名类型,ki不区分,ks区分(kanatype-insensitive/kanatype-sensitive)
  _wi(ws) 是否区分宽度 wi不区分,ws区分(width-insensitive/width-sensitive) 

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,

比较还将重音不同的字母视为不等。

区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。

区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

unicode

sql server 是支持unicode的。对应的字符类型是nchar,nvarchar.

总结

所以,sql server 没有这样的和oracle utf-8类似的排序规则。。如果是三种文字,建议把所有的字符类型定义为nchar,nvarchar 。

以上就是数据库技术:SQLserver排序规则基本概念探索关于sqlserver排序规则基本概念探索的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:、sqlserver中cube:多维数据集实例详解、等,有什么问题可以随时留言,小编会及时回复大家,在此也希望朋友们对本站多多支持!

需要了解更多数据库技术:SQLserver排序规则基本概念探索,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/612117.html

(0)
上一篇 2021年5月19日
下一篇 2021年5月19日

精彩推荐