SQL Server与MySQL中排序法则与字符集相干常识的一点总结
技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战
字符集&&排序法则字符集是针对差异说话的字符编码的荟萃,好比UTF-8字符集,GBK字符集,GB2312字符集等等,差异的字符集行使差异的法则给字符举办编码。排序法则则是在特定字符集的基本上特定的字符排序方法,排序法则是基于字符集的,是对字符集在排序方法维度上的一个分别。 排序法则是依靠于字符集的,一种字符集可以有多种排序法则,可是一种排序法则只能基于某一种字符集的,好比中笔墨符集,也即汉字,可以凭证“拼音排序”、“按姓氏笔划排序”等等。而对付英语,就没有“拼音”和“姓氏笔画”,可是可以分为区分巨细写、不区分巨细写等等,而其他说话下面也有本身特定的排序法则。 在SQL Server中,任何一种字符集的数据库,都能存储任何一种说话的字符。 并不是说拉丁(Latin)字符集的数据就存储不了中文,中文(Chinese)字符集的数据库就存储不了蒙古语(只要操纵体系自己支持)。sqlserver中,不管哪种字符集(现实上是排序法则)的数据库(可能字段),都是可以行使nvarchar(可能nchar),而nvarchar(可能nchar)是可以存储恣意非Unicode字符的。至于排序法则,那是按照差异的字符集所支持的差异的排序法则工钱界说的。 SQL Server中的字符集和排序法则排序法则只不外是指定了存储的数据的排序(较量)法则罢了,换句话说就是,排序法则中已经包括了字符集的信息。因此在sqlserver中 ,不必要体谅字符集,只必要体谅排序法则,sqlserver中在建设只能指定排序法则(不能直接指定字符集),如截图,只能指定collation,也就是字符集 在MySQL中的字符集和排序法则上面说了,排序法则是依靠于字符集的,一种字符集可以有多种排序法则,可是一种排序法则只能基于某一种字符集的。如下是MySQL中排序法则和字符集的对应相关。 MySQL的建库语法较量扯,可以指定字符集和排序法则,假如指定的排序法则在字符集的下面,则是没有题目的,假如指定的排序法则不在字符集下面,则会报错。 好比下面这一句,排序法则utf8_bin是属于字符集utf8下面的一种排序法则,这个语句执行是没有题目的
再好比下面这一句,排序法则latin1_bin不是属于字符集utf8下面的一种排序法则,这个语句执行是会报错的
以上是字符集和排序法则在sqlserver和MySQL中的一些根基应用,再说说常用的排序法则的区别 ***_genera_ci & ***_genera_cs & ***_bin 常见排序法则的特点以上是某种字符集下常用的三种排序法则,下面以常见的utf8为例声名。
那么,同样是区分巨细写,utf8_general_cs和utf8_bin有什么区别?
在utf8_genera_ci的环境下A=a,ä=a在utf8_bin排序法则下,A<>a,ä<>a以是要想区分巨细写,有没有非凡需求,就直接行使utf8_bin(现实上***_general_cs在MySQL中自己就不支持,在SQL Server中支持)。以上字符集的特点以及行使环境在SQL Server中示意为相同。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |