条件查询
语法格式:
Select
字段1,字段2....
from
表名
Where
条件;
执行顺序:先from,然后where,最后select
例1:查询工资5000的员工姓名?
Select ename from emp where sal = 5000;
例2:查询SMITH的工资?
Select sal from emp where ename =‘ SMWITH’;
例3:找出工资高于3000的员工?
Select ename,sal from emp where sal >3000;
例4:找出工资不等于3000的员工?
Select ename,sal from emp where sal <> 3000;
或Select ename,sal from emp where sal != 3000;
例5:找出工资在1100到3000之间的员工(包括1100和300)?
Select ename,sal from emp where sal >= 1000 and sal <= 3000;
或Select ename,sal from emp where sal between 1000 and 3000;(between…and…是闭区间)
Between…and…除了可以使用在数字方面,还可以使用在字符串方面。
Select ename from emp where ename between ‘A’and ‘C’;用在字符方面,是左闭右开。
例6、找出哪些人津贴为null?
(在数据库中NULL不是一个值,代表什么也没有,为空)不能用=衡量,要用is NULL或is not NULL。
Select enmae,sal,comm from emp where comm is null;
例7、找出哪些人有津贴?
Select ename,sal,comm from emp where comm is not null;
例8、找出哪些人没有津贴?
Select ename ,sal,comm from emp where comm is null or comm = 0;
例9、找出工作岗位是MANAGER和SALESMAN的员工?
Select ename,job from emp where job = ‘MANAGER’ and job = ‘SALESMAN’;
select ename,job from emp where job in(‘SALESMAN’,‘MANAGER’);
In 等同于 or 。In表示在这几个值中,not in表示不在这几个值中。
例10、找出薪资大于1000的并且部门编号是20或30的员工。
*select ename,sal,deptno from emp where sal > 1000 and deptno = 30 or deptno = 20; *
(and 和 or碰到一起,and优先级更高,所以会优先执行 sal > 1000 and deptno = 30)所以这样表达是错的!!!
修改:select ename,sal,deptno from emp where sal > 1000 and (deptno = 30 or deptno = 20);
**注意:当符号优先级不确定的时候要加小括号()。
例11、找出名字里含有O的?
模糊查询like,在模糊查询中,有两个特殊的符号,一个是%,一个是_
%代表任意多个字符,_代表任意1个字符。
select ename from emp where ename like ‘%o%’;**