MySQL培訓課程:大小寫敏感嗎
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢1、數據庫和表名
在MySQL中,數據庫和表對應于在那些目錄下的目錄和文件,因而,內在的操作系統的敏感性決定數據庫和表命名的大小寫敏感性。這意味著數據庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。
注意:在Win32上,盡管數據庫和表名是忽略大小寫的,你不應該在同一個查詢中使用不同的大小寫來引用一個給定的數據庫和表。下列查詢將不工作,因為它作為my_table和作為MY_TABLE引用一個表:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
2、列名
列名在所有情況下都是忽略大小寫的。
3、表的別名
表的別名是區分大小寫的。下列查詢將不工作,: 因為它用a和A引用別名:
mysql> SELECT col_name FROM tbl_name AS a
WHERE a.col_name = 1 OR A.col_name = 2;
4、列的別名
列的別名是忽略大小寫的。
5、字符串比較和模式匹配
缺省地,MySQL搜索是大小寫不敏感的(盡管有一些字符集從來不是忽略大小寫的,例如捷克語)。這意味著,如果你用col_name LIKE 'a%'搜尋,你將得到所有以A或a開始的列值。如果你想要使這個搜索大小寫敏感,使用象INDEX(col_name, "A")=0檢查一個前綴;蛉绻兄当仨毚_切是"A",使用STRCMP(col_name, "A") = 0。
簡單的比較操作(>=、>、= 、< 、<=、排序和聚合)是基于每個字符的“排序值”。有同樣排序值的字符(象E,e)被視為相同的字符!
LIKE比較在每個字符的大寫值上進行(“E”=”e”)。
如果你想要一個列總是被當作大小寫敏感的方式,聲明它為BINARY。
例如:
mysql> SELECT "E"="e","E"=BINARY "e";
+---------+----------------+
| "E"="e" | "E"=BINARY "e" |
+---------+----------------+
| 1 | 0 |
+---------+----------------+