如:(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}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)