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
總結
以上是生活随笔為你收集整理的oracle查询等于外的,Oracle 查询、更新基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle让查出来的数据排序,Orac
- 下一篇: linux中查看用户组标识符,Linux