数据操作语言:条件查询(二)
逻辑运算符
序号 | 表达式 | 意义 | 例子 |
---|---|---|---|
1 | AND | 与关系 | age > 18 AND sex = "男" |
2 | OR | 或关系 | empno = 8000 OR deptno = 20 |
3 | NOT | 非关系 | NOT deptno =20 |
4 | XOR | 异或关系 | age > 18 XOR sex = "男" |
SELECT
ename,deptno
FROM t_emp
WHERE NOT deptno IN(10,20);
WHERE NOT deptno IN(10,20) XOR sal>=2000;
二进制按位运算
- 二进制位运算的实质是将参与运算的两个操作数,按对应的二进制数逐位进行逻辑运算。
SELECT 3 & 7;
按位运算符
序号 | 表达式 | 意义 | 例子 |
---|---|---|---|
1 | & | 位与关系 | 3 & 7 |
2 | | | 位或关系 | `3 |
3 | ~ | 位取反 | ``~10` |
4 | ^ | 位异或 | 3 ^ 7 |
5 | << | 左移 | 10 << 1 |
6 | >> | 右移 | 10 >> 1 |
WHERE 子句的注意事项
- WHERE 子句中,条件执行的顺序是从左到右的。所以我们应该把索引条件,或者筛选掉记录最多的条件写在最左侧
- 子句优先级
- 索引条件最左边,再是筛选最多的,最后是普通条件
各种子句的执行顺序
- 条件查询中,WHERE 子句应该是第几个执行?
FROM -> WHERE -> SELECT -> ORDER BY -> LIMIT