mysql默認(rèn)的設(shè)置或是對(duì)整個(gè)庫(kù)的設(shè)置

鄉(xiāng)寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
是否區(qū)分大小寫和校對(duì)規(guī)則有關(guān),默認(rèn)設(shè)的規(guī)則是大小寫不敏感的。
show create table如果看到collate是ci結(jié)尾,那么就是不區(qū)別的,如果cs或bin結(jié)尾,就是區(qū)別的。
如果建表的時(shí)候選擇的是區(qū)別大小寫的規(guī)則而查詢的時(shí)候又暫時(shí)不想?yún)^(qū)別,
可以用類似
WHERE column_name COLLATE latin1_general_ci = 'xxx'
的寫法改變查詢使用的校對(duì)規(guī)則
1、linux下mysql安裝完后是默認(rèn):區(qū)分表名的大小寫,不區(qū)分列名的大小寫;
2、用root帳號(hào)登錄后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重啟MYSQL服務(wù),這時(shí)已設(shè)置成功:不區(qū)分表名的大小寫;
lower_case_table_names參數(shù)詳解:
lower_case_table_names = 0
其中 0:區(qū)分大小寫,1:不區(qū)分大小寫
MySQL在Linux下數(shù)據(jù)庫(kù)名、表名、列名、別名大小寫規(guī)則是這樣的:
1、數(shù)據(jù)庫(kù)名與表名是嚴(yán)格區(qū)分大小寫的;
2、表的別名是嚴(yán)格區(qū)分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴(yán)格區(qū)分大小寫的;
MySQL在Windows下都不區(qū)分大小寫。
3、如果想在查詢時(shí)區(qū)分字段值的大小寫,則:字段值需要設(shè)置BINARY屬性,設(shè)置的方法有多種:
A、創(chuàng)建時(shí)設(shè)置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾選BINARY項(xiàng)。
1、一種方法是可以設(shè)置表或行的collation,使其為binary或case
sensitive。在MySQL中,對(duì)于Column
Collate其約定的命名方法如下:
*_bin:
表示的是binary
case
sensitive
collation,也就是說(shuō)是區(qū)分大小寫的
*_cs:
case
sensitive
collation,區(qū)分大小寫
*_ci:
case
insensitive
collation,不區(qū)分大小寫
###########
#
Start
binary
collation
example
###########
mysql
create
table
case_bin_test
(word
VARCHAR(10))
CHARACTER
SET
latin1
COLLATE
latin1_bin;
Query
OK,
rows
affected
(0.02
sec)
mysql
INSERT
INTO
case_bin_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
5
rows
affected
(0.00
sec)
Records:
5
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_bin_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_bin_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.00
sec)
###########
#
End
###########
2、另外一種方法
###########
#
Start
case
sensitive
collation
example
###########
mysql
create
table
case_cs_test
(word
VARCHAR(10))
CHARACTER
SET
latin1
COLLATE
latin1_general_cs;
Query
OK,
rows
affected
(0.08
sec)
mysql
INSERT
INTO
case_cs_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
5
rows
affected
(0.00
sec)
Records:
5
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_cs_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_cs_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
###########
#
end
###########
3、還有一種方法就是在查詢時(shí)指定collation
mysql
create
table
case_test
(word
VARCHAR(10))
CHARACTER
SET
latin1;
Query
OK,
rows
affected
(0.01
sec)
mysql
INSERT
INTO
case_test
VALUES
('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query
OK,
7
rows
affected
(0.01
sec)
Records:
7
Duplicates:
Warnings:
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'f%';
+---------+
|
word
|
+---------+
|
Frank
|
|
froogle
|
|
flickr
|
|
FlicKr
|
+---------+
6
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
froogle
|
|
flickr
|
|
FlicKr
|
+---------+
6
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
COLLATE
latin1_bin
LIKE
'F%';
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.05
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
COLLATE
latin1_bin
LIKE
'f%';
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'f%'
COLLATE
latin1_bin;
+---------+
|
word
|
+---------+
|
froogle
|
|
flickr
|
+---------+
2
rows
in
set
(0.00
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%'
COLLATE
latin1_bin;
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.01
sec)
mysql
SELECT
*
FROM
case_test
WHERE
word
LIKE
'F%'
COLLATE
latin1_general_cs;
+---------+
|
word
|
+---------+
|
Frank
|
|
FlicKr
|
+---------+
4
rows
in
set
(0.04
sec)
使用mysql的時(shí)候,創(chuàng)建的表明都是大寫的,但是查詢語(yǔ)句中表明用消息就會(huì)報(bào)錯(cuò),表不存在。
查詢后發(fā)現(xiàn)mysql默認(rèn)配置是表明區(qū)分大小寫的,如果要修改成不區(qū)分大小寫,需要修改一下配置。
分大小寫。
MySQL在Linux下數(shù)據(jù)庫(kù)名、表名、列名、別名大小寫規(guī)則是這樣的:數(shù)據(jù)庫(kù)名與表名是嚴(yán)格區(qū)分大小寫的;表的別名是嚴(yán)格區(qū)分大小寫的;列名與列的別名在所有的情況下均是忽略大小寫的;變量名也是嚴(yán)格區(qū)分大小寫的;MySQL在Windows下都不區(qū)分大小寫。
不區(qū)分大小寫在MySQL中,數(shù)據(jù)庫(kù)和表對(duì)就于那些目錄下的目錄和文件。因而,操作系統(tǒng)的敏感性決定數(shù)據(jù)庫(kù)和表命名的大小寫敏感。這就意味著數(shù)據(jù)庫(kù)和表名在Windows中是大小寫不敏感的,而在大多數(shù)類型的Unix系統(tǒng)中是大小寫敏感的。
應(yīng)用環(huán)境
與其他的大型數(shù)據(jù)庫(kù)例如?Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。
索引是一種特殊的文件(InnoDB 數(shù)據(jù)表上的索引是表空間的一個(gè)組成部分),它們包含著對(duì)數(shù)據(jù)表里所有記錄的引用指針。索引不是萬(wàn)能的,索引可以加快數(shù)據(jù)檢索操作,但會(huì)使數(shù)據(jù)修改操作變慢。
以上內(nèi)容參考:百度百科-mySQL
如何查看mysql數(shù)據(jù)表是否區(qū)分大小寫?
答:mysql是否區(qū)分大小寫,可以使用show Variables like '%table_names'查看lower_case_table_names的值,0代表區(qū)分,1代表不區(qū)分。
如何讓mysql數(shù)據(jù)表內(nèi)的varchar字段區(qū)分大小寫?
mysql對(duì)于類型為varchar數(shù)據(jù)默認(rèn)不區(qū)分大小寫,但如果該字段以“*_bin”編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫。
Mysql的字段大小寫默認(rèn)策略是什么?
mysql對(duì)于字段名的策略與varchar類型數(shù)據(jù)相同。即:默認(rèn)不區(qū)分大小寫,但如果該字段是以“*_bin”編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫。
Mysql的數(shù)據(jù)表區(qū)分大小寫的默認(rèn)策略是什么?
mysql對(duì)于表名的策略與varchar類型數(shù)據(jù)相同。即:默認(rèn)不區(qū)分大小寫,但如果該表是以“*_bin”編碼的話會(huì)使mysql對(duì)其區(qū)分大小寫。
如何修改mysql(mysql.conf)配置來(lái)更改大小寫默認(rèn)值?
如果按照第一項(xiàng)查看lower_case_table_names的值為0,但需要讓mysql默認(rèn)不區(qū)分大小寫的話,需要在mysql配置文件中添加參數(shù)并重啟mysql數(shù)據(jù)庫(kù)。mysql配置文件的修改內(nèi)容如下:
[mysqld]
...
lower_case_table_names = 1
注意:表和字段的編碼盡量繼承數(shù)據(jù)庫(kù)的編碼(不明顯指定即繼承),以免引起混亂。
LINUX下的MYSQL默認(rèn)是要區(qū)分表名大小寫的 ,而在windows下表名不區(qū)分大小寫
讓MYSQL不區(qū)分表名大小寫的方法其實(shí)很簡(jiǎn)單:
1.用ROOT登錄,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新啟動(dòng)數(shù)據(jù)庫(kù)即可
分享文章:mysql怎么區(qū)分大小寫,mysql區(qū)分大小寫嘛
當(dāng)前鏈接:http://chinadenli.net/article11/dsgdjdd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、虛擬主機(jī)、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、ChatGPT、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)