我目前在备考期末考试,有一个关于练习问题的疑问。
问题陈述如下:
考虑以下两个针对关系R(A,B)
的SQL查询,其中属性A
是主键。
查询1:SELECT * FROM R WHERE B > 50 OR B <= 50
查询2:SELECT * FROM R WHERE A > 50 OR A <= 50
哪个是正确的?
a. 查询1和查询2都返回R
中的所有记录
b. 查询2返回R
中的所有记录,但查询1可能不会
官方答案说b是正确的,但我想知道为什么。我明白主键必须是唯一的,这意味着查询2应该返回每条记录。但是,即使存在重复的B
值,查询1也不会返回每条记录吗?