oracle数据操作(四)

基本查询语句

from 子句

指定从哪张表范围内查找数据
select 字段名from 表名
查询对应字段的数据

where子句

where条件
根据指定条件的对查询记录进行过滤

select子句

select字段名 查询对应字段的数据

--查询工资大于3000的员工信息

select * from emp where salary >300
顺序是 from→where→select

查询条件

使用 大于,小于,大于等于,小于等于,等于(=),不等于(!=)、不等于(<>)
使用and or 关键字

查询不是20部门且工资大于2000的员工信息
select *from emp where sal>2000 and deptno !=20;

or与and优先级问题:or的优先级是最低的,如果需要提高or的优先级必须加上()

使用in,not in关键字

查询20或者30部门中工资>2000的员工信息

select * from emp where deptno in (20,30) and sal >2000

使用like关键字

模糊查询
like不会单独使用,配合_ 或者 %一起使用
_ 表示单个匹配,%表示多个匹配
select * from emp where ename like '__A%';

使用 is null 和 is not null
使用between ……and……关键字

在两个值之间,也可以使用>=值1 and <=值2 两端都包括
select * from emp where sal between 1000 and 2000

查询81年入职的员工信息
select * from emp where hiredate between '01-1月-81' and '31-12月-81'
select *from emp where extract(year from hiredate)=1981;

使用 any、all关键字

任意一个,>最小一个即可
<任意一个,<最大一个即可
所有,>最大一个即可
<所有,<最小一个即可

查询条件中,使用表达式和函数

查询年薪大于30000
select* from emp where sal*12 >3000
查询工资大于30部门所有工资的员工信息
select * from emp where sal>all(select sal from emp where deptno=20);

使用distinct关键字

去除查询结果中重复的数据
查询员工所在的部门编号
select distinct deptno from emp

基本sql高级组成部分

order by 子句

排序
在一条查询语句中,只有一次,且放在语句最后

查询20部门员工信息,按员工工资顺序排序
select * from emp where deptno=20 order by sal

asc:顺序排序关键字(默认的排序规则,asc可缺省)
desc:倒序排序关键字

多字段排序

order by 字段名1,字段名2……
先将结果数据按照字段1排序,再排完序的结果上,再按照字段2排序
select * from emp order by deptno ,sal desc

你可能感兴趣的