国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle多表查詢

2024-08-29 13:54:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

等值查詢

查詢的時(shí)候加入等值條件

有兩個(gè)表employees和departments,現(xiàn)在要查詢employees的Last_name和對(duì)應(yīng)的departments的id

SQL> select last_name name,e.department_id eid,d.department_id did,d.department_name from employees e,departments d where e.department_id=d.department_id;

輸出:

------------------------------------- ---------- NAME EID DID DEPARTMENT_NAME------------------------------------- ----------Higgins 110 110 Accounting....106 rows selected.

注意這里的輸出是 106 條記錄,是因?yàn)樽筮叺谋?有一條記錄按照where的條件在右邊的表沒有找到,此情況需要用到外連接查詢

不等值查詢

查詢employees的員工last_name,employee_id,salary grades_level(薪資等級(jí))

SQL> select employee_id,last_name,salary,grade_level 2 from employees e,job_grades j 3 where e.salary between j.lowest_sal and j.highest_sal;

輸出:

--------------------- ------------------- ---------EMPLOYEE_ID LAST_NAME SALARY GRADE_LEV-------------------------------------------- --------- 101 Kochhar 17000 E....

外鏈接查詢

左外連接:左邊的值在右邊沒有對(duì)應(yīng)的值,仍然顯示該值; 相反右外連接就是右表的值在左表沒有對(duì)應(yīng)的值,仍然顯示該值;

SQL> select last_name name,e.department_id eid,d.department_id did,d.department_name from employees e,departments d where e.department_id=d.department_id(+);

輸出:

------------------------------------- ---------- NAME EID DID DEPARTMENT_NAME------------------------------------- ----------Higgins 110 110 Accounting....107 rows selected.

此時(shí),結(jié)果就有了107條記錄了 此時(shí),問題出現(xiàn)了,我們想讓左表和右表都顯示對(duì)方?jīng)]有的數(shù)據(jù),這個(gè)時(shí)候不能再使用(+)操作了,需要引入sql 1999語(yǔ)法

join關(guān)鍵字和on

使用joinon關(guān)鍵字可以實(shí)現(xiàn)和上面同樣的功能

SQL> select employee_id,d.department_id,department_name from employees e join departments d on e.department_id = d.department_id;

join 表示鏈接兩張表 on 表示 限制條件

外連接

join之前使用 left outer或者rigth outerfull outer 分別表示左外連接,右外連接,滿外連接(可以吧左右兩張表都不對(duì)應(yīng)的數(shù)據(jù)全部顯示出來(lái))

SQL> select employee_id,d.department_id,department_name from employees e left outer join departments d on e.department_id = d.department_id;

自連接

要求:查詢公司中員工的老板的信息,因?yàn)槔习逡苍趩T工表,所以是自連接

select emp.last_name,manager.last_name,manager.salary from employees emp,employees manager where emp.manager_id = manager.employee_id and lower(emp.last_name) = 'chen';

輸出:

--------------------------------------------------LAST_NAME LAST_NAME SALARY--------------------------------------------------Chen Greenberg 12000---------------...
上一篇:Oracle12cR1--新特性

下一篇:Oracle基本操作

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁德市| 宁海县| 双鸭山市| 北辰区| 屯留县| 临泽县| 斗六市| 凉山| 临猗县| 泌阳县| 盐山县| 固阳县| 渭源县| 拉萨市| 枣阳市| 肃宁县| 肥城市| 台安县| 峨眉山市| 重庆市| 南溪县| 富裕县| 南阳市| 揭东县| 商南县| 镇沅| 固阳县| 墨玉县| 八宿县| 黄陵县| 桐柏县| 新蔡县| 新安县| 淮阳县| 湘阴县| 永丰县| 旬阳县| 鄂托克前旗| 理塘县| 当雄县| 来凤县|