gpt4 book ai didi

mysql - 在主键上调用 SELECT * 与 SQL 中的属性

转载 作者:可可西里 更新时间:2023-11-01 07:49:36 24 4
gpt4 key购买 nike

我目前正在准备期末考试,并且对其中一个练习题有疑问。

问题说明:

考虑以下两个对关系 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

哪个是正确的?

一个。查询 1 和 2 返回 R 中的所有记录

查询 2 返回 R 中的所有记录, 但查询 1 可能不会

官方回答说b是对的,但我想知道为什么。我知道主键必须是唯一的,这意味着查询 2 应该返回每条记录。但是即使有重复的 B 也不会查询 1 也返回每条记录值(value)观?

最佳答案

正确答案是第二个,因为A是主键,主键不能为null,所以

A > 50 OR A <= 50

将始终为真,而以下内容:

B > 50 OR B <= 50

如果 B 为 NULL,则可能为 NULL

NULL > 50 OR NULL <= 50 ---> NULL

并且当 B 为 null 时不会返回行。

关于mysql - 在主键上调用 SELECT * 与 SQL 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com