程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 教你如何在windows與linux系統中設置MySQL數據庫名、表名大小寫敏感,mysql數據庫名

教你如何在windows與linux系統中設置MySQL數據庫名、表名大小寫敏感,mysql數據庫名

編輯:MySQL綜合教程

教你如何在windows與linux系統中設置MySQL數據庫名、表名大小寫敏感,mysql數據庫名


在 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:

編輯/etc/my.cnf文件,在[mysqld]節下 添加 lower_case_table_names 參數,並設置相應的值 (備注:為0時大小寫敏感,為1時大小寫不敏感,默認為0)


linux中怎讓mysql的表不區分sql語句的大小寫?

Windows 環境下大小寫不敏感

CREATE TABLE tab (
id INT AUTO_INCREMENT,
val VARCHAR(10),
PRIMARY KEY (id)
);

mysql> select * from tab;
Empty set (0.00 sec)

mysql> select * from Tab;
Empty set (0.00 sec)

mysql> select * from `Tab`;
Empty set (0.00 sec)

在MySQL中如何在硬盤上保存和使用表名和數據庫名由lower_case_tables_name系統變量確定,可以在啟動mysqld時設置。lower_case_tables_name可以采用下面的任一值:
值含義
0使用CREATE TABLE或CREATE DATABASE語句指定的大寫和小寫在硬盤上保存表名和數據庫名。名稱比較對大小寫敏感。在Unix系統中的默認設置即如此。請注意如果在大小寫不敏感的文件系統上用--lower-case-table-names=0強制設為0,並且使用不同的大小寫訪問MyISAM表名,會導致索引破壞。
1表名在硬盤上以小寫保存,名稱比較對大小寫敏感。MySQL將所有表名轉換為小寫以便存儲和查找。該行為也適合數據庫名和表的別名。該值為Windows和Mac OS X系統中的默認值。
2表名和數據庫名在硬盤上使用CREATE TABLE或CREATE DATABASE語句指定的大小寫進行保存,但MySQL將它們轉換為小寫以便查找。名稱比較對大小寫敏感。注釋:只在對大小寫不敏感的文件系統上適用! InnoDB表名以小寫保存,例如lower_case_tables_name=1。
在Windows和Mac OS X中,lower_case_tables_name的 默認值是1。
如果只在一個平台上使用MySQL,通常不需要更改lower_case_tables_name變量。然而,如果你想要在對大小寫敏感不同的文件系統的平台之間轉移表,會遇到困難。例如,在Unix中,my_tables和MY_tables是兩個不同的表,但在Windows中,這兩個表名相同。要想避免由於數據庫或表名的大小寫造成的數據轉移問題,可使用兩個選項:
• 在任何系統中可以使用lower_case_tables_name=1。使用該選項的不利之處是當使用SHOW TABLES或SHOW DATABASES時,看不出名字原來是用大寫還是小寫。
• 在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。這樣了可以保留數據庫名和表名的大小寫。不利之處是必須確保在Windows中查詢總是用正確大小寫引用數據庫名和表名。如果將查詢轉移到Unix中,由於在Unix中大小寫很重要,如果大小寫不正確,它們不工作。
例外:如果你正使用InnoDB表,在任何平台上均應將lower_case_tables_name設置為1,以強制將名轉換為小寫。
請注意在Unix中將lower_case_tables_name設置為1之前,重啟mysqld之前,必須先將舊的數據庫名和表名轉換為小寫。...余下全文>>
 

linux下mysql表名大小寫問題

這個和hibernate 無關,MYSQL的問題

1、Linux下mysql安裝完後是默認:區分表名的大小寫,不區分列名的大小寫;
2、用root帳號登錄後,在/etc/my.cnf中的[mysqld]後添加添加lower_case_table_names=1,重啟MYSQL服務,這時已設置成功:不區分表名的大小寫;
lower_case_table_names參數詳解:
lower_case_table_names=0
其中0:區分大小寫,1:不區分大小寫

MySQL在Linux下數據庫名、表名、列名、別名大小寫規則是這樣的:
1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
MySQL在Windows下都不區分大小寫。
3、如果想在查詢時區分字段值的大小寫,則:字段值需要設置BINARY屬性,設置的方法有多種:

A、創建時設置:
CREATE TABLE T(
A VARCHAR(10)BINARY
);

B、使用alter修改:
ALTER TABLE`tablename`MODIFY COLUMN`cloname`VARCHAR(45)BINARY;

C、mysql table editor中直接勾選BINARY項。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved