黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Oracle教程
Oracle練習題

Oracle連接查詢

SQL92語法

連接查詢:也可以叫跨表查詢,需要關聯多個表進行查詢。

● 顯示每個員工信息,并顯示所屬的部門名稱

select ename, dname from emp, dept;
SQL> select ename, dname from emp, dept;

ENAME      DNAME
---------- --------------
SMITH      ACCOUNTING
ALLEN      ACCOUNTING
WARD       ACCOUNTING
JONES      ACCOUNTING
MARTIN     ACCOUNTING
BLAKE      ACCOUNTING
CLARK      ACCOUNTING
SCOTT      ACCOUNTING
KING       ACCOUNTING
TURNER     ACCOUNTING
ADAMS      ACCOUNTING
JAMES      ACCOUNTING
FORD       ACCOUNTING
MILLER     ACCOUNTING
SMITH      RESEARCH
ALLEN      RESEARCH
WARD       RESEARCH
JONES      RESEARCH
MARTIN     RESEARCH
BLAKE      RESEARCH
CLARK      RESEARCH
SCOTT      RESEARCH
KING       RESEARCH
TURNER     RESEARCH
ADAMS      RESEARCH
JAMES      RESEARCH
FORD       RESEARCH
MILLER     RESEARCH
SMITH      SALES
ALLEN      SALES
WARD       SALES
JONES      SALES
MARTIN     SALES
BLAKE      SALES
CLARK      SALES
SCOTT      SALES
KING       SALES
TURNER     SALES
ADAMS      SALES
JAMES      SALES
FORD       SALES
MILLER     SALES
SMITH      OPERATIONS
ALLEN      OPERATIONS
WARD       OPERATIONS
JONES      OPERATIONS
MARTIN     OPERATIONS
BLAKE      OPERATIONS
CLARK      OPERATIONS
SCOTT      OPERATIONS
KING       OPERATIONS
TURNER     OPERATIONS
ADAMS      OPERATIONS
JAMES      OPERATIONS
FORD       OPERATIONS
MILLER     OPERATIONS

已選擇56行。

以上輸出,不正確,輸出了56條數據,其實就是兩個表記錄的乘積,這種情況我們稱為:“笛卡兒乘積”,出現錯誤的原因是:沒有指定連接條件。

指定連接條件

select ename, dname from emp, dept where emp.deptno=dept.deptno;
也可以使用別名(但是不能增加as關鍵字)
select ename, dname from emp a, dept b where a.deptno=b.deptno;

以上結果輸出正確,因為加入了正確的連接。

以上查詢也成為“內連接”,指查詢相等的數據。

● 取得員工和所屬的經理的姓名

select a.ename, b.ename from emp a, emp b where a.mgr=b.empno;

以上稱為“自連接”,只有一張表連接,具體的查詢方法,把一張表看作兩張表即可,如以上示例:第一個表emp a代碼了員工表,emp b代表了經理表,相當于員工表和部門表一樣。

SQL99語法

● (內連接)顯示薪水大于2000的員工信息,并顯示所屬的部門名稱

采用sql99語法:
select ename, dname from emp a join dept b on a.deptno=b.deptno where sal>2000;
或
select ename, dname from emp a inner join dept b on a.deptno=b.deptno where sal >2000;
注釋:inner關鍵字一般省略
采用sql92語法:
select ename, dname from emp a, dept b where a.deptno=b.deptno and sal>2000;

Sql92語法和sql99語法的區別:99語法可以做到表的連接和查詢條件分離,特別是多個表進行連接的時候,會比sql92更清晰。

● (外連接)顯示薪水大于2000的員工信息,并顯示所屬的部門名稱,如果某一個部門沒有員工,那么該部門也必須顯示出來

(關聯的2個表存在主從關系的話,那么如果主表在join的左邊,就使用左連接,如果在join的右邊,就使用右連接)

右連接
select a.ename, b.dname from emp a right join dept b on a.deptno=b.deptno;
同樣可以使用左聯接
select a.ename, b.dname from dept b left join emp a on a.deptno=b.deptno;

左聯接和右連接都是外連接,左連接以左面的表為準和右邊的表比較,和右面表相等的不相等都會顯示出來,右連接恰恰相反,以上左連接和右連接也可以加入outer關鍵字,但一般不建議這種寫法,如:

//加入outer
select a.ename, b.dname from dept b left outer join emp a on a.deptno=b.deptno;
//加入outer
select a.ename, b.dname from emp a right outer join dept b on a.deptno=b.deptno;

左連接能完成的功能右連接一定可以完成

使用SQL92語法完成左連接,右連接的相關查詢:

使用(+) ,放在主表的對面

● 取得員工和所屬的經理的姓名,如果沒有上級經理,也要查詢出來

select e.empno, e.ename, e.mgr, m.ename from emp m , emp e where m.empno(+) = e.mgr ;

全部教程
主站蜘蛛池模板: 色综合网站国产麻豆 | 国产免费爱在线观看视频 | 亚洲一区二区三区影院 | 亚洲另类在线观看 | 欧美成人精品一区二三区在线观看 | 国产在线播放成人免费 | 好黄好猛好爽好痛的视频 | 123日本不卡在线观看 | 最新国产在线视频 | 午夜影院男女 | 欧美色欧美亚洲高清图片 | 2019免费视频 | 亚洲色大成网站www 亚洲色图天堂 | 一个人免费观看的www视频 | 亚洲视频一区在线观看 | 一区二区三区亚洲 | 亚洲三级欧美 | 国产麻豆精品hdvideoss | h视频网站在线 | 波多野结衣在线视频播放 | 波多野结衣国产精品 | 国产一区二区三区欧美精品 | 精品在线观看国产 | 欧美日韩亚洲无线码在线观看 | 色偷偷888欧美精品久久久 | 高清中文字幕在线 | 日韩精品在线第一页 | 99re在线免费视频 | 国产高清精品自在久久 | 最近中文字幕大全免费版在线 | 免费成年人在线观看视频 | 免费黄色网址网站 | 日韩在线观看网站 | 涩涩网址 | 久久狠狠干| 中国一级特黄特色真人毛片 | 国产在线拍揄自揄视精品不卡 | 射影院| 亚洲人成网站在线观看播放青青 | 国产男女猛烈无遮挡 | 成熟女人50岁一级毛片不卡 |