MySQL大小寫敏感問題說明

MySQL在Linux下數據庫名、表名、列名、別名大小寫規則是這樣的:mysql

  一、數據庫名與表名是嚴格區分大小寫的;sql

  二、表的別名是嚴格區分大小寫的;數據庫

  三、列名與列的別名在全部的狀況下均是忽略大小寫的;編碼

      四、字段內容默認狀況下是大小寫不敏感的。ci

 

mysql中控制數據庫名和表名的大小寫敏感由參數lower_case_table_names控制,爲0時表示區分大小寫,爲1時,表示將名字轉化爲小寫後存儲,不區分大小寫。這個參數不是動態的,修改須要重啓服務table

 

MySQL存儲的字段是不區分大小寫的。這個有點難以想象。尤爲是在用戶註冊的業務時候,會出現笑話。因此仍是嚴格限制大小寫敏感好比好。二進制

如何避免字段內容區分大小寫。就是要新增字段的校驗規則。能夠看出默認狀況下字段內容是不區分大小寫的。大小寫不敏感。數據

字段值的大小寫由mysql的校對規則來控制。提到校對規則,就不得不說字符集。字符集是一套符號和編碼,校對規則是在字符集內用於比較字符的一套規則  .tab

通常而言,校對規則以其相關的字符集名開始,一般包括一個語言名,而且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結束 。好比 utf8字符集,utf8_general_ci,表示不區分大小寫,這個是utf8字符集默認的校對規則;utf8_general_cs表示區分大小寫,utf8_bin表示二進制比較,一樣也區分大小寫 。語言

相關文章
相關標籤/搜索