sql語句中的鏈接方式

兩張表 部門表(dept)和員工表(usert)中全部的數據數據庫

 

  

1.--左鏈接 usert(員工表) dept(部門表)
--顯示員工信息時,有的員工可能尚未分配到某個具體的部門(新進員工),其所屬部門一項就沒有數據,可是員工仍然須要顯示,即員工表數據須要所有顯示
select u.name,d.deptname  from usert u left join dept d on u.deptid=d.deptid order by u.idspa

2.--右鏈接
--新部門尚未員工,顯示時也須要把部門顯示出來
select u.name,d.deptname  from usert u right join dept d on u.deptid=d.deptid order by u.id;設計

 

2.1.--其實右鏈接和把表換位置後的左鏈接是同樣的
select u.name,d.deptname  from dept d left join usert u on u.deptid=d.deptid order by u.id;select

 

3.--內鏈接 顯示查詢出來條件對應的
select u.name,d.deptname  from usert u join dept d on u.deptid=d.deptid;im

3.1 可是通常寫成這樣的數據

select u.name,d.deptname  from usert u,dept d where u.deptid=d.deptid;查詢

4.--全外鏈接
--可能有時候須要把整個公司的員工和部門信息作一個總覽,能夠對員工表和部門表
select u.name,d.deptname  from usert u full join dept d on u.deptid=d.deptid;img

 

5.--自鏈接
--簡單地說就是本身和本身進行鏈接,鏈接的條件就是本表的主鍵。一般認爲在數據庫中存在父子關係
--時,應該設計成兩張表。但若是父子都是同一實體,就能夠簡化設計成一張表。好比,查看員工及直接
--上級的名字: (上級也是員工,上級的數據也是員工數據,也應該存儲在員工表中。)
--當成兩張表查便可(mgr 字段爲上級id)
select yg.name,sj.name from usert sj,usert yg where yg.mgr=sj.idco

6.--交叉鏈接
--適合每一個員工對全部部門評價
select u.name,d.deptname,null  from usert u cross join dept djoin

通常也寫成

select u.name,d.deptname,null from usert u,dept d

 

--內鏈接和where相同

  inner join

  --左向外鏈接,返回左邊表全部符合條件的

  left join

  --右向外鏈接,返回右邊表全部符合條件的

  right join

  --完整外部鏈接,左向外鏈接和右向外鏈接的合集

  full join

  --交叉鏈接,也稱笛卡兒積。返回左表中的每一行與右表中全部行的組合

  cross join

相關文章
相關標籤/搜索