2013-10-03 38 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上都区分大小写。

在一个侧面说明: -

的数据库中,所有数据都存储在二进制格式。您可以使用不同的数据类型,计算机使用它来解释如何向用户显示数据,但这只是一个掩码。

相关问题