表中存储的数据是否区分大小写?

时间:2013-10-03 17:06:45

标签: mysql case-sensitive

我有三张桌子样本。我使用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 |
+-------+------+-----------+
  • 显然我们可以在每个表格中看到一行数据
  • 数据的性质相同

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

数据存储在数据库区分大小写吗?

2 个答案:

答案 0 :(得分:6)

数据仅存储为原始数据。但是,如果要以任何特定格式获取数据,可以对其进行格式化。您可以根据自己的方便性插入数据,但内部解释相同,即ABC is same as abc and aBc

默认情况下,MySQL查询不区分大小写。

来自MySQL site

  

底层操作系统的区分大小写是其中的一部分   在数据库和表名称的敏感性的情况下。 这意味着   在Windows和大小写中,数据库和表名称不区分大小写   在大多数Unix版本中都很敏感。一个值得注意的例外是Mac OS   X,它是基于Unix的,但使用默认的文件系统类型(HFS +)   不区分大小写。但是,Mac OS X也支持UFS卷,   它就像在任何Unix上一样区分大小写。

旁注: -

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

答案 1 :(得分:4)

是的,数据库存储您提交数据的方式。

如果你说:

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";

它将返回两个条目。