格式:select 資料 from 資料來源1 cross join 資料來源2…;
例:select e.empno ,e.ename,d.deptno from emp e cross join dept d;
使用cross join 最後得到的資料集是笛卡爾積的狀態。
1.2.1自然連線
natural join作為自然連線,會自動將同名字段|主外來鍵關係的字段進行等值連線,且在自然連線中,同名字段不能寫限定詞(指明出處)。
--在自然連線中 同名字段會自動進行等值連線
select e.empno,e.ename,deptno from emp e natural
join dept d;
1.2.2join…using ()
join…using 在使用過程中,using中存放同名的字段,語句按照括號內的字段進行等值連線。
--在join.....using中,同名字段不能寫限定詞(指明出處)
select e.empno,e.ename,e.deptno from emp e join dept d using
(deptno)
;
1.2.3join…on…
join…on…不同於以上兩種連線方式,等值的連線判斷需要我們自己寫在on後面,當然on後面也可以做非等值判斷。
當連線兩張表時:資料來源1 join 資料來源2 on 連線條件
當連線多張表時:資料來源1 join 資料來源2 on 連線條件1 join 資料來源3 on連線條件2…
即當連線多張表時,後面的表會和前面已經連線的新錶再次進行連線。
--查詢所有員工的資訊以及所在部門資訊然後過濾掉,只保留10部門 -->先連線,然後後過濾
select
*from emp e join dept d on e.deptno = d.deptno where e.deptno =10;
--連線多張表
select
*from student st join score sc on st.sno=sc.sno join course co on sc.cno=co.cno
join…on…用於自連線:
--使用join......on......自連線,當過濾條件都**於自身時,則需要用到自連線
select
*from emp e1 join emp e2 on e1.mgr = e2.empno;
使用內連線查詢資料時,有些資料不滿足連線條件,但是也要想展示出來則需要用到外連線,在外連線中主表很關鍵,主表中的資料不滿足連線條件也會全部顯示出來。
--左連線
select
*from emp e1 left
join emp e2 on e1.mgr = e2.empno;
--右連線
select
*from emp e2 right
join emp e1 on e1.mgr = e2.empno;
--兩邊都是主表
select
*from emp e1 full
join emp e2 on e1.mgr = e2.empno;
不同於92查詢語法中的左右連線,99語法中使用方法更加靈活。 內連線與外連線
本篇文章只是簡單介紹一下資料庫中的內連線和外連線。舉最簡單的兩個表的例子,有表a和表b,表a如下 aid主鍵,自增 表b如下 bid主鍵,自增 有sql基本知識的人都知道,兩個表要做連線,就必須有個連線字段,從上表中的資料可以看出,在a表中的aid和b表中的bnameid就是兩個連線字段。現在先說內...
內連線與外連線
最近一段時間找工作,對以往的知識進行了複習,以下是本人對資料庫中表連線的總結 連線 連線是指將關聯式資料庫中的兩個表根據內容一定的條件連線成乙個表 連線型別 內連線與外連線 a 內連線 又稱等值連線,如 select a.b.from tablea a,tableb b where a.id b.i...
內連線與外連線
圖3 連線關係圖 現在我們對內連線和外連線一一講解。1.內連線 利用內連線可獲取兩表的公共部分的記錄,即圖3的記錄集c 語句如下 select from a join b on a.aid b.bnameid 執行結果如下圖4所示 圖4 內連線資料 其實select from a,b where a...