當前位置:成語大全網 - 書法字典 - Oracle可以在同壹個表空間中創建兩個同名的索引名。

Oracle可以在同壹個表空間中創建兩個同名的索引名。

1) Oracle數據庫對象也叫模式對象;數據庫對象是邏輯結構的集合,最基本的數據庫對象是表。

其他數據庫對象包括同義詞、索引、序列和視圖。

1.1同義詞是現有對象的別名。

簡化SQL語句;隱藏對象的名稱和所有者;提供對對象的公共訪問。

同義詞有兩種類型:私有同義詞和公共同義詞。

私有同義詞只能在其模式內訪問,並且不能與當前模式中的對象同名。

私有同義詞語法:

為SCOTT.emp創建同義詞emp-其中emp是SCOTT.emp的別名,SCOTT是模式名,emp是指示。

公共同義詞的語法:

為SCOTT.emp創建公共同義詞emp _ syn-其中emp_syn是同義詞名稱。

創建或替換現有同義詞:

創建或替換SCOTT.emp的同義詞emp_syn。- OR REPLACE是替換現有的同義詞。

刪除同義詞:

SQL DROP同義詞emp

SQL DROP公共同義詞emp _ syn

1.2序列

1.2.1序列是用於生成唯壹連續序列號的對象;順序可以是升序或降序。

使用CREATE SEQUENCE語句創建序列:

SQL創建序列玩具_序列

從10開始

增加10

最大值2000

最小值10

無循環

緩存10;

註意:指定內存中預分配序列號的數量。

1.2.2訪問順序:

通過序列的偽列訪問序列的值。

NEXTVAL返回序列的下壹個值。

CURRVAL返回序列的當前值。

SQL插入玩具(玩具id,玩具名稱,玩具價格)

值(toys_seq。NEXTVAL,《二十》,25);

SQL插入玩具(玩具id,玩具名稱,玩具價格)

值(toys_seq。NEXTVAL,《魔法鉛筆》,75);

-玩具在哪裏。NEXTVAL指定序列的下壹個值。

SQL選擇玩具序列。dual的CURRVAL-檢索序列的當前值

1.2.3更改和刪除序列

使用ALTER SEQUENCE語句修改序列,但不能更改序列的START WITH參數。

SQL ALTER SEQUENCE toys _ seq max value 5000循環;

使用DROP SEQUENCE語句刪除序列。

SQL刪除序列toys _ seq

1.3視圖

1.3.1視圖以自定義方式顯示壹個或多個表中的數據;

視圖可以被視為“虛擬表”或“存儲查詢”;

創建視圖的表稱為“基表”

視圖的優點是:

提供另壹個級別的表安全性;

隱藏數據的復雜性;

為用戶簡化的SQL命令;

隔離基表結構的變化;

通過重命名列,可以從另壹個角度提供數據。

1.3.2創建視圖的語法:

創建[或替換][強制]視圖

視圖名稱[(別名[,別名]...)]

AS select_statement

[帶檢查選項]

[只讀];

創建視圖stud_view(是壹個圖表)

AS SELECT studno,studname,subno(字段)

FROM Stud_details(原表);

使用WITH CHECK選項創建視圖。

創建或替換視圖pause_view AS

SELECT * FROM order _ master WHERE OS tatus = ' p '

WITH CHECK選項約束chk _ pv

使用ORDER BY子句創建視圖。

創建或替換視圖順序為

SELECT * FROM vendor _ master ORDER BY venname;

創建有錯誤的視圖

將強制視圖創建為

SELECT * FROM venmaster

創建外部聯接視圖

將視圖ven_ord_outj_view創建為

選擇vm.vencode,venname,訂單號,odate,ostatus

從供應商主虛擬機,訂單主OM

其中VM . vencode = om . vencode(+);

或者

選擇vm.vencode,venname,訂單號,odate,ostatus

從供應商_主虛擬機左側外部連接訂單_主OM

ON VM . vencode = om . vencode;

關於1.3.3視圖的DML聲明

您還可以使用DML語句來修改視圖上的數據,例如插入、更新和刪除。

視圖上的DML語句有以下限制:

只能修改壹個底層基表;

來源:(-數據庫對象_壹土林xi _新浪博客如果修改違反了基表的約束,則無法更新視圖;

如果視圖包含聯接運算符;DISTINCT關鍵字;集合運算符;聚合函數或GROUP BY子句;無法更新視圖。

如果視圖包含虛擬列或表達式,則無法更新視圖。

您可以在視圖中使用單行函數、分組函數和表達式:

創建視圖項目_視圖為

SELECT itemcode,LOWER(itemdesc) item_desc

來自項目文件;

使用DROP VIEW語句刪除視圖。

SQL DROP VIEW toys _ view

1.4指數

有各種類型的索引。除了標準索引之外,還有壹些特殊類型的索引:

索引的類型:唯壹索引、位圖索引、組合索引、基於函數的索引和反向鍵索引。

創建標準索引:

SQL在項目文件(項目代碼)上創建索引item_index

表空間index _ tbs

重建索引:

SQL ALTER INDEX item _ INDEX REBUILD;

刪除索引:

SQL刪除索引item _ index

1.4.1唯壹索引

唯壹索引確保定義索引的列中沒有重復值。

Oracle自動在表的主鍵列上創建唯壹索引。

使用CREATE UNIQUE INDEX語句創建唯壹索引:

SQL創建唯壹索引item_index

在項目文件(項目代碼)上;

1.4.2綜合指數

復合索引是在壹個表的多個列上創建的索引;

索引中列的順序是任意的;

如果在SQL語句的WHERE子句中引用復合索引的所有或大部分列,可以提高檢索速度。

SQL創建索引comp_index

1.4.3反向鍵索引

Inverse key index反轉索引列鍵值的每個字節;

它通常基於值不斷增加的列,以便數據均勻分布在整個索引中;

創建索引時使用REVERSE關鍵字:

SQL創建索引rev_index

在itemfile (itemcode)上反轉;

SQL ALTER INDEX rev _ INDEX REBUID no reverse;

1.4.4位圖索引

位圖索引適合在低基數列上創建;

位圖索引不直接存儲ROWID,而是存儲字節位到ROWID的映射;

縮短響應時間;

節省空間占用。

語法:

SQL創建位圖索引位索引

ON order_master(訂單號);

1.4.5索引組織表

索引組織表的數據存儲在與之關聯的索引中;

索引存儲行的實際數據,而不是ROWID。;

基於主鍵訪問數據;

CREATE TABLE命令與ORGANIZATION INDEX子句壹起使用,創建索引組織表:

SQL創建表ind_org_tab(

vencode NUMBER(4)主鍵,

venname VARCHAR2(20)

)

組織索引;

常用表與索引組織表的比較;

普通表索引組織表

ROWID唯壹標識行主鍵唯壹標識行。

隱式ROWID列沒有隱式ROWID列。

基於ROWID的訪問基於主鍵的訪問

順序掃描返回所有行,全索引掃描返回所有行,按主鍵順序排列。

支持分區。不支持分區。

1.4.6基於函數的索引

基於壹列或多列上的函數或表達式創建的索引。

表達式中不能出現聚合函數。

不能在LOB類型的列上創建。

創建查詢時,您必須擁有查詢重寫權限。

SQL創建索引lowercase_idx

玩具上(下(玩具名));

SQL從toys中選擇toyid

WHERE LOWER(toy name)= ' doll ';

1.4.7索引中的分區

索引可以存儲在不同的分區中。

與分區相關的索引有三種類型:

本地分區索引——在已分區表上創建的索引,在每個表分區上創建獨立的索引,索引的分區範圍與表壹致;

全局分區索引(global partition index)——在已分區表或非分區表上創建的索引,獨立指定分區範圍,不考慮分區範圍,也不考慮表是否分區;

全局非分區索引-在已分區表上創建的全局通用索引,該索引不分區。

1.4.8獲取指數的信息

與索引相關的數據字典視圖有:

user _ indexes-用戶創建的索引的信息;

user _ ind _ partitions-用戶創建的分區索引信息;

user _ ind _ columns-與索引相關的表列的信息。

SQL SELECT索引名,表名,列名

從用戶_索引_列

ORDER BY INDEX_NAME,COLUMN _ POSITION

來源:(-數據庫對象林新浪博客