接下来咱们就一起看一下,第三类运算符,逻辑运算符是用来定义表达式之间的逻辑关系。比如说and运算符代表的是逻辑与关系,那么在条件与条件之间,写上按的这两个条件,就必须要同时满足。
逻辑运算符
序号 | 表达式 | 意义 | 例子 |
1 | AND | 与关系 | age>18 AND sex="男" |
2 | OR | 或关系 | empno = 8000 OR deptno=20 |
3 | NOT | 非关系 | NOT deptno=20 |
4 | XOR | 异或关系 | age >18 XOR sex="男" |
查询不在10,20部门的人员
select
ename,deptno
from t_emp
where not deptno in(10,20)
二进制按位运算
二进制位运算的实质是将参与运算的两个操作数,按对应的二进制数逐位进行逻辑运算
比如说下面这个例子,select 3然后& 7代表的就是把这个三和7按照二进制做逻辑运算。这个3的二进制是0011,那么7的二进制是0111,在求这个逻辑与关系的时候,只有说这个二进制位都是1的情况下,与出来的结果才是1。
比如说两个0的这个结果肯定是0,然后0和1的这个结果还是一个0和1,逻辑的这个二进制的与关系是一个1
按位运算运算符
二进制运算在mysql里面用的特别少
序号 | 表达式 | 意义 | 例子 |
1 | & | 位与关系 | 3&7 |
2 | | | 位或关系 | 3|7 |
3 | ~ | 位取反 | ~10 |
4 | ^ | 位异或 | 3^7 |
5 | << | 左移 | 10<<1 |
6 | >> | 右移 | 10>>1 |
where子句的注意事项
where子句中,条件执行的顺序是从左往右的。所以我们应该把索引条件,或者筛选掉记录最多的条件写在最左侧,利用索引可以快速缩小查询数据的范围,对查询速度的提升也是非常明显的
执行顺序
from > where > select > order by > limit