數據庫表連接基礎實例演示

對於開發人員來說,數據是很重要的。剛入門的程序員更要注重基礎知識,所以菜鳥我也在數據庫的學習方面做了點點功課。以下是個人對錶連接的一些認識,寫了個demo,有紕漏還請見諒、斧正。

表連接,就是將兩個表,三個表等多個表拼接在一起。拼接,當然還要拼接的條件,這也就涉及到表之間的關係。一般情況下,表連接分爲:普通表連接(笛卡爾積連接)、左外連接、右外連接、全外連接、內連接、自連接。

對於各種表連接的定義,在這篇博客裏就不贅述。有些知識還是要自己踏實去看的,Google一下,百度一下,參考書(推薦Oracle11g java開發員手冊)。

建表:

/*外聯接測試表A*/
create table t_joina(
  userid number primary key,
  username varchar2(40),
  password varchar2(40),
  deptid number
);
--數據插入
insert into t_joina
values(1001,'UserA','psw',10);
insert into t_joina
values(1002,'UserB','psw',10);
<pre name="code" class="sql">insert into t_joina
values(2001,'UserB','psw',20);

insert into t_joina
values(3001,'UserC','psw',30);
insert into t_joina
values(4001,'UserD','psw',40);
insert into t_joina
values(6001,'UserE','psw',60);

/*外聯接測試表B*/
create table t_joinb(
  deptid number primary key, 
  deptname varchar2(40),
  deptlocal varchar2(80),
  deptstaff number
);
<pre name="code" class="sql">--數據插入

insert into t_joinb
values(10,'Development','China',100);
insert into t_joinb
values(20,'Sale','U.S.',200);
insert into t_joinb
values(30,'Manage','U.K',10);
insert into t_joinb
values(40,'Market','Canada',150);
insert into t_joinb
values(50,'Test','Rusia',100);


                                        t_joina                                                                                         t_joinb


/*查詢測試*/
--笛卡爾積連接
select * 
from t_joina a, t_joinb b



--全外連接
select * 
from t_joina a full outer join t_joinb b
on a.deptid = b.deptid;

--兩表的所有記錄都查詢出來,並且都需要對方表對自己的記錄進行匹配,無匹配項則設置爲null。



--左連接
select * 
from t_joina a left outer join t_joinb b
on a.deptid = b.deptid;
--左外連接,就是以左邊的表爲基準表,所有記錄都需右表來匹配,無匹配項則設置爲null。




--右連接
select * 
from t_joina a right outer join t_joinb b
on a.deptid = b.deptid;

--右外連接,就是以右邊的表爲基準表,所有記錄都需要左表來匹配,無匹配項則設置爲null。




--內連接
select * 
from t_joina a inner join t_joinb b
on a.deptid = b.deptid;

--左右兩表都需要條件匹配,所以查詢出來的內容是兩表都匹配的內容,沒有某個表的記錄全爲空的情況。

對照全外連接可以看出區別。




--自連接

--就是連接表本身,一般用在菜單等有父子關係的字段中,或者說上下級關係。


以上就是一個關於表連接的實際例子。以後的工作中會再深入地學習。


共勉。


發佈了31 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章