內連線
多張表通過相同字段進行匹配,只顯示匹配成功的資料。
//1.
select
*from emp e,dept d where e.deptno=d.deptno;
//2.
select
*from emp e inner
join dept d on e.deptno=d.deptno;
外連線
以左表為基準(左表資料全部顯示),去匹配右表資料,如果匹配成功,則全部顯示;匹配不成功,顯示部分(無資料部分用null填充)
a.(oracle獨有)
select
*from emp e,dept d where e.deptno=d.deptno(+)
;b.select
*from emp e left
outer
join dept d on e.deptno = d.deptno
以右表為基準(右表資料全部顯示),去匹配左表資料,如果匹配成功,則全部顯示;匹配不成功,顯示右邊部分
a.(oracle獨有)
select
*from emp e,dept d where e.deptno(+)
=d.deptno;
b.select
*from emp e right
outer
join dept d on e.deptno=d.deptno;
全外連線 = 左外連線 + 右外連線 - 去重
自連線
將一張表通過別名 「 視為 」 不同的表例子:查詢員工姓名,以及該員工的領導姓名:
select e.ename,b.ename from emp e, emp b where e.mgr=b.empno;
//員工表的領導編號mgr = 領導表的員工編號emono
子查詢
例子:查詢比scott工資高的員工資訊
1.先查scott的工資
select * from emp where ename =
'scott'
;2.查詢比scott工資高的員工資訊
select * from emp where sal >
(1的結果)
//合二為一:
select * from emp where sal >
(select sal from emp where ename =
'scott'
);
注意:
偽列
rownum:邏輯偽列
rowid:物理偽列
1.select 後的字段,如果不再聚合函式中,就必須在group by後面。
2.增強group by:group by rollup(a,b)
rollup(a,b)相當於
group by a,b
group by a
group by null
3.全值連線解決一般連線無法解決的情況,模擬外來鍵=主鍵
資料庫原理精講1
一.資料系統概述 1.1 資料庫基本概念 1.2 資料管理技術的發展 1.3 資料庫系統的結構 1.4 資料模型 二.資料庫基本概念 2.1 什麼是資料 1.資料 data 是描述事物的符號記錄,是指利用物理符號j記錄下來的,可以鑑別的資訊。2.資料是資訊存在的一種形勢,只有通過解釋或處理的資料才能...
Oracle資料庫精講(十)觸發器 DBCA
建立語法 create orreplace trigger 觸發器名 before after delete insert update of 列名 on 表 for each row when 條件 plsql 無論修改多少行,觸發器只執行一次。原因 預設是 語句級觸發器,作用於表,只執行一次。還...
資料庫系統原理(精講四)
資料庫的資料完整性是指資料庫中資料的正確性 相容性 一致性 實體的完整性約束 關係的實體完整性約束表示的是主碼組成不能為空,主屬性不能是空值null 參照完整性約束 涉及兩個表一定是參照完整性約束 定義主碼與外碼之間的引用規則 要麼外碼等於主碼中某個元組的主碼值,要麼為空 使用者定義完整性約束 關係...