千家信息网

SQLserver排序规则基本概念探索

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,前言昨天在论坛里面遇到一个比较特殊的场景。他的公司做的是海外的项目,中英再加一个当地语言,要兼容三种文字啊.那有没有什么字符集或排序规则,能兼容所有文字的?对于海外项目很痛苦啊 .Oracle 有AL
千家信息网最后更新 2025年01月24日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下float的不确定性、SQLserver中cube:多维数据集实例详解、sqlserver:查询锁住sql以及解锁方法等,有什么问题可以随时留言,小编会及时回复大家,在此也希望朋友们对本站多多支持!

编码 字符 规则 排序 文字 UTF-8 字母 重音 中国 选择 字符集 支持 大小 字节 电脑 类型 计算机 语言 概念 个位 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界服务器的知识 校园外卖数据库 拨打电话手机显示无法连接服务器 我的世界1.18服务器开荒 上海教育软件开发公司 湖南数据软件开发价格 互联网储存服务器阿里巴巴 腾讯工程师参加网络安全工作 中国地级党校特色数据库 监狱网络安全管理岗位怎么样 神舟安全视频服务器 计算机网络技术中职生英语求职信 上海机架式服务器机箱怎么用 曙光服务器西安电话 网络安全监测平台 淘宝服务器出错 失落的方舟美西服务器英文名 网络安全专家咨询委员 服务器为什么要做防护 以赛瑞网络安全 工业服务器寿命一般多长时间 在存储公司做软件开发有前景吗 越南网络安全强国战略 互联网储存服务器阿里巴巴 周村专业软件开发公司 计算机网络安全及防范的意义 网络安全监测分析师 公安网络安全工作情况报告 软件开发行业营业成本 同步域账号与数据库
0