mysql區分大小寫嘛 Mysql區分大小寫問題

2021-10-19 21:45:45 字數 1000 閱讀 3279

在 mysql 中,資料庫和表其實就是資料目錄下的目錄和檔案,因而,作業系統的敏感性決定資料庫和表命名的大小寫敏感。這就意味著資料庫和表名在 windows 中是大小寫不敏感的,而在大多數型別的 unix/linux 系統中是大小寫敏感的。

mysql大小寫敏感可以通過配置檔案的lower_case_table_names引數來控制。

windows:

編輯mysql安裝目錄下的my.ini 檔案,在[mysqld]節下 新增 lower_case_table_names=0 (備註:為0時大小寫敏感,為1時大小寫不敏感,預設為1),可以實現mysql按照建表sql語句的大小寫狀態來定義表名。

linux:

mysql在linux下資料庫名、表名、列名、別名大小寫規則是這樣的:

1、資料庫名與表名是嚴格區分大小寫的;

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

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

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

mysql在windows下都不區分大小寫。

mysql在查詢字串時是大小寫不敏感的,在編繹mysql時一般以iso-8859字符集作為預設的字符集,這個字符集對大小寫不敏感,因此在比較過程中中文編碼字元大小寫轉換造成了這種現象。

2.解決辦法

a.表名區分大小寫

在my.conf加入:

ower_case_table_names = 0

其中 0:區分大小寫,1:不區分大小寫

b.插入查詢時區分大小寫

字段值需要設定binary屬性,即可區分大小寫。

設定的方法有多種:

建立時設定:

create table t(

a varchar(10) binary

使用alter修改:

alter table `tablename` modify column `cloname` varchar(45) binary;

mysql table editor中直接勾選binary項。

MYSQL 區分大小寫

1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增lower case table names 1,重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower case table...

mysql區分大小寫

兩種情況下會區分大小寫,1 建表時,表的編碼是utf8 bin utf8 general ci不會區分大小寫 注意是表編碼不是資料庫編碼。區分大小寫與資料庫編碼無關。2 建表後,可以通過 binary調整。語句如下 alter table wl testdx bin wlt testdx bin m...

mysql 區分大小寫 大小寫敏感 配置

linux下mysql預設區分大小寫 windows下mysql預設不區分大小寫 檢視是否區分大小寫 lower case table names引數詳解 lower case table names 0 其中 0 區分大小寫,1 不區分大小寫 mysql在linux下資料庫名 表名 列名 別名大小...