数据操作语言:条件查询(一)
条件查询
1
| SELECT ...... FROM ..... WHERE 条件 [AND | OR] 条件 ...... ;
|

1 2 3 4
| SELECT empno,ename,sal FROM t_emp WHERE deptno=10 AND sal>=2000; WHERE (deptno=10 OR deptno=20)AND sal>=2000;
|
四类运算符
WHERE
语句中的条件运算会用到以下四种运算符:
序号 |
运算符 |
1 |
数学运算符 |
2 |
比较运算符 |
3 |
逻辑运算符 |
4 |
按位运算符 |
算数运算符
序号 |
表达式 |
意义 |
例子 |
1 |
+ |
加法 |
1 + 2 + 3 |
2 |
- |
减法 |
1 - 2 - 3 |
3 |
* |
乘法 |
5 * 35 |
4 |
/ |
除法 |
231 / 15 |
5 |
% |
求模 |
10 % 3 |
查询 10 部门里面 年收入超过 15K 美金,并且工龄超过二十年 的员工信息
1 2 3 4 5 6 7 8 9
| SELECT empno,ename,sal,hiredate FROM t_emp WHERE deptno=10 AND (sal+IFNULL(comm,0))*12>=15000; AND DATEDIFF(NOW(),hiredata)/265>=20;
SELECT NOW()
SELECT 10+IFNULL(null,0);
|
比较运算符(一)
序号 |
表达式 |
意义 |
例子 |
1 |
> |
大于 |
age > 18 |
2 |
>= |
大于等于 |
age >= 18 |
3 |
< |
小于 |
sal < 3000 |
4 |
<= |
小于等于 |
sal <= 3000 |
5 |
= |
等于 |
deptno = 10 |
6 |
!= |
不等于 |
deptno != 30 |
7 |
IN |
包含 |
deptno IN(10,30,40) |
查询 10,20,30 部门里面,在 1985 年以前入职的员工并且不是 saselmen
员工的信息
1 2 3 4 5
| SELECT empno,ename,sal,deptno,hiredate FROM t_emp WHERE deptno IN(10,20,30) AND job!="SALESMAN" AND hiredate<"1985-01-01";
|
比较运算符(二)
序号 |
表达式 |
意义 |
例子 |
8 |
IS NULL |
为空 |
comm IS NULL |
9 |
IS NOT NULL |
不为空 |
comm IS NOT NULL |
10 |
BETWEEN AND |
范围 |
sal BETWEEN 2000 AND 3000 |
11 |
LIKE |
模糊查询 |
ename LIKE "A%" |
12 |
REGEXP |
正则表达式 |
ename REGEXP "[a-zA-Z]{4}" |
1 2 3
| SELECT ename,comm,sal FROM t_emp WHERE comm IS NOT NULL
|
1 2 3 4
| SELECT ename,comm,sal FROM t_emp WHERE comm IS NULL AND sal BETWEEN 2000 AND 3000;
|
1 2 3 4 5 6
| SELECT ename,comm,sal FROM t_emp WHERE comm IS NULL AND sal BETWEEN 2000 AND 3000 AND ename LIKE "%A%";
|
1 2 3 4 5 6
| SELECT ename,comm,sal FROM t_emp WHERE comm IS NULL AND sal BETWEEN 2000 AND 3000 AND ename LIKE "_LAKE";
|
1 2 3 4 5 6
| SELECT ename,comm,sal FROM t_emp WHERE comm IS NOT NULL AND sal BETWEEN 1000 AND 3000 AND ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";
|