MySQL是否區分大小寫是許多初學者經常疑惑的問題,下面讓我們來詳細了解一下。
MySQL 是區分大小寫的,但并不是在所有情況下都區分。
那么在哪些情況下會區分呢?
1. 表名或列名在創建時加了BINARY屬性。 CREATE TABLE BINARY_TABLE ( id INT, name BINARY(20) ); INSERT INTO BINARY_TABLE (id, name) VALUES (1, 'John'); SELECT * FROM BINARY_TABLE WHERE name = 'john'; -- 返回0行,因為'name'列是用BINARY類型定義的,區分大小寫。 2. 在單引號或雙引號里的字符串。 SELECT * FROM users WHERE email = 'test@gmail.com'; SELECT * FROM users WHERE email = "test@gmail.com"; -- 上述兩個查詢是完全相同的,因為MySQL默認使用單引號包含字符串值。但如果使用“test”代替‘test’,則將返回0行。 3. 數據庫、表、索引、存儲過程和觸發器的名稱。 CREATE DATABASE mydatabase; USE myDATABASE; -- 返回錯誤,因為MySQL是區分大小寫的,而'database'的大小寫是不同的。
總結:
MySQL是區分大小寫的,但只在特定情況下才會區分。在大多數情況下,MySQL是不區分大小寫的。因此,建議在編寫SQL語句時始終假定MySQL是不區分大小寫的,以避免由此引起的錯誤。