2013-10-03 37 views
3

我有三個表格樣本。我已經使用mysql將數據存儲在數據庫存儲在表中的數據是否區分大小寫?

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | Carl | Australia | 
+-------+------+-----------+ 

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | carl | australia | 
+-------+------+-----------+ 

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | CARL | AUSTRALIA | 
+-------+------+-----------+ 
  • 清楚,我們可以看到一個數據行中的每個表
  • 數據的本質是相同的

我所做的是我使用不同的大寫字母,有些是大寫字母,有些則是小寫字母。

數據庫中存儲的數據是否區分大小寫?

+3

「區分大小寫」用於什麼目的?存儲的數據只是數據。它不被解釋爲任何東西,不作爲代碼執行,它只是原始數據。無論你做什麼*這些數據可能會或可能不區分大小寫。在原始數據層面,「Carl」和「CARL」的二進制表示方式不同,因此數據不同。但無論使用那些數據可能不關心這種差異。 – David

+0

數據按其輸入方式(大寫,小寫,混合)進行存儲,但MyQL SQL select語句在默認情況下不區分大小寫:http://stackoverflow.com/questions/7857669/mysql-case-sensitive-query –

回答

3

是的,數據庫存儲數據如何提交它。

如果你說:

INSERT INTO MyTable (LowerCase, UpperCase) VALUES ("abcd", "ABCD"); 

,它將插入:

LowerCase | UpperCase 
abcd  | ABCD 

如果你

INSERT INTO MyTable (LowerCase, UpperCase) VALUES ("AbCd", "aBcD"); 

,它將插入:

LowerCase | UpperCase 
AbCd  | aBcD 

您可以根據需要對輸入進行消毒處理,或者直接輸入。

然而,當我做了

SELECT * FROM MyTable WHERE LowerCase="abcd"; 

將返回兩個條目。

3

數據只存儲爲原始數據。但是,如果您想以任何特定格式獲取數據,則可以對其格式化。您可以根據您的便利插入數據,但內部它們解釋相同,即ABC is same as abc and aBc

默認情況下,MySQL查詢不區分大小寫。

MySQL site

底層操作系統的情況下靈敏度起着數據庫和表名的情況下,靈敏度的部分 。 這意味着 數據庫和表名在Windows中不區分大小寫,並且案例 對大多數Unix的敏感。一個明顯的例外是Mac OS X,它基於Unix,但使用 不區分大小寫的默認文件系統類型(HFS +)。但是,Mac OS X還支持UFS卷( ),它們在任何Unix上都區分大小寫。

在一個側面說明: -

的數據庫中,所有數據都存儲在二進制格式。您可以使用不同的數據類型,計算機使用它來解釋如何向用戶顯示數據,但這只是一個掩碼。

相關問題