日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle86和92语法的连接,子查询,集合的操作

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle86和92语法的连接,子查询,集合的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 ?比較86和92語法中多表連接區別?
?
? ?1笛卡爾積?
?
? ?--oracle連接的基礎 笛卡爾積?

? ?--92語法 更加清晰明了的區別了 每一種連接 ?

? ? --解決了多表關聯時 ?條件不清晰的問題?
?
? ?select * from emp;?

? ? select * from dept;?

? ? --86語法?
?
? ?select * from emp e,dept d;?
?
? ? --92語法?
?
? ?select * from emp cross join dept?

? ? 2內連接?

? ?select * from emp;?

? ? select * from dept;?

? ? --86語法?

? ?select * from emp e,dept d where e.deptno=d.deptno;?

? ? --92語法?

? ?select * from emp inner join dept on emp.deptno=dept.deptno?

? ? 3左外連(左外連接和右外聯的區別在于 誰為主 誰為從 ?意義相同)?

? ?--86語法?

? ?select * from emp e,dept d where e.deptno=d.deptno(+)?

? ? --92語法?

? ?select * from emp e left join dept d on e.deptno=d.deptno?

-- oracle中子查詢?

? ? ? ? ? ? ? ? 表子查詢 ?只要輸出的結果是個表結構 就可以放在from后查詢 也可以設置別名?

? ? ? select abc.ename,abc.loc from (?

? ? ? ?select * from emp e inner join dept d on e.deptno=d.deptno?

? ? ? ?) abc;?

? ? ? ?select * from emp;?

? ? ? ?select * from dept;?
?
? ? ? ?/**?
?
? ? ? ? ? 列的子查詢 ?子查詢 永遠只能返回一行一列數據?

? ? ? ? ?列子查詢的原理?
?
? ? ? ? ?for(emp e: list<emp>){?
?
? ? ? ? ? ? ?syso(e.ename);?
?
? ? ? ? ? ? ?for(dept d: list<dept>){?
?
? ? ? ? ? ? ? ? if(e.deptno==d.deptno){?
?
? ? ? ? ? ? ? ? ? ? syso(d.dname)?
?
? ? ? ? ? ? ? ? ? ? ?break;?
?
? ? ? ? ? ? ? ? }?
?
? ? ? ? ? ? ?}?
?
? ? ? ? ? }?
?
? ? ? ?**/?
?
? ? ? ?select ename,(select dname from dept ?where deptno=e.deptno) from emp e; ?

? ? ? ? --條件子查詢?

? ? ? ?select * from tab;?

? ? ? ? select * from salgrade ?

? ? ? ? --薪水等級是2的人?

? ? ? ?select losal,hisal from salgrade where grade=2?

? ? ? ? select * from emp where sal>=(select losal from salgrade where grade=2)?
?
? ? ? ? ? ? ? and sal<=(select hisal from salgrade where grade=2)?

? ? ? ? select * from emp ?e inner join salgrade s on e.sal>=s.losal and e.sal<=s.hisal?

? ? ? ? where s.grade=2?

? ? ? ? ?/**?
?
? ? ? ? /**?

? ? ? ? --多行子查詢?
?
? ? ? ? for(emp e: list<emp>){?
?
? ? ? ? ? ? ?syso(e.ename);?
?
? ? ? ? ? ? ?for(dept d: list<dept>){?
?
? ? ? ? ? ? ? ? if(d.dname.indexOf('A')>=0){?
?
? ? ? ? ? ? ? ? ?if(e.deptno==d.deptno ){?
?
? ? ? ? ? ? ? ? ? ? ? syso(d.dname)?
?
? ? ? ? ? ? ? ? ? ? ? break;?

? ? ? ? ? ? ? ? ?}?
?
? ? ? ? ? ? ? ? }?
?
? ? ? ? ? ? ?}?
?
? ? ? ? ? }?
?
? ? ? ? **/?

? ? ? ? select * from emp where deptno =any(?

? ? ? ? ? ? ? ?select deptno from dept where dname like '%A%'?

? ? ? ? )?
?
? ? ? ? select * from emp where deptno in(?
?
? ? ? ? ? ? ? ?select deptno from dept where dname like '%A%'?
?
? ? ? ? ) ?
?
? ? ? ? --效率最高的子查詢語句?
?
? ? ? ?select * from emp e where exists(?
?
? ? ? ? ? ? ? ?select deptno from dept d where d.deptno=e.deptno and dname like '%A%'?
?
? ? ? ? ) ?
?? ? ??

?2 集合操作符?
?
? ? ?并集?
?
? ? ?union all 集合中的元素 全部疊加 不會去重復?
?
? ? ?union ?集合中的元素 全部疊加 會去重復?
?
? ? ?intersect 交集?
?
? ? ?{1,2},{2,3} 結果為 {2}?
?
? ? ?minus 取差集?
?

? ? ?{1,2},{2,3} 結果為{1} ?


轉載于:https://www.cnblogs.com/t0404/p/10291071.html

總結

以上是生活随笔為你收集整理的Oracle86和92语法的连接,子查询,集合的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。