数据库记录是否区分大小写?

5

我有两个表CityCityCommunity,在City表中,一个列包含类似于cityName的内容。

cityName = 'ABC'

CityCommunity表中,我们有一个名为cityName的相同列,但是这个列的值类似于这样。
 cityName = 'abc' 

当我们运行连接查询时,它会影响查询吗?在我的情况下,当我将这两个表连接起来时,在上述情况下,如果cityName相同但仅区分大小写,它是否会影响查询运行。


5
这取决于排序规则 - 参见排序规则和Unicode支持(默认排序规则通常为“CI”,即不区分大小写)。 - user2864740
可以说是可以,也可以说不行,这取决于你的数据库排序规则是否区分大小写。如果是区分大小写的(CS),那么是可以的;如果不区分大小写(CI),那么就不行。通常对于像用户ID和密码这样的敏感信息,我们会选择区分大小写的排序规则(CS)。 - user240141
1
请查看此链接:https://dev59.com/0G865IYBdhLWcg3wIa_M - Naveen
2个回答

5

默认情况下,SQL不区分大小写。因此,它将把“ABC”和“abc”视为相同的。但是要使其区分大小写,您必须使用COLLATE。 您可以在这里找到详细的解释和示例。这也适用于连接查询。


0
在Oracle中,查询结果是区分大小写的。因此,如果您要查找 cityName = 'ABC' 那么结果中包含 cityName = 'abc'cityName ='Abc' 将不会显示!
您需要添加UPPER函数以获取所有结果。
SELECT UPPER(cityName)
FROM City;

在这种情况下,无论结果是什么,它都会将整个列的数据转换为大写。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接