Oracle學習筆記之視圖及索引的使用
一、視圖的使用
1.概念
視圖概念: 視圖是基于一個表或多個表或視圖的邏輯表(虛表),本身不包含數(shù)據(jù),通過它可以對表里面的數(shù)據(jù)進行查詢。
基表:視圖是從一個或多個實際表中獲得的,這些表的數(shù)據(jù)存放在數(shù)據(jù)庫中。那些用于產(chǎn)生視圖的表叫做該視圖的基表。
視圖優(yōu)點:
- 簡化性
- 安全性
2.視圖分類
視圖分為簡單視圖和復雜視圖。兩者區(qū)別如下:
- 簡單視圖只從單表獲取數(shù)據(jù),復雜視圖從多表獲取數(shù)據(jù)。
- 簡單視圖不包含函數(shù)和數(shù)據(jù)組,復雜視圖包含。
- 簡單視圖可以實現(xiàn)DML操作,復雜視圖不可以。
3.視圖語法
創(chuàng)建視圖的語法:
- CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[,alias]...)]
- AS subquery [WITH CHECK OPTION] [WITH READ ONLY]
參數(shù)解析:
- OR REPLACE:如果視圖存在,新定義將替換視圖。
- FORCE:基本不存在也將創(chuàng)建視圖,NOFORCE相反。
- ALIAS:為視圖產(chǎn)生的列定義別名,如不定義將采用基表中列名。
- SUBQUERY:一條查詢語句。
- WITH CHECK OPTION:插入或者修改數(shù)據(jù)必須滿足視圖查詢(SUBQUERY)WHERE子句的條件。
- WITH READ ONLY:不能對視圖進行刪改(DELETE/UPDATE)操作。
4.視圖實例
create or replace view emp_view as select * from emp where empno<1003;
二、索引
1.索引概念
- 在關系數(shù)據(jù)庫中,索引是一種與表有關的數(shù)據(jù)庫對象,它可以使對應于表的SQL查詢語句執(zhí)行得更快。
- 索引的作用類似于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容。
- 對于數(shù)據(jù)庫來說,索引是一個必選項,對于現(xiàn)在的各種大型數(shù)據(jù)庫來說,索引可以大大提高數(shù)據(jù)庫的性能,以至于它變成了數(shù)據(jù)庫不可缺少的一部分。
2.索引分類
2.1、按物理存儲方式分類
B*樹索引:B*樹索引的存儲結(jié)構類似書的索引結(jié)構,有分支和葉兩種類型的存儲數(shù)據(jù)塊。分支塊相當于書的大目錄,葉塊相當于索引到具體的書頁。
位圖索引:位圖索引的存儲主要用來節(jié)省空間,減少Oracle對數(shù)據(jù)塊的訪問,它采用位圖偏移方式來與表的行ID對應,采購位圖索引一般是重復值太多的表字段。
2.2、按邏輯功能分類
唯一索引:唯一索引意味著不會有兩行記錄相同的索引鍵值。
非唯一索引:非唯一索引即不對索引列的值進行唯一性限制。
3.索引原則
在正確使用索引的前提下,索引可以提高檢索相應表的速度。
- 下列情況可以創(chuàng)建索引
- 字段取值分布范圍很廣
- 字段中包含大量空值
- 字段經(jīng)常出現(xiàn)在where子句或連接條件中
- 表經(jīng)常被訪問、數(shù)據(jù)量很大,且通常每次訪問的數(shù)據(jù)量小于記錄總數(shù)的2%-4%。
下列情況不適合創(chuàng)建索引:
- 表很小
- 字段不經(jīng)常出現(xiàn)在where子句中
- 每次訪問的數(shù)據(jù)量大于記錄總數(shù)的2%-4%
- 表經(jīng)常更新
- 被索引的字段作為表達式的一部分被引用
4.索引語法
索引創(chuàng)建的語法:
- create [unique|bitmap] index 索引名稱
- on 表名(列名1[desc|asc],……)
創(chuàng)建索引:
create index ix_emp_ename on emp(ename);
刪除索引:
drop index ix_emp_ename;
到此這篇關于Oracle學習筆記之視圖及索引的使用的文章就介紹到這了,更多相關Oracle 視圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle出現(xiàn)超出打開游標最大數(shù)的兩種解決方法
當Oracle數(shù)據(jù)庫中打開的游標數(shù)超過了數(shù)據(jù)庫的最大游標數(shù)限制時,就會出現(xiàn)“超出打開游標最大數(shù)”的錯誤,本文給大家介紹了幾種常見的解決方法,需要的朋友可以參考下2024-02-02
Oracle使用RMAN進行數(shù)據(jù)庫恢復的實現(xiàn)步驟
使用 RMAN(Recovery Manager)恢復 Oracle 數(shù)據(jù)庫是確保數(shù)據(jù)在災難情況下能夠得到恢復的關鍵步驟,以下是詳細的指導和代碼示例,展示如何使用 RMAN 進行數(shù)據(jù)庫恢復,需要的朋友可以參考下2024-09-09
oracle em 按鈕亂碼解決辦法及em網(wǎng)頁變成英文
oracle em 按鈕亂碼,該問題很是麻煩啊,不過本文介紹了一些解決方法,有需要的你可千萬不要錯過啊,好了,話不多說切入主題2013-01-01
Oracle數(shù)據(jù)庫在指定字段后新增字段代碼舉例
很多時候數(shù)據(jù)庫中已有表的字段與需求業(yè)務所需字段有差異,需要增加一個或多個字段,這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫在指定字段后新增字段的相關資料,需要的朋友可以參考下2023-09-09
升級和卸載Oracle數(shù)據(jù)庫軟件的命令整理
這篇文章主要介紹了升級和卸載Oracle數(shù)據(jù)庫軟件的命令整理,包括升級時可能用到的查看版本號和備份操作的命令介紹,需要的朋友可以參考下2015-12-12

