Mysql 是一種常用的關系型數據庫管理系統,它支持大小寫敏感和大小寫不敏感兩種模式。
在大小寫敏感模式下,Mysql 區分大小寫,例如 "TABLE" 和 "table" 是兩張不同的表;而在大小寫不敏感模式下,Mysql 不區分大小寫,例如 "TABLE" 和 "table" 被視為同一張表。
mysql>CREATE TABLE MyTable ( id int, Name varchar(20) ); mysql>INSERT INTO MyTable VALUES (1, 'John'); mysql>INSERT INTO MyTable VALUES (2, 'john'); --在大小寫敏感模式下,以下兩條 SELECT 語句會返回不同的結果 mysql>SELECT * FROM MyTable WHERE Name = 'John'; mysql>SELECT * FROM MyTable WHERE Name = 'john'; --在大小寫不敏感模式下,以下兩條 SELECT 語句會返回相同的結果 mysql>SET NAMES utf8; mysql>SET collation_connection = utf8_general_ci; mysql>SELECT * FROM MyTable WHERE Name = 'John'; mysql>SELECT * FROM MyTable WHERE Name = 'john';
當創建索引時,如果使用了大小寫不敏感的字符集,那么索引也是不區分大小寫的。
mysql>CREATE TABLE MyTable ( id int, Name varchar(20) COLLATE utf8_general_ci ); mysql>CREATE INDEX MyIndex ON MyTable (Name); --在大小寫不敏感模式下,以下兩條 SELECT 語句會返回相同的結果 mysql>SELECT * FROM MyTable WHERE Name = 'John'; mysql>SELECT * FROM MyTable WHERE Name = 'john';
但是,如果使用了大小寫敏感的字符集,那么創建的索引也是大小寫敏感的。
mysql>CREATE TABLE MyTable ( id int, Name varchar(20) COLLATE utf8_general_cs ); mysql>CREATE INDEX MyIndex ON MyTable (Name); --在大小寫敏感模式下,以下兩條 SELECT 語句會返回不同的結果 mysql>SELECT * FROM MyTable WHERE Name = 'John'; mysql>SELECT * FROM MyTable WHERE Name = 'john';
總之,在選擇大小寫敏感或不敏感的模式時,需要根據實際情況進行考慮,以確保數據的一致性和查詢效率。
上一篇mysql對數據表的修改
下一篇css盒子圖片邊框屬性