1. 程式人生 > >索引、視圖

索引、視圖

from with 作用 刪除索引 語句 對數 並不是 存在 自動

索引

索引類似於字典和課本目錄,是為了加快對數據的搜索速度而設立的,

有自己專門的存儲空間,與表獨立存放

索引的創建分為自動創建和手動創建

在創建主鍵跟唯一的時候,索引會自動創建

手動創建

 1 -- 為EMP表的薪資列添加索引
 2 CREATE INDEX INDEX_SAL ON EMP(SAL DESC);
 3 
 4 /*
 5     在用戶撤銷索引之前不會用到該索引的名字,但是索引在用戶查詢時會自動 
 6     起作用
 7 */
 8 
 9 -- 為多列創建索引
10 -- 只有在同時查詢SAL和NAME的時候,這個索引才會起作用
11 CREATE INDEX INDEX_SAL_NAME ON EMP(SAL, NAME); 12 13 -- 刪除索引 14 DROP INDEX INDEX_SAL;

索引的缺點

  1. 索引是需要單獨存放的,占用空間

  2.給某列添加索引後,該列的查詢雖然變得更加快了,但是增、刪、改會變慢,因為添加索引後,每個數據會有一個相應的位置,如果一旦往這一列裏面某個位置添加了數據,那麽後面的所有數據的位置都要進行改變,刪除,修改亦然。

視圖

視圖是為了給不同的人呈現不同的數據

1 -- 創建視圖
2 CREATE VIEW VI_EMP AS
SELECT EMPNO, ENAME JOB, MGR FROM EMP; -- 這裏只是存放了視圖的定義,也就是放的是這個查詢語句,在這條sql語句運行的時候動態的去檢索數據的查詢語句,並不是存放在視圖裏對應的數據 3 4 -- 查看視圖 5 SELECT * FROM VI_EMP; 6 7 -- 向視圖中插入一條數據 8 INSERT INTO VI_EMP VILUES(50IT, SHANGHAI);

刪除視圖

1 DROP VIEW VI_EMP;

視圖就是一個虛擬的表,視圖中的數據是從事實存在的基本表中來的,當對視圖進行更改時,基本表中的數據也會相應的進行更改,那麽,有的時候視圖只是為了給別人查看到相關的信息,並不希望查看者去更改我的表,那麽可以將視圖設置為只讀模式

 1 -- 只讀
 2 -- OR REPLACE   替換掉原來的VI_EMP視圖
 3 CREATE OR REPLACE VIEW VI_EMP
 4 AS
 5 SELECT * FROM EMP
 6 WITH READ ONLY;   -- 設置為只讀
 7 
 8 
 9 
10 -- 查看數據庫所有的視圖
11 SELECT VIEW_NAME FROM USER_VIEWS;

索引、視圖