1. 程式人生 > >Oracle學習筆記 檢視,索引,序列,同義詞

Oracle學習筆記 檢視,索引,序列,同義詞

Oracle學習筆記 檢視,索引,序列,同義詞

9.1 檢視物件

檢視是一張虛表基於查詢語句。並不在資料庫中儲存真實的資料資訊,只在資料字典中儲存檢視的定義資訊。
檢視和表之間存在非常密切的聯絡,如果對其中任何一方做了修改,必定影響另一方。
檢視方便了查詢,同時也保證了資料的邏輯獨立性。並且對資料也是一種保護的策略。

  • 檢視定義:
    檢視是從一個或多個表或檢視中提取出來資料的一種表現形式。是由一條SELECT子查詢語句定義的一個邏輯表,只有定義而無資料,是一個虛表(命了名的SELECT語句)。

  • 使用檢視的目的:

    1. 提供各種資料表現形式
    2. 提供某些安全性保證
    3. 隱藏資料的邏輯複雜性並簡化查詢語句
    4. 執行某些必須使用檢視的查詢
    5. 簡化使用者許可權的管理

9.1.1 建立檢視

  1. 必須先授予使用者建立檢視許可權
grant create view to scott;
  1. 建立檢視
  • 建立包含emp表中empno、ename和job列的檢視VIEW_EMP
create or replace view view_emp as
select empno,ename,job from emp;
  • 在VIEW_EMP中加入一條記錄(2014,‘Tom’,‘CLERK’)
insert into view_emp values(2014,'Tom','CLEAK');
  • 將2014號員工的job改為‘SALESMAN’
update view_emp 
set job='SALESMAN'
where empno=2014;
  • 建立一個只讀檢視VIEW_EMP_SELECT,用於獲得部門編號30中sal在1000~3000之間的員工資訊。
create or replace view view_emp_select 
as
select * from emp  
where deptno = 30 and (sal between 1000 and 3000);
  1. 刪除檢視
drop view view_emp_select;

9.2 索引

9.2.1 概述

如果要在表中查詢指定的記錄,在沒有索引的情況下,必須遍歷整個表,而有了索引之後,只需要在索引中找到符合查詢條件的索引欄位值,就可以通過儲存在索引中的ROWID快速找到表中對應的記錄。舉個例子來說,如果將表看作一個本書,則索引的作用則類似於書中的目錄。在沒有目錄的情況下,要在書中查詢指定的內容必須閱讀全書,而有了目錄之後,只需要通過目錄就可以快速找到包含所需內容的頁碼(相當於ROWID)

索引是建立在表上的可選物件。索引的關鍵在於通過一組排序後的索引鍵來取代預設的全表掃描檢索方式,從而提高檢索效率。

使用者在進行操作時,不需要考慮索引的存在,索引只與系統性能相關

  • 自動建立: 當在建立表時,如果指定了 PRIMARY KEY或者 UNIQUE約束,那麼將自動建立索引.
  • 手動建立: 使用者可以在某個列上建立非唯一的索引,以加快基於該行的查詢.

建立索引,以提高對錶EMP的ENAME列的訪問速度.

create index emp_ename_idx on emp(ename);

刪除索引

drop index emp_ename_idx;

9.3 序列

9.3.1 什麼是序列

  • 自動產生唯一的、連續的整數
  • 是一個可以共享的資料庫物件
  • 典型地用於產生資料庫表中的主鍵值、唯一鍵的值
  • 能夠節省應用程式的程式碼
  • 當快取在記憶體中時,能夠提高存取的效率

建立序列

create sequence cyd_seq  
start with 100
increment by 10
maxvalue 200
cycle;

建立一個表,包含一個整形的欄位

create table cyd(
cyd_no number
);

在tab1中插入序列的值

insert into cyd values(cyd_seq.nextval);