where条件语句
表展示:
salgrade表
dept表:
emp表:
1) 特殊比较运算符
① between … and … 在两值之间 (包含)
如: 查询员工表中[2000-3000]工资之间的员工姓名及工资
select ename,sal from emp
where sal between 2000 and 3000;
【练习】查询员工表中入职日期在1981-05-01到1982-04-06期间入职的员工的姓名,入职日期,部门号(日期需要引号括起来)
② in(list) 匹配列出的值
如: 查询部门号为10,20的员工的姓名,部门号’
select ename,deptno from emp where deptno in(10,20);
③ like 匹配一个字符模式
% 可表示零或多个任意字符
_ 可表示一个字符
% 如: 查询员工姓名第一个字符为’A’的员工的姓名
select ename from emp where ename like "A%";
_ 如:查询员工姓名中第三个字符为’A’的员工的姓名
select ename from emp where ename like "__A%";
④ is null 是空值
【例】查询员工表中奖金为空的员工的姓名,奖金
select ename,comm from emp where comm is null;
2) 逻辑运算符
① and 或者 &&
and 或者 && : 如果组合的条件都为真则返回真值
如: 查询10号部门,职位为CLERK的员工的姓名,职位,部门号
#and
select job,ename,deptno from emp
where deptno = 10 and job = "CLERK";
#&&
select job,ename,deptno from emp
where deptno = 10 && job = "CLERK";
② OR 或者 ||
OR 或者 || : 如果组合的条件之一是真值,返回真值
如: 查询20号部门或者职位为SALESMAN的员工的姓名,职位,部门号
#or
select ename,job,deptno from emp
where deptno = 20 or job = "SALESMAN";
#||
select ename,job,deptno from emp
where deptno = 20 || job = "SALESMAN";
③ NOT 或者!
NOT 或者! 如果条件为假则返回真值
如: 查询员工表中奖金不为空的员工的姓名,奖金
#not
select ename,comm from emp
where comm is not null;
#!
select ename,comm from emp
where !(comm is null);
3) order by 子句
① asc: 升序,缺省
如: 查询20号部门或者职位为SALESMAN的员工的姓名,职位,部门号,工资,查询结果按工资升序排序
select ename,job,deptno,sal from emp
where deptno = 20
or job = "SALESMAN"
order by sal asc;
不加sac/desc 默认升序
select ename,job,deptno,sal from emp
where deptno = 20
or job = "SALESMAN"
order by sal;
② desc: 降序
如: 查询20号部门或者职位为SALESMAN的员工的姓名,职位,部门号,工资,查询结果按工资升序降序
select ename,job,deptno,sal from emp
where deptno = 20
or job = 'SALESMAN'
order by sal desc;
③ 可以使用多个列排序
如 : 查询20号部门或者职位为SALESMAN的员工的姓名,职位,部门号,工资,查询结果按工资升序排序 ,按部门号降序排序
select ename,job,deptno,sal from emp
where deptno = 20
or job = "SALESMAN"
order by deptno desc,sal;
④ 可以使用列的别名排序
【例】查询员工的年薪,结果按年薪的降序
select sal*12 "年薪" from emp
order by 年薪 desc;
注意:order by 子句在SELECT语句的最后
Update语句
语法:
update 表名 set 列1=值1,列2=值2 where 条件
where条件:数据中的唯一性
#更改员工编号为 7369,的收入为1500
update emp set sal = 1500 where empno = 7369;