SQL--4--查--連接查詢(內連接、外連接、多表連接)


基礎知識:笛卡爾積現象,在知識點中以寫。網址如下:

https://www.cnblogs.com/ukimiya/articles/15355326.html


 

一.連接查詢

  1.單表查詢和連接查詢:

    單表查詢:從一張表中單獨查詢,稱為單表查詢。

    連接查詢:emp表和dept表聯合起來查詢數據,從emp表中取員工名字,從dept表中取部門名字。這種跨表查詢,多張表聯合起來查詢數據,被稱為連接查詢。

  2.連接查詢的分類:

    ①按年代分類:

SQL92:1992年的時候出現的語法

SQL991999年的時候出現的語法,重點學習SQL99。

    ②按表連接方式分類:

內連接:A和B連接,2表沒有主次關系,平級。

等值連接

非等值連接

自連接

外連接:A和B連接,產生主次關系,join后是主表

左外連接(左連接)

右外連接(右連接)

全連接(不講)。

二.內連接(等值、非等值、自)--inner join....on....

  1.等值連接:

    舉例:查詢員工的員工名(ename--emp表)和部門名(dname--dept表)

    語句:

    select e.ename,d.dname

    from emp e

    inner join dept d

    on e.deptno = d.deptno;

    

  2.非等值連接:

    舉例:查詢每個員工的薪資等級(grade),顯示員工名(ename)、薪資(sal)、薪資等級(grade)

    語句:

    select e.ename, e.sal, s.grade

    from emp e

    inner join salgrade s

    on e.sal between s.losal and s.hisal;

    

  3.自連接:同表自連接

    舉例:查詢員工的上級領導mgr,empno,ename),要求顯示員工名(ename)和對應的領導名(ename)

    語句:

    select a.ename as '員工名', b.ename as '領導名'

    from emp a   //員工表

    join emp b     //領導表

    on a.mgr = b.empno;  //員工的領導編號 = 領導的員工編號

    

三.外連接(左外、右外)--left/right outer join ... on ...

  1.左連接:left
       

  2.右連接:right

    

  3.left / right的意義:

    join關鍵字右邊的表A看成主表,將A表的數據全部查詢出來,捎帶着關聯查詢左邊的表B。

  4.Q:外連接查詢結果條數一定是  >=  內連接的查詢結果條數?

     A:是的。

四.多表連接

  1.一條SQL中內連接+外連接混合:
   

五.查詢結果去重--distinct

  1.格式:select distinct job from emp;

  2.使用注意事項:

    ①distinct只能出現在所有字段的最前方;

        ×: select ename,distinct job from emp;

    ②distinct出現在job,deptno兩個字段之前,表示兩個字段聯合起來去重。

     select distinct job,deptno from emp;

    ③舉例:

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM