1.ORACLE介紹 ORACLE資料庫系統是以分散式資料庫為核心的一組軟體產品,是客戶/伺服器(CLIENT/SERVER)或B/S 體繫結構的資料庫之一。 ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能。2.ORACLE資料庫具有的 ...
1.ORACLE介紹
ORACLE資料庫系統是以分散式資料庫為核心的一組軟體產品,是客戶/伺服器(CLIENT/SERVER)或B/S 體繫結構的資料庫之一。
ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能。
2.ORACLE資料庫具有的特點:
(1)支持多用戶、大事務量的事務處理
(2)數據安全性和完整性控制
(3)支持分散式數據處理
(4)可移植性
3.ORACLE體繫結構
(1)資料庫
Oracle資料庫是數據的物理存儲,包括數據文件ORA或者DBF、控制文件、聯機日誌、參數文件,其中在一個操作系統中只
含有一個資料庫;
(2)實例
一個資料庫可以有多個實例,實例包括記憶體結構和後臺進程;
(3)dbf(數據文件)
dbf是Oracle的物理存儲單位,存儲在表空間中,一個表空間可以由一個或多個數據文件組成,一個數據文件只能屬於一個
表空間。一旦數據文件被加入到表空間後,就不能刪除這個文件,如果要刪除某個數據文件,就只能刪除其所屬於的表空間。
(4)表空間(相當於mySql的database)
表空間是對物理資料庫上相關數據文件的邏輯映射。一個資料庫在邏輯上被劃分成一到若幹個表空間,每個表空間包含了在
邏輯上相關聯的一組結構。每個資料庫至少有一個表空間(稱之為 system 表空間)。
每個表空間由同一磁碟上的一個或多個文件組成,這些文件叫數據文件(datafile)。一個數據文件只能屬於一個表空間。
(5)用戶
用戶是在表空間下建立的。用戶登陸後只能看到和操作自己的表, ORACLE的用戶與 MYSQL 的資料庫類似,每建立一個應用需
要創建一個用戶。
4.ORACLE表的創建、修改、刪除
Oracle的表的創建,修改和刪除跟mySql一模一樣,只有數據類型稍有不一樣
(1)字元型
CHAR:固定長度的字元類型,最多存儲2000個位元組;
VARCHAR2(或VARCHAR):可變長度的字元類型,最多存儲4000 個位元組;
LONG:大文本類型。最大可以存儲2G;
(2)數值型NUMBER
可以存儲非整數;如,NUMBER(4,2)最大可以存的數為99.99
(3)日期類型
DATE:日期時間型,精確到秒
TIMESTAMP:精確到秒的小數點後9位
(4)二進位型(大數據類型)
CLOB:存儲字元,最大可以存4G
BLOB:存儲圖像、聲音、視頻等二進位數據,最多可以存4G
5.ORACLE數據的增刪改查
Oracle數據的增刪改查跟mySql一致,唯一的區別就是在執行增刪改的時候後要手動點擊commit或者在sql語句中寫commit;提交
事務方纔執行
6.truncat與delete 實現數據刪除的區別
(1)delete 刪除的數據可以 rollback;
(2)delete 刪除可能產生碎片,並且不釋放空間;
(3)truncate 是先摧毀表結構,再重構表結構;
7.ORACLE視圖
視圖是一種資料庫對象,是從一個或者多個數據表或視圖中導出的虛表,視圖所對應的數據並不真正地存儲在視圖中,而是存儲在
所引用的數據表中,視圖的結構和數據是對數據表進行查詢的結果。
其優點:
(1)簡化數據操作:視圖可以簡化用戶處理數據的方式;
(2)著重於特定數據:不必要的數據或敏感數據可以不出現在視圖中;
(3)視圖提供了一個簡單而有效的安全機制,可以定製不同用戶對數據的訪問許可權;
(4)提供向後相容性:視圖使用戶能夠在表的架構更改時為表創建向後相容介面。
(1)ORACLE視圖創建
create [OR REPLACE] [FORCE] view 視圖名 as subquery [WITH CHECK OPTION ] [WITH READ ONLY];
其中:
OR REPLACE :若所創建的試圖已經存在,ORACLE 自動重建該視圖;
FORCE :不管基表是否存在 ORACLE 都會自動創建該視圖;
subquery :一條完整的 SELECT 語句,可以在該語句中定義別名;
WITH CHECK OPTION :插入或修改的數據行必須滿足視圖定義的約束;
WITH READ ONLY :該視圖上不能進行任何 DML 操作。
(2)ORACLE視圖刪除
drop view 視圖名;
8.ORACLE物化視圖
視圖是一個虛擬表,基於它創建時指定的查詢語句返回的結果集。每次訪問它都會導致這個查詢語句被執行一次。為了避免每次
訪問都執行這個查詢,可以將這個查詢結果集存儲到一個物化視圖。
ORACLE物化視圖創建
create meterialized view 視圖名 [BUILD IMMEDIATE | BUILD DEFERRED ]
refresh [FAST|COMPLETE|FORCE] [on [COMMIT |DEMAND ] | START WITH (start_time) NEXT (next_time)] as subquery;
其中:
BUILD IMMEDIATE 是在創建物化視圖的時候就生成數據;
BUILD DEFERRED 則在創建時不生成數據,以後根據需要再生成數據。預設為 BUILD IMMEDIATE;
REFRESH 指當基表發生了 DML 操作後,物化視圖何時採用哪種方式和基表進行同步。
9.序列
序列是 ORACLE 提供的用於產生一系列唯一數字的資料庫對象。
(1)ORACLE序列創建之一
create sequence 序列名稱;
取下一個值
select 序列名稱.nextval from dual;
取當前值
select 序列名稱.nextval from dual
(2)ORACLE序列創建之二
create sequence 創建序列名稱
[INCREMENT BY n] 遞增的序列值是n 如果n是正數就遞增,如果是負數就遞減 預設是 1
[START WITH n] 開始的值,遞增預設是 minvalue 遞減是 maxvalue
[{MAXVALUE n | NOMAXVALUE}] 最大值
[{MINVALUE n | NOMINVALUE}] 最小值
[{CYCLE | NOCYCLE}] 迴圈或不迴圈
[{CACHE n | NOCACHE}];分配並存入到記憶體中
(3)刪除和修改ORACLE序列
修改序列:
alter sequence 序列名稱 MAXVALUE 5000 CYCLE;
刪除序列:
drop sequence 序列名稱;
10.索引
索引是用於加速數據存取的數據對象。合理的使用索引可以大大降低I/O次數,從而提高數據訪問性能。
(1)普通索引
語法: create index 索引名稱 on 表名(列名);
(2)複合索引
語法: create index 索引名稱 on 表名(列名,列名...);
(3)反向鍵索引
語法:create index 索引名稱 on 表名(列名) reverse;
(4)點陣圖索引
語法:create bitmap index 索引名稱 on 表名(列名,列名...);