各个不同的数据库中布尔逻辑运算符的运算顺序都是一致的吗?

各个不同的数据库中布尔逻辑运算符的运算顺序都是一致的吗?,第1张

开门见山不一致布尔逻辑算符的运算顺序:从高至低依次是not、and、near、with、or,可以使用括号改变运算次序。优先算符是not、括号。

如:(A or B) and C先运算(A or B),再运算and C。

检索中逻辑算符使用是最频繁的,逻辑算符使用的技巧决定检索结果的满意程度。用布尔逻辑表达检索要求,除要掌握检索课题的相关因素外,还应在布尔算符对检索结果的影响方面引起注意。另外,对同一个布尔逻辑提问式来说,不同的运算次序会有不同的检索结果

例句:select 列名 from 表名 where 条件1 or 条件2 and 条件3

SQL在处理or *** 作符之前,优先处理and *** 作符,如此例中,会优先查找满足条件2和条件3的数据,然后再查找出满足条件1的.若要解决这个问题,可以使用圆括号明确的分组相应的 *** 作符.

如:select 列名 from 表名 where ( 条件1 or 条件2 ) and 条件3

注意:在使用具有AND和OR *** 作符的where子句中都应使用圆括号明确的分组 *** 作符,不要过分依赖默认计算次序,即使它确实是你想要的东西也是如此.使用圆括号没有什么坏处,它能消除歧义.

除法:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组.R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集.R与S的出运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合.

R表中,C可以取四个值{2,6,4},其中:

2的象集为{(1,3)}

6的象集为{(5,7),(1,3)}

4的象集为{(1,3)}

S在(A,B)上的投影为{(1,3),(5,7)}

显然只有6的象集包含S在(A,B)属性组上的投影

所以R/S={6}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9917893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存