--1.
簡單連線
create
table
test_j1
(mem_id
number(9
),employees_name
varchar
(200
));insert
into
test_j1
values
(500
,'jeny'
);insert
into
test_j1
values
(501
,'lucy'
);insert
into
test_j1
values
(502
,'tom'
);create
table
test_j2
(mem_id
number(9
),department_name
varchar
(100
));insert
into
test_j2
values
(500,'
設計部'
);insert
into
test_j2
values
(501,'
研發部'
);--1.1
基本形式
select
*from
test_j1
,test_j2;--
通過笛卡爾積生成的表
select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
,test_j2
;select
test_j2.mem_id
,employees_name
,department_name
from
test_j1
,test_j2
;--1.2
條件限定
select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
,test_j2
where
test_j1.mem_id
=test_j2.mem_id
;--1.3
表別名select
j1.mem_id
,employees_name
,department_name
from
test_j1 j1
,test_j2 j2
--別名j1 j2
where
j1.mem_id
=j2.mem_id
;--2.join
連線--2.1
內連線select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
join
test_j2
ontest_j1.mem_id
=test_j2.mem_id;--
還可以新增where子句
create
table
test_j3
(mem_id
number(9
),job_title
varchar(50
));insert
into
test_j3
values
(500,'
經理');
insert
into
test_j3
values
(501,'
主管');
insert
into
test_j3
values
(502,'
財務');
select
test_j1.mem_id
,employees_name
,department_name
,job_title
from
test_j1
join
test_j2
ontest_j1.mem_id
=test_j2.mem_id
join
test_j3
ontest_j2.mem_id
=test_j3.mem_id
--多個內連線
where
test_j3.job_title='
經理';
--2.2
自然連線
--2.3
外連線select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
left
join
test_j2
--左外連線
ontest_j1.mem_id
=test_j2.mem_id
;select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
right
join
test_j2
--右外連線
ontest_j1.mem_id
=test_j2.mem_id
;select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
full
join
test_j2
--全外連線
ontest_j1.mem_id
=test_j2.mem_id
;--2.4
自連線select
test_j1.mem_id
,employees_name
,department_name
from
test_j1
full
join
test_j2
--自連線
ontest_j1.mem_id
=test_j2.mem_id
order
bytest_j1.mem_id
;
多表查詢(連線查詢)
多表查詢 資料 是多個表,這時注意一定要書寫連線條件。當n個表連線,至少需要n 1個連線條件。注意 1 如何判斷兩個表之間有公共列?型別一致 寬度一致。列名不能作為判斷標準,列名不同也能是公共列 如 emp的empno和emp的mgr 2 如何避免二義性問題?給每個屬性加歸屬。3 注意使用表別名。表...
多表連線查詢
1 內連線 inner join 只返回兩個表中所有滿足連線條件的行 2 外連線outer join 除了返回兩個表中所有滿足連線條件的行之外,還返回 某個表中不滿足連線條件的行 3 交叉連線 產生笛卡爾積的連線 如果連線條件使用等號 就可以叫做相等連線 1 使用natural join關鍵字進行內...
多表連線查詢
1.如果乙個查詢需要多個表進行操作,就成為連線查詢。2.連線查詢實際上是通過各個表之間共同列的關聯性來查詢資料的,資料表之間的聯絡是通過表的字段值來體現的。查詢 劉偉 老師所教授的課程,要求列出教師號,教師姓名和課程號 1.方法一 select t.no,tn,cno from t,tc where...