MySQL是一個常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持對數(shù)據(jù)表字段的大小寫敏感設(shè)置。有些程序員可能不了解大小寫敏感的設(shè)置對數(shù)據(jù)表操作的影響,這里我們來詳細了解一下。
首先,要明確MySQL默認是大小寫不敏感的。也就是說,你可以用任何大小寫的方式來指定數(shù)據(jù)表和字段名。例如,下面兩行SQL語句是等價的:
SELECT id, name FROM users; select ID, NAME from USERS;
但有些開發(fā)者需要通過大小寫敏感來進行數(shù)據(jù)表的區(qū)分。這時,可以在創(chuàng)建數(shù)據(jù)表時使用字符串“BINARY”來保證字段名的大小寫敏感。例如:
CREATE TABLE `Users` ( `Id` INT NOT NULL, `Name` VARCHAR(45) BINARY NOT NULL );
當我們在操作數(shù)據(jù)表時,使用任何大小寫的字段名都會報錯。例如:
SELECT id, name from Users; ERROR 1054 (42S22): Unknown column 'id' in 'field list'
同理,在對數(shù)據(jù)表字段進行操作時,大小寫也是敏感的。例如,我們創(chuàng)建了一個大小寫敏感的數(shù)據(jù)表,然后在插入數(shù)據(jù)時使用了大小寫不同的字段名。數(shù)據(jù)插入成功后,如果我們使用大小寫不同的字段名進行查詢,則會返回空值。例如:
INSERT INTO `Users` (`Id`, `Name`) VALUES (1, 'Tom'); SELECT iD, nAmE FROM Users;
這時,查詢結(jié)果會顯示字段名有誤:
+------+------+ | iD | nAmE | +------+------+ | NULL | NULL | +------+------+
總結(jié)一下,MySQL默認是大小寫不敏感的,但我們可以通過“BINARY”來設(shè)置數(shù)據(jù)表字段大小寫敏感。在進行數(shù)據(jù)表操作時,我們需要保證字段名的大小寫一致,否則會報錯或者造成無法正確查詢數(shù)據(jù)的問題。