oracle查询等于外的,Oracle 查询、更新基本操作

oracle 默认隔离等级是:读已提交。

查询锁定,防止另外用户更新:

select * from books for update;

当前用户更新之后,另外用户可以更改。

01、表连接

假定from子句中从左到右两个表分别为A,B表。

内连接:选取A、B表的完全匹配的集合,两表交集:

select empno,ename,emp.deptno A,dept.deptno B,dname from emp inner join dept on emp.deptno=dept.deptno;

左外连:选取A表全部以及A、B表交集

select dname,dept.deptno A,emp.deptno B,empno,ename from dept left join emp on dept.deptno=emp.deptno;

右外连:选取B表全部以及A、B表交集

select empno,ename,emp.deptno A,dept.deptno B,dname from emp right join dept on emp.deptno=dept.deptno;

02、表联合

整合结果集并消除重复行:

select empno,ename from emp

union

select deptno,dname from dept;

03、空值

select empno,ename,nvl(comm,0) from emp;      --正确,comm与0类型相同

select empno,ename,nvl(comm,'空值') from emp; --错误,comm与'空值'类型不同

select empno,ename,comm from emp where comm is null;

select empno,ename,comm from emp where comm is not null;

04、排序

select * from emp order by empno,asc;

select * from dept order by deptno desc;

05、消除重复数据

select distinct deptno from emp;

06、模糊查询

select ename from emp where ename like '%K';

_表示一个字符,%表示一个或多个字符

07、分组

select deptno, avg(sal) from emp group by deptno;       --分组求出平均薪水

select deptno, avg(sal) from emp group by deptno, job;  --组合分组

select deptno, avg(sal) from emp group by deptno having avg(sal) > 2000;

group by 后面的字段,可以不出现在select后面;

select 后面的字段,如果没有出现在聚集函数里,就必须出现在group by后面。

group by 分组过滤要使用having。

08、聚集函数

select ename, max(sal) from emp;

这条语句错误:max只能有一个值,只能选取一行,但是等于max值的记录可能有好几个,无法正确匹配,所以应该使用子查询:

select ename from emp where sal = (select max(sal) from emp);

聚集函数不能做为条件出现在where子句的后边:

select deptno,sum(sal) from emp where sum(sa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值