SQL 語句的大小寫規則與語句組成元素、引用內容和服務器所使用的操作系統有關。
#### 1) SQL 關鍵字和函數名
SQL 的關鍵字和函數名不區分大小寫。例如,下面這些語句都是等價的:
SELECT NOW();
select now();
sElEcT nOw();
#### 2) 數據庫名、表名和視圖名
MySQL用服務器主機的底層文件系統所包含的目錄和文件來表示數據庫和表。因此,數據庫名和表名的默認大小寫取決于服務器主機的操作系統在命名方面的規定。
比如 Windows 系統的文件名不區分大小寫,所以運行在 Windows 系統上面的 MySQL 服務器也不用區分數據庫名和表名的大小寫。Linux 系統的文件名區分大小寫,所以運行在 Linux 系統上的 MySQL 服務器需要區分數據庫名和表名的大小寫。對于 Mac OS X 平臺,其文件系統中的名字是個例外,它們不區分大小寫。
MySQL 會使用一個文件來表示一個視圖,所以以上與表有關的也同樣適用于視圖。
#### 3) 存儲程序的名字
存儲函數、存儲過程和事件的名字都不區分大小寫。觸發器的名字要區分大小寫,這一點與標準 SQL 的行為有所不同。
#### 4) 列名和索引名
在 MySQL 里,列名和索引名都不區分大小寫。例如,下面這些語句都是等價的:
SELECT name FROM student ;
SELECT NAME FROM student ;
SELECT nAmE FROM student ;
#### 5) 別名的名字
默認情況下,表的別名要區分大小寫。SQL 語句中可以使用任意的大小寫(大寫、小寫或大小寫混用)來指定一個別名。如果需要在同一條語句里多次用到同一個別名,則必須讓它們的大小寫保持一致。
下表總結了 SQL 元素在 Windows 和 Linux 系統是否區分大小寫。
| ? | Windows | Linux |
| --- | --- | --- |
| 數據庫名 | 否(忽略大小寫) | 是 |
| 表名 | 是 |
| 表別名 | 是 |
| 列名 | 否(忽略大小寫) |
| 列別名 | 否(忽略大小寫) |
| 變量名 | 是 |
在 Linux 服務器下創建數據庫和表時,應該認真考慮大小寫的問題,比如它們以后是否會遷移到 Windows 服務器上。
假設你在 Linux 服務器上創建了 abc 和 ABC 兩個表,當把這兩個表遷移到 Windows 服務器上時,就會出現問題;因為 Windows 系統并不區分大小寫,abc 和 ABC 無差別。如果把表從 Linux 服務器遷移到 Windows 服務器時,也同樣會遇到問題。
想要避免大小寫問題,可以先選定一種大小寫方案,然后一直按照該方案去創建數據庫和表。
在阿里巴巴Java開發手冊的 MySql 建表規約里提到:
> 【強制】表名、字段名必須使用小寫字母或數字,禁止出現數字開頭,禁止兩個下劃線中間只出現數字。數據庫字段名的修改代價很大,因為無法進行預發布,所以字段名稱需要慎重考慮。
通俗的說就是,MySQL 在 Windows 系統下不區分大小寫,但在 Linux 系統下默認區分大小寫。因此,數據庫名、表名和字段名,都不允許出現任何大寫字母,避免節外生枝。
一般建議統一使用小寫字母,并且 InnoDB 引擎在其內部都是以小寫字母方式來存儲數據庫名和表名的。這樣可以有效的防止 MySQL 產生大小寫問題。
- 數據庫入門
- 1.常用的數據庫
- 2.數據管理技術的3個發展階段
- 3.數據庫是什么?關系型數據庫和非關系型數據庫又是什么?
- 4.為什么要使用數據庫?
- 5.數據庫系統是什么?它由哪幾部分組成?
- 6.常用數據庫訪問接口簡介
- 7.數據庫的種類有哪些?
- 8.幾種常用的數據庫
- 9.MySQL是什么
- 10.MySQL適用于哪些場景?
- 11.學MySQL前,需要了解這些數據庫專業術語
- 12.MySQL客戶端和服務器架構(C/S架構)
- 13.明白了MySQL內部結構才能成為高手!
- 14.如何學習數據庫(新手必看)?
- 15.小白學習MySQL需要多長時間,能從事哪方面的工作?
- 16.當前市場對數據庫程序員的需求如何?待遇如何?
- 17.DBA到底要做什么,成為一名DBA需要具備什么能力?
- 一、數據庫的概念和常用工具
- 二、MySQL規范、配置及登錄退出操作
- 三、MySQL中的數據類型
- 四、數據庫增查改刪等操作
- 五、數據表增查改刪操作
- 六、MySQL數據增查改刪操作
- 七、MySQL存儲引擎
- 八、MySQL常用函數
- MySQL的安裝和配置
- 1.MySQL 5.7的新特性(新功能)
- 2.MySQL下載步驟詳解
- 3.MySQL安裝配置教程(Windows系統)
- 4.MySQL免安裝版配置教程
- 5.MySQL配置環境變量
- 6.安裝MySQL后,如何判斷是否已安裝成功
- 7.啟動MySQL服務的兩種方式(圖解)
- 8.登錄MySQL數據庫
- 9.對Linux MySQL軟件包的一些說明
- 10.Linux CentOS卸載MySQL(Linux安裝MySQL前的準備)
- 11.Linux安裝配置MySQL詳細步驟
- 12.MySQL my.cnf配置文件詳解
- 13.MySQL常用圖形化管理工具
- 14.MySQL安裝后的目錄結構介紹
- 15.MySQL數據庫文件存放目錄結構詳解
- 16.MySQL配置文件(my.ini)詳解
- 17.與其它數據庫不同,MySQL可以在不同的SQL模式下運行
- 18.MySql Command Line Client閃退原因及解決方案
- MySQL數據庫的基本操作
- 1.SQL是什么?它能做什么?
- 2.SQL的基本書寫規則
- 3.MySQL查看或顯示數據庫(SHOW DATABASES語句)
- 4.MySQL創建數據庫(CREATE DATABASE語句)
- 5.MySQL修改數據庫:ALTER DATABASE用法簡介
- 6.MySQL刪除數據庫(DROP DATABASE語句)
- 7.MySQL選擇數據庫(MySQL USE語句)
- 8.MySQL注釋:單行注釋和多行注釋
- 9.MySQL中SQL語句的大小寫規則
- 10.如何查看MySQL系統幫助?
- 11.看懂SQL錯誤代碼,提高學習效率!
- 數據庫高級
- 一、視圖的操作
- 二、觸發器的操作
- 三、事務的操作
- 四、索引的操作
- 五、存儲過程的操作
- 六、數據庫的優化方案
- 1.分庫、分表和索引
- 2.讀寫分離和查詢優化
- 3.join代替子查詢
- 4.盡量使用短小的事務
- 5.常用小技巧
- MySQL使用注意事項
- 1.字符亂碼及連接驅動