MySQL在默認情況下是區(qu)分不區分大小寫(xiě)的,但可以通過(guò)配置來(lái)改變這種行為,區分下面是區分關(guān)于MySQL(⊙_⊙)不區分大小寫(xiě)的詳細解釋和使用小標題和(??ヮ?)?*:???單元表格的說(shuō)明:
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)1、區分數據庫、區分表和列名不區分大小寫(xiě):
當創(chuàng )建(jian)數據庫、區分表和列時(shí),區分MySQL會(huì )將名稱(chēng)轉換為大寫(xiě)形式進(jìn)行存儲,區分即使使用不同的區分大小寫(xiě)組合創(chuàng )建相同的名(′?`)稱(chēng),它們也ˉ\_(ツ)_/ˉ會(huì )被視為相同。區分
以下兩個(gè)語(yǔ)句創(chuàng )建了具有相同名稱(chēng)的區分不同數據庫:
“`sql
CREATE DATABASE MyDatabase;
“`
這兩個(gè)數據庫在MySQL中被視為相同。??
2、區分字符串值不區分┐(′ー`)┌大小寫(xiě):
當比(bi)較字符串(?Д?)值時(shí),區分MySQL會(huì )忽略大小寫(xiě)差異,區分這意味著(zhù)具有相同含義但大小寫(xiě)不同的區分字符串值將被視為相等。
以下查詢(xún)返回結果為真:
“`sql
SELECT ̵??6;Hello’ = ‘hello’;
“`
因為MySQL將這兩個(gè)字符串視為??相等。
MySQL的索引不區分大小寫(xiě),這意味著(zhù)可以創(chuàng )建以不同大小寫(xiě)組合的索引,并且查詢(xún)時(shí)可以使用任意大(da)小寫(xiě)。
以下兩??個(gè)語(yǔ)句創(chuàng )建了具有相同名稱(chēng)但大小寫(xiě)不同的索引:
“`sql
CREATE INDEX index_name ON table_name(column_name)(′?ω?`);
CREATE INDEX IndexName ON TableName(C(′▽?zhuān)?olumnName);
“`
這兩個(gè)索引在MySQL中被視為相同。
4、配置文件中的lower_case_table_na(′▽?zhuān)?)mes參數:
MySQL提??供了lower_case_table_names參數,用于控制表名是否轉換為小寫(xiě)形式進(jìn)行存儲,該參數可以在MySQL的配置文件(ヽ(′▽?zhuān)?/通常是my.cnf或my.ini)中設ヽ(′▽?zhuān)?ノ置。
如果將lower_case_table_names設置為0(或OFF),則MySQL將保留表名的大小寫(xiě)形式,如果設置為1(或ON),則MySQL將所有表名轉換為小寫(xiě)形式進(jìn)??行存儲。
注意:更改此參數后,需要重新啟動(dòng)MySQL服務(wù)器才能使更改生(sheng)效。
歸納起來(lái),MySQL默認情況下是不區分大小寫(xiě)的,包括數據(′▽?zhuān)?)庫、表和列名、字符串值以及索引等方面,通過(guò)配置文件中的lower_case_table_names參數,可以控制表名的大小寫(xiě)處理方式。