索引、視圖
阿新 • • 發佈:2018-03-28
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 ASSELECT EMPNO, ENAME JOB, MGR FROM EMP; -- 這裏只是存放了視圖的定義,也就是放的是這個查詢語句,在這條sql語句運行的時候動態的去檢索數據的查詢語句,並不是存放在視圖裏對應的數據 3 4 -- 查看視圖 5 SELECT * FROM VI_EMP; 6 7 -- 向視圖中插入一條數據 8 INSERT INTO VI_EMP VILUES(50, ‘IT‘, ‘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;
索引、視圖