Oralce 資料庫表的連線分類

2021-09-30 09:59:38 字數 1577 閱讀 2193

資料表的連線有: 

1、內連線(自然連線): 只有兩個表相匹配的行才能在結果集**現 

2、外連線: 包括 

(1)左外連線(左邊的表不加限制) 

(2)右外連線(右邊的表不加限制) 

(3)全外連線(左右兩表都不加限制) 

3、自連線(連線發生在一張基表內) 

sql標準語法:

select table1.column,table2.column

from table1 [inner | left | right | full ] join table2 on table1.column1 = table2.column2;

inner join 表示內連線;left join表示左外連線;right join表示右外連線;full join表示完全外連線;

on子句用於指定連線條件。注意,如果使用from子句指定內、外連線,則必須要使用on子句指定連線條件;

如果使用(+)操作符指定外連線,則必須使用where子句指定連線條件。

如果主表的主鍵列和從表的外部鍵列名稱相同,那麼可以使用 natural join 關鍵字自動執行內連線操作。

select  dname,ename from dept natural join emp;

舉例說明:

有兩張表(students、classes)

create table students(studentno number, studentname varchar2(20), classname varchar2(20))

create table classes(id number, classname varchar2(20));

1)左外連線:

當以上兩表的資料分別為

students表:

classes表

執行以下左外連線語句:

select a.studentno, a.studentname, b.classname

from students a, classes b

where a.classid = b.classid(+);

結果截圖:

注釋:左鏈結則左邊表的資料會全部顯示

2)右外連線:

當以上兩表的資料分別為

students表:

classes表:

執行以下右外連線語句:

select a.studentno, a.studentname, b.classname

from students a, classes b

where a.classid(+) = b.classid;--注意此處(+)的位置,右外連線在左邊,即相反的位置

結果截圖:

3)自然鏈結

select a.studentno, a.studentname, b.classname

from students a, classes b

where a.classid = b.classid;

結果截圖:

總之,左連線顯示左邊全部的和右邊與左邊相同的 

右連線顯示右邊全部的和左邊與右邊相同的 

內連線是只顯示滿足條件的!

連線特定的oralce資料庫

需要在tnsnames.ora中配置相應的sid,如下 include include include exec sql include sqlca exec oracle option release cursor yes exec sql begin declare section varcha...

Oralce資料庫表資料還原

在執行插入 更新 刪除等操作時,容易產生誤操作,導致資料庫中的內容被修改,通過普通的sql操作無法還原,則可採用oralce資料庫表的閃回機制,將表資料還原到某個時間點,具體如下 先查詢某個時間點的資料是否為要還原的資料 select from tablename as of timestamp t...

PL SQL工具連線遠端ORALCE資料庫的方法

1 利用oracle net manager工具 1 開啟 oracle net manager 2 增加 服務命名 第一步 net服務名 任意填寫 第二步 通訊協議 如果連線遠端機器上的oracle,選擇tcp ip internet協議 第四步 sid 一般和資料庫名字相同 第五步 測試 3 啟...