Mysql大小寫敏感的問題
一、1 CREATE TABLE NAME(name VARCHAR(10));
對這個表,缺省情況下,下面兩個查詢的結(jié)果是一樣的:
SELECT * FROM TABLE NAME WHERE name='clip';
SELECT * FROM TABLE NAME WHERE name='Clip';
MySql默認查詢是不區(qū)分大小寫的,如果需要區(qū)分他,必須在建表的時候,Binary標示敏感的屬性.
CREATE TABLE NAME(
name VARCHAR(10) BINARY
);
2 在SQL語句中實現(xiàn) SELECT * FROM TABLE NAME WHERE BINARY name='Clip';
3 設(shè)置字符集:
utf8_general_ci --不區(qū)分大小寫
utf8_bin--區(qū)分大小寫
二、 MySQL在windows下是不區(qū)分大小寫的,將script文件導入MySQL后表名也會自動轉(zhuǎn)化為小寫,結(jié)果再 想要將數(shù)據(jù)庫導出放到linux服務(wù)器中使用時就出錯了。因為在linux下表名區(qū)分大小寫而找不到表,查了很多都是說在linux下更改MySQL的設(shè)置使其也不區(qū)分大小寫,但是有沒有辦法反過來讓windows 下大小寫敏感呢。其實方法是一樣的,相應(yīng)的更改windows中MySQL的設(shè)置就行了。
具體操作:
在MySQL的配置文件my.ini中增加一行:
lower_case_table_names = 0
其中 0:區(qū)分大小寫,1:不區(qū)分大小寫
MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:
1、數(shù)據(jù)庫名與表名是嚴格區(qū)分大小寫的;
2、表的別名是嚴格區(qū)分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區(qū)分大小寫的; MySQL在Windows下都不區(qū)分大小寫
以上就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
MySQL插入數(shù)據(jù)insert?ignore語法重復數(shù)據(jù)自動忽略
這篇文章主要給大家介紹了關(guān)于MySQL插入數(shù)據(jù)insert?ignore語法重復數(shù)據(jù)自動忽略的相關(guān)資料,最近工作中使用到了insert ignore into語法,感覺這個語法還是挺有用的,就記錄下來做個總結(jié),需要的朋友可以參考下2023-08-08關(guān)于MySQL數(shù)據(jù)庫死鎖的案例和解決方案
MySQL Update語句防止死鎖是指在修改MySQL數(shù)據(jù)庫的數(shù)據(jù)時,為避免多個進程同時修改同一數(shù)據(jù)行而造成死鎖的情況,引入了一些機制來防止死鎖的產(chǎn)生,本文介紹了一個 MySQL 數(shù)據(jù)庫死鎖的案例和解決方案,需要的朋友可以參考下2023-09-09MySQL中利用索引對數(shù)據(jù)進行排序的基礎(chǔ)教程
這篇文章主要介紹了MySQL中利用索引對數(shù)據(jù)進行排序的基礎(chǔ)教程,需要的朋友可以參考下2015-11-11