亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JOIN怎么顯示來自多個表的數據

發布時間:2021-12-30 17:03:07 來源:億速云 閱讀:150 作者:iii 欄目:關系型數據庫

這篇文章主要介紹“JOIN怎么顯示來自多個表的數據”,在日常操作中,相信很多人在JOIN怎么顯示來自多個表的數據問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JOIN怎么顯示來自多個表的數據”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

表關系簡介

JOIN怎么顯示來自多個表的數據

一、語法

  1. SELECT 字段列表

  2.   FROM TABLE1

  3. [CROSS JOIN TABLE2 ] |

  4. [NATURAL JOIN TABLE2 ] |

  5.  [JOIN TABLE2 USING (字段名) ] |

  6.  [JOIN TABLE2 ON (TABLE.COLUMN_NAME = TABLE2.COLUMN_NAME) ] |

  7. [(LEFT | RIGHT | FULL OUT) JOIN TABLE2 ON (TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME) ];

二、自然連接

1、USING
  如果不希望參照被連接表的所有同名列進行等值連接,自然連接將無法滿足要求,可以在連接時使用USING子句來設置用于等值連接的列(參照列)名。
不允許在參照列上使用表名或者別名作為前綴

  1. --99語法

  2. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  3.   FROM EMP

  4.   JOIN DEPT

  5.  USING (DEPTNO);

  6.  

  7.  --92語法

  8. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  9.   FROM EMP, DEPT

  10.  WHERE EMP.DEPTNO = DEPT.DEPTNO;

2、ON
  如果要參照非同名的列進行等值連接,或想設置任意的連接條件,可以使用On子句

  1. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  2.   FROM EMP

  3.   JOIN DEPT

  4.     ON (EMP.DEPTNO = DEPT.DEPTNO);

三、自連接

  自己和自己做鏈接

  1. --99語法

  2. SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR

  3.   FROM EMPLOYEES WORKER

  4.   JOIN EMPLOYEES MANAGER

  5.     ON (WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID);

  6.     

  7. --92語法

  8. SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR

  9.   FROM EMPLOYEES WORKER, EMPLOYEES MANAGER

  10.  WHERE WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID;

四、非等值連接

  1. --99語法

  2. SELECT E.LAST_NAME, E.SALARY, J.GRADE_LEVEL

  3.   FROM EMPLOYEES E

  4.   JOIN JOB_GRADES J

  5.     ON E.SALARY BETWEEN J.LOWEST_SAL AND J.HIGHEST_SAL;

  6.     

  7. --92語法

  8. SELECT E.LAST_NAME, E.SALARY, J.GRADE_LEVEL

  9.   FROM EMPLOYEES E, JOB_GRADES J

  10.  WHERE E.SALARY BETWEEN J.LOWEST_SAL AND J.HIGHEST_SAL;

五、INNER|OUTER 連接

1、INNER 連接
  兩個表連接,只返回匹配的行,被稱為內連接。

  1. --查詢所有員工以及其部門名字

  2. --99語法

  3. SELECT LAST_NAME, DEPARTMENT_NAME

  4.   FROM EMPLOYEES E

  5.  INNER JOIN DEPARTMENTS D

  6.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;


  7. --92語法

  8. SELECT LAST_NAME, DEPARTMENT_NAME

  9.   FROM EMPLOYEES E, DEPARTMENTS D

  10.  WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID;

2、LEFT OUTER | RIGHT OUTER 連接
  兩個表在連接過程中除了返回滿足連接條件的行以外還返回左(或右)表中不滿足條件的行,這種連接稱為左(或右)外連接。

  1. --哪些部門沒有員工,看出部門名字

  2. --99語法

  3. SELECT DEPARTMENT_NAME

  4.   FROM EMPLOYEES E

  5.  RIGHT JOIN DEPARTMENTS D

  6.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID

  7.  WHERE LAST_NAME IS NULL;


  8. --92語法

  9. SELECT DEPARTMENT_NAME

  10.   FROM EMPLOYEES E, DEPARTMENTS D

  11.  WHERE E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID

  12.    AND LAST_NAME IS NULL;

3、FULL OUTER 連接
  兩個表在連接過程中除了返回滿足連接條件的行以外還返回兩個表中不滿足條件的行,這種連接稱為全外聯接。

  1. --99

  2. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  3.   FROM EMPLOYEES E

  4.   FULL OUTER JOIN DEPARTMENTS D

  5.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;


  6. --92

  7. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  8.   FROM EMPLOYEES E, DEPARTMENTS D

  9.     ON E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID(+);

六、笛卡爾積

笛卡爾集會在下面條件下產生:

1、連接條件被遺漏
2、連接條件不正確
3、所有表中的所有行互相連接

  1. --99語法

  2. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  3.   FROM EMPLOYEES E

  4.  CROSS JOIN DEPARTMENTS D;


  5. --92語法

  6. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  7.   FROM EMPLOYEES E, DEPARTMENTS D;

到此,關于“JOIN怎么顯示來自多個表的數據”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金湖县| 霍城县| 黄浦区| 略阳县| 福泉市| 泽州县| 阿图什市| 宾川县| 台山市| 湖南省| 周宁县| 武安市| 金堂县| 黎川县| 曲水县| 潞城市| 祁阳县| 昭通市| 阳城县| 瑞昌市| 岑溪市| 大厂| 正镶白旗| 南和县| 商都县| 宁海县| 健康| 古交市| 扎赉特旗| 阿拉善右旗| 兰溪市| 建昌县| 莫力| 彭州市| 庆元县| 浙江省| 苗栗县| 南部县| 勃利县| 黄龙县| 睢宁县|