sql关系型运算符优先级高到低为:not >and> or
AND、OR运算符的组合使用
在WHERE子句中,通过AND、OR运算符可以同时连接多个条件,当然AND、OR运算符也可以同时使用。但是当AND、OR运算符同时存在时,其优先级如何确定呢?与大多数语言一样,SQL语言认为AND运算符的运算级别要高于OR运算符。即当出现:
condition1 OR condition2 AND condition3
其运算实际上是等价于:condition1 OR (condition2 AND condition3) //先运算and 再运算or
因此,AND、OR运算符需要同时使用时,一定要注意运算符的优先级
网上获取计算机和生物老师工资>1000的人
SELECT TNAME, DNAME, SAL FROM TEACHER WHERE (DNAME='计算机' OR DNAME='生物') AND SAL>1000 ORDER BY SAL
可以发现,当在OR运算符连接的两个条件加上括号( )后,得到了需要的查询结果。这是因为,括号( )的优先级高于AND运算符,执行过程就先于AND运算符。
注意 当OR运算符和AND运算符同时运用时,建议用户不要考虑其默认的优先级顺序,而是采用括号( )来实现需要的执行顺序,这样可以增强程序的可读性。