oracle連線查詢

2021-07-10 05:17:31 字數 2098 閱讀 1484

8i:

create table dali.test1(a int,b int);  

create table dali.test2(a int,b int);  

insert into dali.test1 values(1,456);  

insert into dali.test1 values(2,427);  

insert into dali.test2 values(1,45456);  

insert into dali.test2 values(3,45656); 

---內連線

select * from dali.test1 a, dali.test2 b where 

a.a=

b.a; 

---左連線

select * from dali.test1 a, dali.test2 b where 

a.a=

b.a(+); 

---右連線

select * from dali.test1 a, dali.test2 b where a.a(+)=b.a; 

---完全連線

select * from dali.test1 a, dali.test2 b where 

a.a=

b.a(+)  

union  

select * from dali.test1 a, dali.test2 b where a.a(+)=b.a; 

---迪卡爾

select * from dali.test1, dali.test2; 

在oracle join的用法中9i和sqlserver一樣 left join,right join,full join

分為1.

inner join 2. left join 3. right join 4.left outer join 

首先設定乙個我們要用的兩個表

表a 表b

id name id class

1 ibm 1 c1

2 sony 3 c3

3 bmw 4 c4

1 inner join: select * from a inner join b on 

a.id=b

.id 

得表 id name class

1 ibm c1

3 bmw c3

對了 就是 兩個表的id都存在並相同 得到這兩個表的組合表

2

left join : select * from a left join b on 

a.id=b

.id 

得表 id name class

1 ibm c1

2 sony null

3 bmw c3

在oracle join的用法中上面的相關操作可說是很複雜的。 如果還有方向感 就行 left(左) 得到的是a(left語句的左邊的表)的所有記錄 而b表對應的記錄沒有的話也要補齊

3

right join : select * from a right join b on 

a.id=b

.id 

得表 id name class

1 ibm c1

3 bmw c3

4 null c4

對了right(右) 得到的是b(right語句的右邊的表)的所有記錄 而a表對應的記錄沒有的話也要補齊 (我也翻身了! 呵呵)

4

full outer join: select * from a full outer join b on 

a.id=b

.id 

得表 id name class

1 ibm c1

2 sony null

3 bmw c3

4 null c4

oracle查詢連線

select from emp select from dept 左連線 1 查詢與左邊表dept 4 相關聯的資料,如deptno 40在右邊沒有對應的資料,則顯示為空 select from dept left join emp on dept.deptno emp.deptno 查詢與左邊表相...

Oracle連線查詢

1 內連線 select e.d.dname from emp e,dept d where e.deptno d.deptno 隱式內連線查詢實際的語句可以為 select e.d.dname from emp e inner join dept d on d.deptno e.deptno 2 ...

Oracle連線查詢

交叉連線 會產生笛卡爾積 select from emp cross join dept 自然連線 可自動匹配關聯欄位並消除笛卡爾積 select from emp natural join dept join.using,using子句後跟關聯的字段 select from emp e join ...