Mysql查詢是否區分大小寫

原文鏈接:https://blog.csdn.net/elf8848/article/details/39927177

1、是否區分 庫名、表名、列名、別名 的大小寫?

 

[ Linux] MySQL在Linux下數據庫名、表名、列名、別名大小寫規則:

1、數據庫名與表名是嚴格區分大小寫

2、表的別名是嚴格區分大小寫

3、列名與列的別名在所有的情況下均是忽略大小寫的

4、變量名也是嚴格區分大小寫的

改變表名的大小寫區分規則的方法,修改/etc/my.cnf,在[mysqld]後添加添加lower_case_table_names=1,重啓MySQL服務,若設置成功,則不再區分表名的大小寫。

 

[ Windows ] MySQL在Windows下數據庫名、表名、列名、別名都不區分大小寫。

如果想大小寫區分則在my.ini 裏面的mysqld部分 ,加入 lower_case_table_names=0

注意:Windows中即使改了這個設置,在查詢時還是不會區分大小寫。只是在導入導出時會對大小寫有區別。

 

2、查詢時where條件是否區分大小寫

 

取決於庫或表上的collation(覈對、對比) 屬性的值。

例如我們使用UTF8編碼,collate使用utf8_bin時區分大小寫,collate使用utf8_general_ci時不區分大小寫

 

建庫語句:

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; (不區分大小寫)

 

建表語句:

CREATE TABLE test2(id int(10),name char(10))

ENGINE = InnoDB

COLLATE = 'utf8_bin'  (區分大小寫)

 

建表時指明瞭collation,則對對錶有效。建表時未指明collation,則使用庫上的collation屬性。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章