天天看點

跨表查詢 内連接配接 外連接配接 多張表的連接配接

笛卡爾積現象

若兩張表以及以上在查詢的時候沒有任何條件限制,最終的查詢結果總數是兩張表記錄的乘積

跨表查詢

年代分類:

跨表查詢 内連接配接 外連接配接 多張表的連接配接

SQL92  : select ename,dname from emp,dept emp as e,dept as  d,where e.deptno = d.deptno; 

SQL99  :    join     on    給表起别名 as 可以省略

select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno where ……; 

連接配接方式分兩類:

 内連接配接:省略了關鍵字inner

      等值連接配接:

      查詢出員工所對應的部門名稱(加上inner使得程式有更強的可讀性)

跨表查詢 内連接配接 外連接配接 多張表的連接配接

非等值連接配接

 查詢員工薪水所對應的薪水等級  select  * from salgrade;

 select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal ans s.hisal;

自連接配接:把一張表看成兩張表使用

查詢員工所對應的上司名稱:顯示員工名稱和上司名稱

select a.ename,b.ename as leadername from emp join emp b on a.mgr  = b.empno;

外連接配接:

外連接配接查詢的條數>=内連接配接

  1. 右外連接配接/右連接配接

       右邊表的全部行顯示出來 ,沒有的自動補null   

       select e.ename,d.ename from emp  e right join dept on e.depton = d.depton;

跨表查詢 内連接配接 外連接配接 多張表的連接配接
  1. 左外連接配接/左連接配接

       左邊表的全部行顯示出來

跨表查詢 内連接配接 外連接配接 多張表的連接配接

左右表可以互換,最終的結果相同。

left 和 right 不能省略

多張表連接配接

查詢出員工的部門名稱,員工的上司名稱和薪水等級

跨表查詢 内連接配接 外連接配接 多張表的連接配接
跨表查詢 内連接配接 外連接配接 多張表的連接配接

   全連接配接

繼續閱讀