有關大小寫的說明你可以此一下 MySQL 的說明文件
7.1.5 數據庫、表、索引、列和別名的命名
數據庫、表、索引、列和別名的名字都遵守MySQL同樣的規則:
注意,從MySQL3.23.6開始規則改變了,此時我們引入了用'引用的標識符(數據庫、表和列命名)(如果你以ANSI模式運行,"也將用于引用標識符)。
標識符 最大長度 允許的字符
數據庫 64 在一個目錄名允許的任何字符,除了/.
表 64 在文件名中允許的任何字符,除了/或.
列 64 所有字符
別名 255 所有字符
注意,除了以上,你在一個標識符中不能有ASCII(0)或ASCII(255)。
注意,如果標識符是一個限制詞或包含特殊字符,當你使用它時,你必須總是用`引用它:
SELECT * from `select` where `select`.id > 100;
在 MySQL的先前版本,命名規則如下:
一個名字可以包含來自當前字符集的數字字母的字符和“_”和“$”。缺省字符集是ISO-8859-1 Latin1;這可以通過重新編譯MySQL來改變。見9.1.1 用于數據和排序的字符集。
一個名字可以以在一個名字中合法的任何字符開始。特別地,一個名字可以以一個數字開始(這不同于許多其他的數據庫系統!)。然而,一個名字不能僅僅由數字組成。
你不能在名字中使用“.”,因為它被用來擴充格式,你能用它引用列(見下面)。
建議你不使用象1e這樣的名字,因為一個表達式如1e+1是二義性的。它可以解釋為表達式1e + 1或數字1e+1。
在MySQL中,你能使用下列表格的任何一種引用列:
列引用 含義
col_name 來自于任意表的列col_name,用于包含該表的一個列的查詢中
tbl_name.col_name 來自當前的數據庫的表tbl_name的列col_name
db_name.tbl_name.col_name 行列col_name從表格tbl_name數據庫db_name。這個形式在MySQL3.22或以後版本可用。
`column_name` 是一個關鍵詞或包含特殊字符的列。
在一條語句的列引用中,你不必指定一個tbl_name或db_name.tbl_name前綴,除非引用會有二義性。例如,假定表t1和t2,每個均包含列c,並且你用一個使用t1和t2的SELECT語句檢索c。在這種情況下,c有二義性,因為它在使用表的語句中不是唯一的,因此你必須通過寫出t1.c或t2.c來指明你想要哪個表。同樣,如果你從數據庫db1中一個表t和在數據庫db2的一個表t檢索,你必須用db1.t.col_name和db2.t.col_name引用這些數據表的列。
句法.tbl_name意味著在當前的數據庫中的表tbl_name,該句法為了ODBC的兼容性被接受,因為一些ODBC程序用一個“.”字符作為數據庫表名的前綴。
7.1.5.1 名字的大小寫敏感性
在MySQL中,數據庫和表對應于在那些目錄下的目錄和文件,因而,內在的操作系統的敏感性決定數據庫和表命名的大小寫敏感性。這意味著數據庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。
注意:在Win32上,盡管數據庫和表名是忽略大小寫的,你不應該在同一個查詢中使用不同的大小寫來引用一個給定的數據庫和表。下列查詢將不工作,因為它作為my_table和作為MY_TABLE引用一個表:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
列名在所有情況下都是忽略大小寫的。
表的別名是區分大小寫的。下列查詢將不工作,: 因為它用a和A引用別名:
mysql> SELECT col_name FROM tbl_name AS a
WHERE a.col_name = 1 OR A.col_name = 2;
列的別名是忽略大小寫的。
轉載自
http://linux.tnc.edu.tw/techdoc/mysql/mysql...ce.html#Legal_names