条件查询
过滤数据(比较运算符的使用)
过滤数据:使用WHERE子句,将不满足条件的行过滤掉
Where中使用数字值
Select * from emp where deptno = 20 或者’20’
Where中使用字符值(必须给字符值加单引号,字符值区分大小写)
Select * from emp where job = ‘MANAGER’;
Where中使用日期值(日期值必须加单引号,必须符合日期语言和显示格式)
Select * from emp where hiredate = ’02-4月-81’;
不等于用 <> 或者!= 表示
过滤数据(范围查询、模糊查询、空值判断)
范围查询BETWEEN...ADN:BETWEEN..AND用于指定特定范围的条件
两值之间包含边界
BETWEEN较小值 ADN 较大值
举例: empno雇员编号、enamel雇员名、sal工资
SELECT empno,ename,sal from emp
Where sal between 1500 and 3000;
等价于
SELECT empno,ename,sal from emp
Where sal >= 1500 and sal <=3000;
范围查询IN:
IN执行列表匹配的操作 列或表达式结果匹配列中的任意一个值
IN(值1,[值2, …值n])
举例:
Select empno,ename,job from emp
Where job in(‘SALESMAN’,’MANAGER’,’CLERK’)
等价于
Select empno,ename,job from emp
Where job =‘SALESMAN’ or job = ’MANAGER’ or job = ’CLERK’;
模糊查询LIKE:
用LIKE执行模糊查询时,需要使用通配符%和_.
通配符%:用于表示0个或多个字符
通配符_:用于表示单个字符
举例:
Select * from emp where ename like ‘J%’; //表示以J开头结尾任意
Select * from emp where ename like ‘_AR%’;//表示AR前一个字符后不限
模糊查询中特殊符号的处理
回避特殊符号的方法:使用转义符。
例如将[%]转为[\%],将[_]转为[\_] 然后再加上[ESCAPE’\’]即可
举例:
Select * from emp where ename like ‘G\_%’ escape’\’;
注意,要转义的话每个字符都得加’\
判断空值 IS NULL:
用于检测列或表达式的结果是否为NULL,如果是返回true,否则返回false’
判断列或表达式的结果是否为空可以用is null 或者 is not null但是不能用=null或者<>null来判断
举例:
Select empno,ename,sal,comm from emp where comm is null;
Select empno,ename,sal,comm from emp where comm is not null;
过滤数据(逻辑运算符的使用)
逻辑运算 ADN OR NOT:
AND同时满足多个条件
OR 满足某一个条件
NOT 返回不满足特定条件的结果:
Select empno,ename,job from emp
Where job not in(‘CLERK’,’SALESMAN’,’MANAGER’);
//表示查询员工岗位不是‘CLERK’,’SALESMAN’,’MANAGER’的员工的编号、姓名、岗位
在where子句中混合使用逻辑运算符
在三个逻辑操作符中 NOT优先级最高 AND其次 OR最低。改变优先级需要使用括号
not>and>or
举例:
Select empno,ename,job,sal from emp
Where(sal>2000 or deptno=30) and job not in (‘PRESIDENT’,’MANAGER’);