資料表的連線有:
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 啟...