【ORACLE+PLSQL學習筆記#5】普通視圖+物化視圖+序列+同義詞+索引

**

普通視圖

■修改簡單視圖裏面數據時引用的表裏面的數據也會同步修改

■check option帶有檢查約束,帶有檢查約束的視圖不能夠修改生成該視圖的約束條件
**
在這裏插入圖片描述
在這裏插入圖片描述
■視圖默認可讀可寫,修改爲只讀需要添加read only
在這裏插入圖片描述

■數據庫允許預先生成帶有錯誤的視圖(基表現有階段可能不存在,可以在後續代碼動態生成),可以理解爲強制生成。
在這裏插入圖片描述
在這裏插入圖片描述

■所謂複雜視圖,就是視圖的 SQL語句中,有聚合函數或多表關聯查詢
■鍵保留表:生成複雜視圖(多表關聯)的數據時,把作爲視圖的主鍵的那個字段來源的基表,該表就屬於鍵保留表。非鍵保留表字段不允許修改。
在這裏插入圖片描述
■修改複雜視圖(多表關聯)的數據時,修改的字段是屬於該視圖下的鍵保留表的才能允許修改

■視圖不同於基表直接查詢,所顯示的字段最好擁有別名,例如聚合函數,視圖不能直接將其作爲列名,而基表查詢可以。
在這裏插入圖片描述
在這裏插入圖片描述

■含聚合統計函數生成的複雜視圖沒有鍵保留表,也不能修改任何字段內容,只能只讀。
在這裏插入圖片描述
**

物化視圖

**
■無論物化視圖還是普通視圖,select後面的字段名不能同時爲一個標記,必須起別名。儘管它允許查詢後可以同時顯示分別來自兩個不同的表的同樣字段名。
在這裏插入圖片描述

在這裏插入圖片描述
■不能直接操作修改物化表,只能通過修改基表數據實現
在這裏插入圖片描述

■物化視圖默認手動刷新,當基表發生數據變化時,需要執行PL/SQL語句或者執行命令,才能刷新。(不知爲何,向基表插入數據後直接執行命令更新對應的物化視圖時,失效了並沒有執行刷新)
在這裏插入圖片描述
另一種輸入commad命令方式,我試了失敗:
在這裏插入圖片描述

■設置自動更新的物化視圖必須對基表操作要有commit關鍵字
DEFERRED :推遲defer的意思
在這裏插入圖片描述

■生成沒有數據的物化視圖,第一次必須進行手動更新,才能將數據補充入表。之後性質受其他關鍵字決定。

■創建增量更新(即部分更新)的物化視圖時必須具備兩個條件:
1.爲關聯的表各自創建log表
2.創建as語句必須包含以基表創建的依據的字段名
oracle 根據已經修改基表的日誌表提取信息刷新物化視圖,物化視圖刷新後立即清空對應基表日誌表
在這裏插入圖片描述
在這裏插入圖片描述
**

序列

**
oracle序列可以決定從哪裏、從數字幾、一次增長或減少多少、最大增到或最小減到多少、設置緩存、設置循環這些功能,實現一個有規律的增長序列利用到字段自動增長屬性中。
注意:
■開始值不能小於最小值,序列到達最大值後再增長就會報錯。
■循環序列中第一次循環是從開始值開始循環,而第二次循環是從最小值開始循環。
■一個循環的序列,必須指定最大值、最小值,否則會報錯。
■可以用ALTER修改序列參數,但不能修改起始值。

序列超過最大值會報錯:
在這裏插入圖片描述

循環序列限制:
假設不指定默認循環序列緩存爲20,範圍即是當前增長單位*20, 最大值必須取到比範圍值大。
在這裏插入圖片描述
**

同義詞

**:
同義詞,指ORACLE中爲其他數據庫對象起的別名,亦是一個對象。分私有和公有,除了DBA可以以“用戶.同義詞對象”使用之外,私有情況下只有該用戶下才有權限使用。公有指任何用戶都可以使用(無需使用“用戶.同義詞對象”的方式)
在這裏插入圖片描述

**

索引

複合索引:
雖然根據兩個字段生成索引,但是依舊是一棵樹。而且建立索引時有要求與常常併合查詢的字段順序保持一致。
在這裏插入圖片描述
在這裏插入圖片描述

唯一索引:
性能比普通索引高,但是會約束字段不能出現重複值。若是創建失敗就有可能是該字段含有重複值。主鍵不能重複就是創建唯一索引的一個表現。

反向鍵索引:
在這裏插入圖片描述
在這裏插入圖片描述

位圖索引:
不能用於範圍查詢,只適合數值有限個的字段類型,如性別男女。把數值按照種類劃分成多個集合,每個集合放置對應行的rowid即地址,查詢按照集合查找。在枚舉類型的字段中效率比普通索引要高。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章