大小写敏感性

1.数据库和表名

在MySQL中,数据库和表对应于在那些目录下的目录和文件,因而,内在的操作系统的敏感性决定数据库和表命名的大小写敏感性。这意味着数据库和表名在Unix上是区分大小写的,而在Win32上忽略大小写。

注意:在Win32上,尽管数据库和表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表:

 

2.列名,列的别名

列名,列的别名在所有情况下都是忽略大小写的。

3.表的别名

表的别名是区分大小写的:

 

4.字符串的比较和模式匹配

缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大小写的,例如捷克语)。这意味着,如果你用col_name LIKE 'a%'搜寻,你将得到所有以A或a开始的列值。如果你想要使这个搜索大小写敏感,使用象INDEX(col_name, "A")=0检查一个前缀。或如果列值必须确切是"A",使用STRCMP(col_name, "A") = 0。

简单的比较操作(>=、>、= 、< 、<=、排序和聚合)是基于每个字符的“排序值”。有同样排序值的字符(象E,e)被视为相同的字符!

LIKE比较在每个字符的大写值上进行(“E”=”e”)。

如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY。

 

原文地址:https://www.cnblogs.com/ryansunyu/p/4316406.html