MySQL數(shù)據(jù)庫(kù)大小寫(xiě)敏感的問(wèn)題
在MySQL中,數(shù)據(jù)庫(kù)對(duì)應(yīng)數(shù)據(jù)目錄中的目錄。數(shù)據(jù)庫(kù)中的每個(gè)表至少對(duì)應(yīng)數(shù)據(jù)庫(kù)目錄中的一個(gè)文件(也可能是多個(gè),取決于存儲(chǔ)引擎)。因此,所使用操作系統(tǒng)的大小寫(xiě)敏感性決定了數(shù)據(jù)庫(kù)名和表名的大小寫(xiě)敏感性。這說(shuō)明在大多數(shù)Unix中數(shù)據(jù)庫(kù)名和表名對(duì)大小寫(xiě)敏感,而在Windows中對(duì)大小寫(xiě)不敏感。 一個(gè)顯著的例外情況是Mac OS X,它基于Unix但使用默認(rèn)文件系統(tǒng)類型(HFS+),對(duì)大小寫(xiě)不敏感。
在windows下表名不區(qū)分大小寫(xiě),所以在導(dǎo)入數(shù)據(jù)后,有可能所有表名均為小寫(xiě),而再?gòu)膚in導(dǎo)入linux后,在調(diào)用時(shí)就容易出現(xiàn)大小寫(xiě)的問(wèn)題。例如:
第一點(diǎn):程序調(diào)用表名為:codetc_Web;
第二點(diǎn):導(dǎo)入win后變?yōu)閏odetc_web;
第三點(diǎn):再導(dǎo)入linux后也是codetc_web,此時(shí)linux會(huì)區(qū)分表名的大小寫(xiě),則導(dǎo)致該表無(wú)法讀取。
在linux下mysql表名大小寫(xiě)問(wèn)題解決方法:
修改my.cnf,一般位于:/etc/my.cnf,在該文件中找到[mysqld]節(jié)下加入如下語(yǔ)句(注意如果已經(jīng)存在該語(yǔ)句,請(qǐng)將值改為1即可):
lower_case_table_names=1
1、Linux下mysql安裝完后是默認(rèn):區(qū)分表名的大小寫(xiě),不區(qū)分列名的大小寫(xiě);
2、用root帳號(hào)登錄后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1
,重啟MYSQL服務(wù),這時(shí)已設(shè)置成功:不區(qū)分表名的大小寫(xiě);
lower_case_table_names 參數(shù)詳解:
lower_case_table_names = 0或1
其中 0:區(qū)分大小寫(xiě),1:不區(qū)分大小寫(xiě)
MySQL在Linux下數(shù)據(jù)庫(kù)名、表名、列名、別名大小寫(xiě)規(guī)則是這樣的:
1、數(shù)據(jù)庫(kù)名與表名是嚴(yán)格區(qū)分大小寫(xiě)的;
2、表的別名是嚴(yán)格區(qū)分大小寫(xiě)的;
3、列名與列的別名在所有的情況下均是忽略大小寫(xiě)的;
4、變量名也是嚴(yán)格區(qū)分大小寫(xiě)的;
MySQL在Windows下都不區(qū)分大小寫(xiě)的,如果需要在查詢時(shí)區(qū)分字段值的大小寫(xiě),則需要將查詢字段值需要設(shè)置BINARY屬性,設(shè)置的方法有如下幾種方法:
(1)創(chuàng)建時(shí)設(shè)置:
CREATE TABLE T(A VARCHAR(10) BINARY);
(2)使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
(3)mysql table editor中直接勾選BINARY項(xiàng)。
要讓mysql查詢區(qū)分大小寫(xiě),可以:
select * from table_name where binary a like 'a%' select * from table_name where binary a like 'A%'
也可以在建表時(shí),加以標(biāo)識(shí)
create table table_name( a varchar (20) binary )
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
結(jié)合PHP腳本添加和查詢MySQL數(shù)據(jù)的基本教程
這篇文章主要介紹了結(jié)合PHP腳本添加和查詢MySQL數(shù)據(jù)的基本教程,即在PHP程序中使用基本的SELECT FROM和INSERT INTO語(yǔ)句,需要的朋友可以參考下2015-12-12一文搞清楚MySQL count(*)、count(1)、count(col)區(qū)別
本文主要介紹了MySQL count(*)、count(1)、count(col)區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03SQL中日期與字符串互相轉(zhuǎn)換操作實(shí)例
我們經(jīng)常出于某種目的需要使用各種各樣的日期格式,當(dāng)然我們可以使用字符串操作來(lái)構(gòu)造各種日期格式,下面這篇文章主要給大家介紹了關(guān)于SQL中日期與字符串互相轉(zhuǎn)換操作的相關(guān)資料,需要的朋友可以參考下2022-10-10mysql 記錄不存在時(shí)插入 記錄存在則更新的實(shí)現(xiàn)方法
相信很多人都需要用到這個(gè)語(yǔ)句,請(qǐng)看下文:(在4.1以后的版本才有效)2008-08-08MySQL字段值如何區(qū)分大小寫(xiě)問(wèn)題
這篇文章主要介紹了MySQL字段值如何區(qū)分大小寫(xiě)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05MySQL的索引系統(tǒng)采用B+樹(shù)的原因解析
索引是為了加速對(duì)表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu),這篇文章主要介紹了MySQL的索引系統(tǒng)采用B+樹(shù)的原因解析,需要的朋友可以參考下2021-09-09MySQL中?LBCC?和?MVCC?的理解及常見(jiàn)問(wèn)題示例
這篇文章主要介紹了MySQL中LBCC和MVCC的理解及常見(jiàn)問(wèn)題示例,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2022-09-09mysql中g(shù)eneral_log日志知識(shí)點(diǎn)介紹
這篇文章主要介紹了mysql中g(shù)eneral_log日志知識(shí)點(diǎn)的介紹以及其他相關(guān)內(nèi)容,以后興趣的朋友們學(xué)習(xí)下。2019-08-08