MySql之排序规则问题(2)
2014-08-05 16:48
267 查看
今天看到这个Sql语句,之前听说过,但是并未弄懂,因此在此特意做下笔记:
userName varchar(20) collate chinese_prc_ci_as null
1.首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影
::={windows_collation_name}|{sql_collation_name}
参数:collate_name是应用于表达式列定义或数据库定义的排序规则的名称collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name
Windows_collation_name: 是 Windows 排序规则的排序规则名称参见 Windows 排序规则名称
SQL_collation_name :是 SQL 排序规则的排序规则名称参见 SQL 排序规则名称
2.什么叫排序规则呢?
MS是这样描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存储由排序规则控制排序规则指定表示每个字符的位模式以及存
储和比较字符所使用的规则"
SQLSERVER
select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项如果选择该选项,
比较还将重音不同的字母视为不等
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
3.在MySql中也有对应的字符排序规则(在MySql 5.1中的10.10.MySql支持的字符集合校对中)
如图:
例如:
创建一个使用utf8字符集,并带校对规则的user数据库
create database if not exists user character set UTF8 collate utf8_general_ci;
userName varchar(20) collate chinese_prc_ci_as null
1.首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影
::={windows_collation_name}|{sql_collation_name}
参数:collate_name是应用于表达式列定义或数据库定义的排序规则的名称collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name
Windows_collation_name: 是 Windows 排序规则的排序规则名称参见 Windows 排序规则名称
SQL_collation_name :是 SQL 排序规则的排序规则名称参见 SQL 排序规则名称
2.什么叫排序规则呢?
MS是这样描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存储由排序规则控制排序规则指定表示每个字符的位模式以及存
储和比较字符所使用的规则"
SQLSERVER
select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项如果选择该选项,
比较还将重音不同的字母视为不等
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
3.在MySql中也有对应的字符排序规则(在MySql 5.1中的10.10.MySql支持的字符集合校对中)
如图:
例如:
创建一个使用utf8字符集,并带校对规则的user数据库
create database if not exists user character set UTF8 collate utf8_general_ci;
相关文章推荐
- MySQL表排序规则不同错误问题分析
- MYSQL因为排序规则不同导致的问题的解决办法
- 触发器(当2个表中的相应值改变时同时改变一个表中的一个字段)(同时有处理“无法解决 equal to 操作的排序规则冲突”问题)
- (原创)处理Sql server在不同环境下排序规则不一致的问题(一)
- 关于不规则列的排序问题
- 排序规则引起的冲突问题
- 排序规则引起的冲突问题
- 浅谈Java、MySQL的中文排序问题
- 理解SQLSERVER中的排序规则,解决无法正确显示中文字符的问题
- 数据库开发-sql2005如何修改排序规则的问题
- Mysql:语法:字符集、排序规则
- 理解SQLSERVER中的排序规则,解决无法正确显示中文字符的问题
- mysql 不排序问题
- 解決“无法解决 equal to 操作的排序规则冲突 ”问题
- 理解SQLSERVER中的排序规则,解决无法正确显示中文字符的问题
- sql排序规则问题,不能查询访问中文
- 有关SQL排序规则---------即"无法解决 equal to 操作的排序规则冲突"等等的菜问题.
- mysql的校对规则引起的问题分析
- mssqlserver中排序规则冲突的问题解决
- MYSQL varchar 类型 排序错乱问题的解决