SQL布尔逻辑条件

SQL布尔逻辑条件,sql,boolean-logic,Sql,Boolean Logic,我对这句话感到困惑,为什么它是真的 如果类型为“稀有”,则价格必须超过500美元 这个条件可以满足,但我不知道如何满足 CHECK (type <> 'rare' OR price > 500) 检查(键入“稀有”或价格>500) 这个问题呢,, 如果类型为“新奇”,则价格必须超过10美元,但低于30美元。 CHECK ((type <> 'novel') OR (price > 10 AND price < 30)) 检查((输入'novel')

我对这句话感到困惑,为什么它是真的

如果类型为“稀有”,则价格必须超过500美元

这个条件可以满足,但我不知道如何满足

CHECK (type <> 'rare' OR price > 500)
检查(键入“稀有”或价格>500)
这个问题呢,, 如果类型为“新奇”,则价格必须超过10美元,但低于30美元。

CHECK ((type <> 'novel') OR (price > 10 AND price < 30))
检查((输入'novel')或(价格>10且价格<30))

“A或B”表示这些陈述中至少有一条是正确的。如果A不是真的(type='ravel'),那么B必须是真的(price>500)才能满足条件。您的第二个语句具有完全相同的逻辑。

很难从概念上理解为什么它们是等价的。这可能有助于从四个可能的条件开始,相对于:如果类型是
稀有
,那么价格必须超过500美元

Type = 'rare', price > $500:   True
Type <> 'rare', price > $500:  True
Type = 'rare', price <= $500:  False
Type <> 'rare', price <= $500  True
Type='ravel',价格>$500:True
输入“稀有”,价格>500美元:正确
Type='ravel',价格表
检查(Type'ravel'或price>500)
,使用
而不是