版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章 方式對(duì)象.本章內(nèi)容方式概念表管理索引管理分區(qū)表與分區(qū)索引的管理視圖、序列、同義詞、數(shù)據(jù)庫(kù)鏈接納理.本章要求掌握表的管理掌握索引的管理掌握分區(qū)的概念及分區(qū)管理了解視圖、序列、同義詞、數(shù)據(jù)庫(kù)鏈接等的管理.9.1方式方式概念方式與用戶的關(guān)系方式選擇與切換.方式概念是指一系列邏輯數(shù)據(jù)構(gòu)造或?qū)ο蟮募稀?方式與用戶的關(guān)系方式與用戶相對(duì)應(yīng),一個(gè)方式只能被一個(gè)數(shù)據(jù)庫(kù)用戶所擁有,并且方式的稱號(hào)與這個(gè)用戶的稱號(hào)一樣。通常情況下,用戶所創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象都保管在與本人同名的方式中。同一方式中數(shù)據(jù)庫(kù)對(duì)象的稱號(hào)必需獨(dú)一,而在不同方式中的數(shù)據(jù)庫(kù)對(duì)象可以同名。默許情況下,用戶援用的對(duì)象是與本人同名方式中的對(duì)象,假設(shè)要
2、援用其他方式中的對(duì)象,需求在該對(duì)象名之前指明對(duì)象所屬方式。 .方式選擇與切換假設(shè)用戶以NORMAL身份登錄,那么進(jìn)入同名方式;假設(shè)以SYSDBA身份登錄,那么進(jìn)入SYS方式;假設(shè)以SYSOPER身份登錄,那么進(jìn)入PUBLIC方式。.9.2 表創(chuàng)建表表約束的管理 表參數(shù)設(shè)置 修正表刪除表利用OEM管理表.9.2.1 創(chuàng)建表表的創(chuàng)建 創(chuàng)建暫時(shí)表 利用子查詢創(chuàng)建表 .1表的創(chuàng)建表的規(guī)劃與設(shè)計(jì)表稱號(hào)列的數(shù)量列稱號(hào)與類型表約束表內(nèi)部數(shù)據(jù)的組織方式規(guī)范表、索引化表、分區(qū)表表存儲(chǔ)位置、存儲(chǔ)空間分配等。 .運(yùn)用CREATE TABLE語(yǔ)句 創(chuàng)建表CREATE TABLE table_name(column_n
3、ame datatype column_level_constraint,column_name datatype column_level_constraint,table_level_constraint) parameter_list;.CREATE TABLE employee( empno NUMBER(5) PRIMARY KEY, ename VARCHAR2(15), deptno NUMBER(3) NOT NULL CONSTRAINT fk_emp REFERENCES deptdeptno)TABLESPACE USERSPCTFREE 10 PCTUSED 40STO
4、RAGE(INITIAL 50K NEXT 50K MAXEXTENTS 10 PCTINCREASE 25);.表名table_name必需是合法標(biāo)識(shí)符,長(zhǎng)度為130 字節(jié),并且以字母開頭,可以包含字母(AZ,az)、數(shù)字09,下劃線_、美圓符號(hào)$和井號(hào)#。此外,表稱號(hào)不能是Oracle數(shù)據(jù)庫(kù)的保管字 數(shù)據(jù)類型(datatype) 字符類型數(shù)字類型日期類型LOB類型二進(jìn)制類型 行類型 .CHARn定長(zhǎng)字符串,n的取值范圍為1-2000字節(jié)VARCHAR2n可變字符串,n取值范圍為1-4000字節(jié)自動(dòng)調(diào)整數(shù)據(jù)長(zhǎng)度NCHAR(n)用來(lái)存儲(chǔ)Unicode類型字符串。NVARCHAR2(n) 它用來(lái)
5、存儲(chǔ)Unicode類型字符串。LONG可變長(zhǎng)字符列,最大長(zhǎng)度為2GB用于不需設(shè)置成索引的字符,不常用字符類型.數(shù)字類型NUMBERm,n用于存儲(chǔ)整數(shù)和實(shí)數(shù)。m表示數(shù)值的總位數(shù)精度,取值范圍為138,默以為38;n表示小數(shù)位數(shù),假設(shè)為負(fù)數(shù)那么表示把數(shù)據(jù)向小數(shù)點(diǎn)左邊舍入,默許值為0。 .日期類型DATE可以存儲(chǔ)的日期范圍為公元前4712年1月1日到公元4712年1月1日,由世紀(jì)、年、月、日、時(shí)、分、秒組成??梢栽谟脩舢?dāng)前會(huì)話中運(yùn)用參數(shù)NLS_DATE_FORMAT指定日期和時(shí)間的格式,或者運(yùn)用TO_DATE函數(shù),將表示日期和時(shí)間的字符串按特定格式轉(zhuǎn)換成日期和時(shí)間。TIMESTAMP(n):表示時(shí)間
6、戳,是DATE 數(shù)據(jù)類型的擴(kuò)展,允許存儲(chǔ)小數(shù)方式的秒值。n表示秒的小數(shù)位數(shù),取值范圍為19,默許值為6。TIMESTAMP(n) WITH TIME ZONE:經(jīng)過(guò)存儲(chǔ)一個(gè)時(shí)區(qū)偏向來(lái)擴(kuò)展TIMESTAMP類型。 時(shí)區(qū)偏向值為相對(duì)于通用協(xié)調(diào)時(shí)間或稱UTC,以前稱為格林威治時(shí)間或GMT的時(shí)差。.TIMESTAMP(n) WITH LOCAL TIME ZONE與TIMESTAMP(n) WITH TIME ZONE的不同之處在于,存儲(chǔ)日期時(shí)直接轉(zhuǎn)換為數(shù)據(jù)庫(kù)時(shí)區(qū)日期,而讀取日期時(shí)將數(shù)據(jù)庫(kù)時(shí)區(qū)日期轉(zhuǎn)換為用戶會(huì)話時(shí)區(qū)日期。INTERVAL YEAR(n) TO MONTH存儲(chǔ)以年份和月份表示的時(shí)間段。n
7、是表示YEAR的最多數(shù)字位數(shù),默以為2。例如,INTERVAL 2-11 YEAR TO MONTH表示2年11個(gè)月。INTERVAL DAY(m) TO SECOND(n)存儲(chǔ)以天數(shù)、小時(shí)數(shù)、分鐘數(shù)和秒數(shù)表示的時(shí)間段。m是表示DAY的最多數(shù)字位數(shù),默以為2。n是表示SECOND的小數(shù)部分的位數(shù),默以為6。例如,INTERVAL 5 10:30:40 DAY TO SECOND表示5天10小時(shí)30分40秒。.LOB類型CLOB用于存儲(chǔ)可變長(zhǎng)度的字符數(shù)據(jù),如文本文件等,最大數(shù)據(jù)量為4 GB。NCLOB用于存儲(chǔ)可變長(zhǎng)度的Unicode字符數(shù)據(jù),最大數(shù)據(jù)量為4 GB。BLOB用于存儲(chǔ)大型的、未被構(gòu)造
8、化的可變長(zhǎng)度的二進(jìn)制數(shù)據(jù)如二進(jìn)制文件、圖片文件、音頻和視頻等非文本文件,最大數(shù)據(jù)量為4 GB。BFILE用于存儲(chǔ)指向二進(jìn)制格式文件的定位器,該二進(jìn)制文件保管在數(shù)據(jù)庫(kù)外部的操作系統(tǒng)中,文件最大為4 GB。.二進(jìn)制類型 RAW(n)用于存儲(chǔ)可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),n表示數(shù)據(jù)長(zhǎng)度,取值范圍為12000字節(jié);LONG RAW用于存儲(chǔ)可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),最大存儲(chǔ)數(shù)據(jù)量為2 GB。.行類型ROWID行標(biāo)識(shí)符,表中行的物理地址的偽列類型。ROWID類型數(shù)據(jù)由18位十六進(jìn)制數(shù)構(gòu)成,包括對(duì)象編號(hào)、文件編號(hào)、數(shù)據(jù)塊編號(hào)和塊內(nèi)行號(hào)。UROWID行標(biāo)識(shí)符,用于表示索引化表中行的邏輯地址。.約束constraint在O
9、racle數(shù)據(jù)庫(kù)中對(duì)列的約束包括主鍵約束、獨(dú)一性約束、檢查約束、外鍵約束和空/非空約束等5中,定義方法有表級(jí)約束和列級(jí)約束2種。參數(shù)parameter_list在定義表時(shí),可以經(jīng)過(guò)參數(shù)設(shè)置表存儲(chǔ)在哪一個(gè)表空間中,和存儲(chǔ)空間分配等。.2創(chuàng)建暫時(shí)表 暫時(shí)表中的數(shù)據(jù)在特定條件下自動(dòng)釋放,但其構(gòu)造將不斷存在。根據(jù)暫時(shí)表中數(shù)據(jù)被釋放的時(shí)間不同,暫時(shí)表分為事務(wù)級(jí)別的暫時(shí)表和會(huì)話級(jí)別的暫時(shí)表兩類。ON COMMIT DELETE ROWS /事務(wù)級(jí)暫時(shí)表ON COMMIT PRESERVE ROWS /會(huì)話級(jí)暫時(shí)表語(yǔ)法運(yùn)用CREATE GLOBAL TEMPORARY TABLE語(yǔ)句創(chuàng)建暫時(shí)表運(yùn)用ON CO
10、MMIT子句闡明暫時(shí)表的類型,默以為事務(wù)級(jí)別的暫時(shí)表。.事務(wù)級(jí)別的暫時(shí)表是在事務(wù)提交時(shí)系統(tǒng)自動(dòng)刪除表中一切記錄。CREATE GLOBAL TEMPORARY TABLE tran_temp(ID NUMBER(2) PRIMARY KEY,name VARCHAR2(20)ON COMMIT DELETE ROWS;.會(huì)話級(jí)別的暫時(shí)表是在會(huì)話終止時(shí)系統(tǒng)自動(dòng)刪除表中一切記錄 。CREATE GLOBAL TEMPORARY TABLE sess_temp(ID NUMBER(2) PRIMARY KEY,name VARCHAR2(20)ON COMMIT PRESERVE ROWS;.3利用
11、子查詢創(chuàng)建表 語(yǔ)法CREATE TABLE table_name(column_name column_level_constraint,column_name column_level_constraint,table_level_constraint) parameter_listAS subquery; .留意經(jīng)過(guò)該方法創(chuàng)建表時(shí),可以修正表中列的稱號(hào),但是不能修正列的數(shù)據(jù)類型和長(zhǎng)度;源表中的約束條件和列的缺省值都不會(huì)復(fù)制到新表中;子查詢中不能包含LOB類型和LONG類型列;當(dāng)子查詢條件為真時(shí),新表中包含查詢到的數(shù)據(jù);當(dāng)查詢條件為假時(shí),那么創(chuàng)建一個(gè)空表。.創(chuàng)建一個(gè)規(guī)范表,保管工資高于300
12、0的員工的員工號(hào)、員工名和部門號(hào)。語(yǔ)句為CREATE TABLE emp_select(emp_no,emp_name,dept_no)ASSELECT empno,ename,deptno FROM employee WHERE sal3000;.創(chuàng)建一個(gè)會(huì)話級(jí)暫時(shí)表,保管部門號(hào)、部門人數(shù)和部門的平均工資。CREATE GLOBAL TEMPORARY TABLE ept_tempON COMMIT PRESERVE ROWSASSELECT deptno,count(*) num,avg(sal) avgsal FROM emp GROUP BY deptno;.9.2.2 表約束約束的類
13、別 定義約束 添加和刪除約束 設(shè)置約束形狀 約束的延遲檢查 查詢約束信息 .1約束的類別 約束作用是在表中定義的用于維護(hù)數(shù)據(jù)庫(kù)完好性的一些規(guī)那么。經(jīng)過(guò)對(duì)表中列定義約束,可以防止在執(zhí)行DML操作時(shí),將不符合要求的數(shù)據(jù)插入到表中。約束類型PRIMARY KEYUNIQUECHECKFOREIGN KEY NULL/NOT NULL .PRIMARY KEY特點(diǎn)定義主鍵,起獨(dú)一標(biāo)識(shí)作用,其值不能為NULL,也不能反復(fù);一個(gè)表中只能定義一個(gè)主鍵約束;建立主鍵約束的同時(shí),在該列上建立一個(gè)獨(dú)一性索引,可以為它指定存儲(chǔ)位置和存儲(chǔ)參數(shù);主鍵約束可以是列級(jí)約束,也可以是表級(jí)約束。.UNIQUE特點(diǎn)定義為獨(dú)一性約
14、束的某一列或多個(gè)列的組合的取值必需獨(dú)一;假設(shè)某一列或多個(gè)列僅定義獨(dú)一性約束,而沒(méi)有定義非空約束,那么該約束列可以包含多個(gè)空值;Oracle自動(dòng)在獨(dú)一性約束列上建立一個(gè)獨(dú)一性索引,可以為它指定存儲(chǔ)位置和存儲(chǔ)參數(shù);獨(dú)一性約束可以是列級(jí)約束,也可以是表級(jí)約束。 .在一個(gè)根本表中只能定義一個(gè)PRIMARY KEY約束,但可定義多個(gè)UNIQUE約束;對(duì)于指定為PRIMARY KEY的一個(gè)列或多個(gè)列的組合,其中任何一個(gè)列都不能出現(xiàn)空值,而對(duì)于UNIQUE所約束的獨(dú)一鍵,那么允許為空。不能為同一個(gè)列或一組列既定義UNIQUE約束,又定義PRIMARY KEY約束。PRIMARY KEY與UNIQUE比較.C
15、HECK 特點(diǎn)檢查約束用來(lái)限制列值所允許的取值范圍,其表達(dá)式中必需援用相應(yīng)列,并且表達(dá)式的計(jì)算結(jié)果必需是一個(gè)布爾值;約束表達(dá)式中不能包含子查詢,也不能包含SYSDATE、USER等SQL函數(shù),和ROWID、ROWNUM等偽列;一個(gè)列可以定義多個(gè)檢查約束;檢查約束可以是列級(jí)約束,也可以是表級(jí)約束。 .概念FOREIGN KEY約束指定某一個(gè)列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表,包含外部鍵所援用的主鍵或獨(dú)一鍵的表稱主表。系統(tǒng)保證從表在外部鍵上的取值要么是主表中某一個(gè)主鍵值或獨(dú)一鍵值,要么取空值。以此保證兩個(gè)表之間的銜接,確保了實(shí)體的參照完好性。FOREIGN KEY.特點(diǎn)定義外鍵約束
16、的列的取值要么是主表參照列的值,要么為空;外鍵列只能參照于主表中的主鍵約束列或獨(dú)一性約束列;可以在一列或多列組合上定義外鍵約束;外鍵約束可以是列級(jí)約束,也可以是表級(jí)約束。.NULL/NOT NULL 特點(diǎn)在同一個(gè)表中可以定義多個(gè)NOT NULL約束;只能是列級(jí)約束。.2定義約束列約束對(duì)某一個(gè)特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不用指定列名;表約束與列定義相互獨(dú)立,不包括在列定義中。通常用于對(duì)多個(gè)列一同進(jìn)展約束,與列定義用,分隔。定義表約束時(shí)必需指出要約束的那些列的稱號(hào)。.定義列級(jí)約束的語(yǔ)法為:CONSTRAINT constraint_name constra
17、int_type conditioin; 定義表級(jí)約束的語(yǔ)法為:CONSTRAINT constraint_nameconstraint_type(column1_name,column2_name,|condition);留意Oracle約束經(jīng)過(guò)稱號(hào)進(jìn)展標(biāo)識(shí)。在定義時(shí)可以經(jīng)過(guò)CONSTRAINT關(guān)鍵字為約束命名。假設(shè)用戶沒(méi)有為約束命名,Oracle將自動(dòng)為約束命名。 .創(chuàng)建一個(gè)student表。CREATE TABLE student( sno NUMBER(6) CONSTRAINT S_PK PRIMARY KEY,sname VARCHAR2(10) NOT NULL,sex CHAR
18、(2) CONSTRAINT S_CK1 CHECK(sex in(M, F),sage NUMBER(6,2),CONSTRAINT S_CK2 CHECK( sage between 18 and 60);.創(chuàng)建一個(gè)course表,同時(shí)為主鍵約束列上的獨(dú)一性索引設(shè)置存儲(chǔ)位置和存儲(chǔ)參數(shù),語(yǔ)句為 CREATE TABLE course( cno NUMBER(6) PRIMARY KEY, cname CHAR(20) UNIQUE USING INDEX TABLESPACE indx STORAGE( INITIAL 64K NEXT 64K); .創(chuàng)建一個(gè)SC表,語(yǔ)句為CREATE TA
19、BLE SC( sno NUMBER(6) REFERENCES student(sno), cno NUMBER(6) REFERENCES course(cno), grade NUMBER(5,2), CONSTRAINT SC_PK PRIMARY KEY(sno, cno) ); .定義列級(jí)FOREIGN KEY約束CONSTRAINT constraint_name FOREIGN KEY REFERENCES ref_table_name (column_name,)定義表級(jí)FOREIGN KEY約束CONSTRAINT constraint_name FOREIGN KEY (
20、column_name,) REFERENCES ref_table_name (column_name,) ON DELETE CASCADE|SET NULL;.ON DELETE CASCADE刪除子表中一切相關(guān)記錄ON DELETE SET NULL將子表中相關(guān)記錄的外鍵約束列值設(shè)置為NULLON DELETE RESTRICTED受限刪除,即假設(shè)子表中有相關(guān)子記錄存在,那么不能刪除主表中的父記錄,默許援用方式。 .DEFAULT假設(shè)用戶在插入新行時(shí)沒(méi)有顯示為列提供數(shù)據(jù),系統(tǒng)將默許值賦給該列。語(yǔ)法CONSTRAINT DEFAULT 表達(dá)式.3添加和刪除約束 添加約束語(yǔ)法為:ALTER
21、 TABLE table_name ADD CONSTRAINT constraint_nameconstraint_type(column1_name,column2_name,)condition;.創(chuàng)建一個(gè)player表CREATE TABLE player( ID NUMBER(6), sno NUMBER(6), sname VARCHAR2(10), sage NUMBER(6,2), resume VARCHAR2(1000); 添加主鍵約束ALTER TABLE player ADD CONSTRAINT P_PK PRIMARY KEY(ID);添加獨(dú)一性約束ALTER TA
22、BLE player ADD CONSTRAINT P_UK UNIQUE(sname);.添加檢查約束ALTER TABLE player ADD CONSTRAINT P_CK CHECK(sage BETWEEN 20 AND 30);添加外鍵約束ALTER TABLE playerADD CONSTRAINT P_FK FOREIGN KEY(sno)REFERENCES student(sno) ON DELETE CASCADE;添加空/非空約束為表列添加空/非空約束時(shí)必需運(yùn)用MODIFY子句替代ADD子句ALTER TABLE player MODIFY resume NOT N
23、ULL;ALTER TABLE player MODIFY resume NULL;.刪除約束運(yùn)用ALTER TABLEDROP語(yǔ)句刪除曾經(jīng)定義的約束。可以經(jīng)過(guò)直接指定約束的稱號(hào)來(lái)刪除約束,或指定約束的內(nèi)容來(lái)刪除約束。刪除指定內(nèi)容的約束ALTER TABLE player DROP UNIQUE(sname);刪除指定稱號(hào)的約束ALTER TABLE player DROP CONSTRAINT P_CK; .刪除主鍵約束、獨(dú)一性約束的同時(shí)將刪除獨(dú)一性索引,假設(shè)要在刪除約束時(shí)保管獨(dú)一性索引,那么必需在ALTER TABLEDORP 語(yǔ)句中指定KEEP INDEX 子句。ALTER TABLE
24、player DROP CONSTRAINT P_UK KEEP INDEX;假設(shè)要在刪除約束的同時(shí),刪除援用該約束的其他約束,那么需求在ALTER TABLEDORP語(yǔ)句中指定CASCADE關(guān)鍵字。ALTER TABLE player DROP CONSTRAINT P_PK CASCADE;.4設(shè)置約束形狀 激活ENABLE形狀當(dāng)約束處于激活形狀時(shí),約束將對(duì)表的插入或更新操作進(jìn)展檢查,與約束規(guī)那么沖突的操作被回退。禁用DISABLE形狀當(dāng)約束處于禁用形狀時(shí),約束不起作用,與約束規(guī)那么沖突的插入或更新操作也可以勝利執(zhí)行。利用SQL*Loader從外部數(shù)據(jù)源提取大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中;進(jìn)展數(shù)據(jù)庫(kù)中
25、數(shù)據(jù)的大量導(dǎo)入、導(dǎo)出操作;針對(duì)表執(zhí)行一項(xiàng)包含大量數(shù)據(jù)操作的批處置任務(wù)時(shí)。.禁用約束 在定義約束時(shí),可以將約束設(shè)置為禁用形狀,默以為激活形狀。也可以在約束創(chuàng)建后,修正約束形狀為禁用。創(chuàng)建表時(shí)禁用約束CREATE TABLE S (SNO CHAR(11) PRIMARY KEY DISALBE,);利用ALTER TABLEDISABLE禁用約束ALTER TABLE STUDENT DISABLE CONSTRAINT S_CK1;ALTER TABLE STUDENT DISABLE UNIQUE (sname);.禁用主鍵約束、獨(dú)一性約束時(shí),會(huì)刪除其對(duì)應(yīng)的獨(dú)一性索引,而在重新激活時(shí),Ora
26、cle為它們重建獨(dú)一性索引。假設(shè)在禁用約束時(shí),保管對(duì)應(yīng)的獨(dú)一性索引,可運(yùn)用ALTER TABLEDISABLEKEEP INDEX語(yǔ)句。ALTER TABLE STUDENT DISABLE UNIQUE (sname) KEEP INDEX;ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX;假設(shè)當(dāng)前約束(主鍵約束、獨(dú)一性約束)列被援用,那么需求運(yùn)用ALTER TABLEDISABLECASCADE語(yǔ)句同時(shí)禁用援用該約束的約束。ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX CASCADE
27、; .激活約束創(chuàng)建或添加約束時(shí),默以為激活形狀。利用ALTER TABLEENABLE語(yǔ)句激活約束ALTER TABLE STUDENT ENABLE UNIQUE (sname);禁用主鍵約束、獨(dú)一性約束時(shí),會(huì)刪除其對(duì)應(yīng)的獨(dú)一性索引,而在重新激活時(shí),Oracle為它們重建獨(dú)一性索引,可以為索引設(shè)置存儲(chǔ)位置和存儲(chǔ)參數(shù)(索引與表盡量分開存儲(chǔ))。ALTER TABLE STUDENT ENABLE PRIMARY KEY USING INDEX TABLESPACE indx STORAGE(INITIAL 32K NEXT 16K);.經(jīng)過(guò)ALTER TABLE MODIFY DISABLE|
28、ENABLE 語(yǔ)句改動(dòng)約束形狀A(yù)LTER TABLE STUDENT MODIFY CONSTRAINT S_CK2 DISABLE;. 5約束的延遲檢查 默許情況下,在表中的約束都是不可延遲約束,Oracle在一條DML語(yǔ)句執(zhí)行終了之后立刻進(jìn)展約束檢查除非禁用。 創(chuàng)建約束時(shí)可以顯式運(yùn)用DEFERRABLE關(guān)鍵字,創(chuàng)建可延遲的約束。INITIALLY IMMEDIATE 或INITIALLY DEFERRED闡明可延遲約束在初始形狀下是立刻檢查還是延遲檢查假設(shè)在定義約束時(shí)設(shè)定為不可延遲,那么約束創(chuàng)建后不能更改其可延遲性。只需創(chuàng)建時(shí)設(shè)定為可延遲的約束,創(chuàng)建后才干更改其可延遲性。 .創(chuàng)建兩個(gè)表,其
29、約束都是可延遲的。CREATE TABLE new_dept(deptno NUMBER PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE,dname CHAR(11) UNIQUE); CREATE TABLE new_emp(empno NUMBER PRIMARY KEY,ename CHAR(11),deptno NUMBER CONSTRAINT NE_FK REFERENCES new_dept(deptno)ON DELETE CASCADE DEFERRABLE);.由于外鍵約束的作用,執(zhí)行下面語(yǔ)句時(shí)會(huì)產(chǎn)時(shí)錯(cuò)誤。INSERT INTO new
30、_emp VALUES(1,ZHANG,11);*ERROR 位于第 1 行:ORA-02291: 違反完好約束條件 (SCOTT.E_FK) - 未找到父項(xiàng)關(guān)鍵字 .將new_emp表的外鍵約束檢查延遲。ALTER TABLE new_emp MODIFY CONSTRAINT NE_FK INITIALLY DEFERRED;此時(shí),由于將new_emp表外鍵約束延遲到事務(wù)終了后進(jìn)展檢查,因此可以先向new_emp中插入數(shù)據(jù),而后向new_dept中插入數(shù)據(jù)。INSERT INTO new_emp VALUES(1,ZHANG,11);INSERT INTO new_dept VALUES(
31、11,COMPUTER);COMMIT; .操作完后,應(yīng)將new_emp外鍵約束檢查恢復(fù)原來(lái)形狀。ALTER TABLE new_emp MODIFY CONSTRAINT NE_FK INITIALLY IMMEDIATE;留意在修正約束的檢查延遲性時(shí),假設(shè)無(wú)法確定約束的稱號(hào)或需求設(shè)置多個(gè)約束的延遲性,可以一次性將一切可延遲的約束延遲或恢復(fù)。SET CONSTRAINT ALL DEFERRED;SET CONSTRAINT ALL IMMEDIATE; .6查詢約束信息ALL_CONSTRAINTSUSER_CONSTRAINTSDBA_CONSTRAINTSALL_CONS_COLUMN
32、SUSER_CONS_COLUMNSDAB_CONS_COLUMNS.查看student表中的一切約束。SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE,DEFERRED,STATUSFROM USER_CONSTRAINTS WHERE TABLE_NAME=STUDENT;查看student表中各個(gè)約束所作用的列。SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLUMNSWHERE TABLE_NAME=STUDENT;.9.2.3 表參數(shù)設(shè)置TABLESPACETABLESPACE子句用于指定表存儲(chǔ)的
33、表空間。 STORAGE STORAGE子句用于設(shè)置表的存儲(chǔ)參數(shù)。假設(shè)不指定,那么承繼表空間的存儲(chǔ)參數(shù)設(shè)置。 NITIAL NEXTPCTINCREASEMINEXTENTSMAXEXTENTSBUFFER_POOL (KEEP、RECYCLE、DEFAULT) .STORAGE參數(shù)設(shè)置需留意假設(shè)表空間管理方式為EXTENT MANAGEMENT LOCAL AUTOALLOCATE,那么在STORAGE中只能指定INITIAL,NEXT和MINEXTENTS這3個(gè)參數(shù);假設(shè)表空間管理方式為EXTENT MANAGEMENT LOCAL UNIFORM,那么不能指定任何STORAGE子句;假設(shè)
34、表空間管理方式為EXTENT MANAGEMENT DICTIONARY,那么在STORAG中可以設(shè)置任何參數(shù)。.數(shù)據(jù)塊管理參數(shù) PCTFREE:用于指定數(shù)據(jù)塊中必需保管的最小空閑空間。PCTUSED:用于指定當(dāng)數(shù)據(jù)塊空閑空間到達(dá)PCTFREE參數(shù)的限制后,數(shù)據(jù)塊可以被再次運(yùn)用前,已占用的存儲(chǔ)空間必需低于的比例。INITRANS:用于指定可以并發(fā)訪問(wèn)同一個(gè)數(shù)據(jù)塊的事務(wù)的數(shù)量。MAXTRANS:用于指定可以并發(fā)訪問(wèn)同一個(gè)數(shù)據(jù)塊的事務(wù)的最大數(shù)量。.LOGGING與NOLOGGING子句默以為NOLOGGING,即表的創(chuàng)建操作不會(huì)記錄到重做日志文件中,尤其適宜經(jīng)過(guò)查詢創(chuàng)建表的情況。運(yùn)用LOGGING
35、子句,表的創(chuàng)建操作包括經(jīng)過(guò)查詢創(chuàng)建表時(shí)的插入記錄操作都將記錄到重做日志文件中。PARALLEL、NOPARALLELCACHE、NOCACHEMONITORING、NOMONITORING.9.2.4 修正表根本語(yǔ)法列的添加、刪除、修正表參數(shù)修正表構(gòu)造重組表重命名等為表和列添加注釋 .修正表根本語(yǔ)法ALTER TABLE ADD 完好性約束定義MODIFY RENAME COLUMN oldname TO newnameSET UNUSED COLUMN column /single columnSET UNUSED COLUMNScolumn1,column2DROP COLUMN /sin
36、gle columnDROP /multi columnDROP UNUSED COLUMNS.列的添加、刪除、修正 添加列 語(yǔ)法ALTER TABLE table_name ADD(new_column_name datatypeNOT NULLDEFAULT value); 例如ALTER TABLE employee ADD(phone VARCHAR2(11),hiredate DATE DEFAULT SYSDATE NOT NULL);.修正列類型 語(yǔ)法ALTER TABLE table_name MODIFY column_name new_datatype; 修正表中列類型時(shí),
37、必需滿足以下條件:可以增大字符類型列的長(zhǎng)度和數(shù)值類型列的精度;假設(shè)字符類型列、數(shù)值類型列中數(shù)據(jù)滿足新的長(zhǎng)度、精度,那么可以減少類型的長(zhǎng)度、精度;假設(shè)不改動(dòng)字符串的長(zhǎng)度,可以將VARCHAR2類型和CAHR類型轉(zhuǎn)換;假設(shè)更改數(shù)據(jù)類型為另一種非同系列類型,那么列中數(shù)據(jù)必需為NULL。 .例如ALTER TABLE employee MODIFY ename CHAR(20);ALTER TABLE employee MODIFY phone NUMBER; 修正列名 語(yǔ)法ALTER TABLE table_name RENAME COLUMN oldname TO newname;例如 ALTER
38、 TABLE employee RENAME COLUMN ename TO employee_name; .刪除列 直接刪除列語(yǔ)法ALTER TABLE table_name DROP COLUMN column_name|(column1_name,column2_name,)CASCADE CONSTRAINTS; 直接刪除列例如ALTER TABLE sc DROP COLUMN sno CASCADE CONSTRAINTS;ALTER TABLE employee DROP (phone,hiredate);.將列標(biāo)志為UNUSED,然后進(jìn)展刪除。ALTER TABLE table
39、_name SET UNUSED COLUMN column_name|(column1_name,column2_name,)CASCADE CONSTRAINTS; 例如ALTER TABLE player SET UNUSED COLUMN sage;ALTER TABLE player SET UNUSED (sname,resume);ALTER TABLE player DROP UNUSED COLUMNS; .假設(shè)數(shù)據(jù)庫(kù)表空間處于字典管理方式,可以對(duì)表的參數(shù)進(jìn)展修正,包括存儲(chǔ)參數(shù)、存儲(chǔ)位置、數(shù)據(jù)塊設(shè)置等。ALTER TABLE employee PCTFREE 30 PCTUS
40、ED 60 STORAGE(NEXT 512K PCTINCREASE 11);留意表創(chuàng)建后不能對(duì)INITIAL、MINEXTENTS兩個(gè)參數(shù)進(jìn)展修正。表參數(shù)修正.將一個(gè)非分區(qū)的表挪動(dòng)到一個(gè)新的數(shù)據(jù)段中,或者挪動(dòng)到其他的表空間中,經(jīng)過(guò)這種操作可以重建表的存儲(chǔ)構(gòu)造,稱為表構(gòu)造重組。假設(shè)發(fā)現(xiàn)表的數(shù)據(jù)段具有不合理的區(qū)分配方式,但是又不能經(jīng)過(guò)別的方法來(lái)進(jìn)展調(diào)整改動(dòng)存儲(chǔ)參數(shù)不會(huì)影響到曾經(jīng)分配的區(qū),可以思索將表挪動(dòng)到一個(gè)新的數(shù)據(jù)段中。此外,假設(shè)頻繁地對(duì)表進(jìn)展DML操作,會(huì)產(chǎn)生大量空間碎片和行遷移、行銜接,可以思索進(jìn)展表構(gòu)造重組。表構(gòu)造重組.語(yǔ)法ALTER TABLE tbname MOVE TABLESP
41、ACE tbs_name 留意 直到表被完全挪動(dòng)到新的數(shù)據(jù)段中之后,Oracle才會(huì)刪除原來(lái)的數(shù)據(jù)段;表構(gòu)造重組后,表中每個(gè)記錄的ROWID會(huì)發(fā)生變化,因此該表的一切索引失效,需求重新建立索引;假設(shè)表中包含LOB列,那么默許情況下不挪動(dòng)LOB列數(shù)據(jù)和LOB索引段。.語(yǔ)法ALTER TABLE old_name RENAME TO new_name;RENAME old_name TO new_name; 闡明表重命名后,Oracle會(huì)自動(dòng)將舊表上的對(duì)象權(quán)限、約束條件等轉(zhuǎn)換到新表上,但是一切與舊表相關(guān)聯(lián)的對(duì)象都會(huì)失效,需求重新編譯。表重命名.為表添加注釋COMMENT ON TALBE tabl
42、e_name IS;為列添加注釋COMMENT ON COLUMN table_name.column_name IS 注釋可以經(jīng)過(guò)以下數(shù)據(jù)字典來(lái)查看.ALL_COL_COMMENTSUSER_COL_COMMENTSALL_TAB_COMMENTSUSER_TAB_COMMENTS為表和列添加注釋 .語(yǔ)法DROP TABLE table_nameCASCADE CONSTRAINTSPURGE 刪除一個(gè)表同時(shí),Oracle將執(zhí)行以下操作:刪除該表中一切記錄;從數(shù)據(jù)字典中刪除該表定義;刪除與該表相關(guān)的一切索引和觸發(fā)器;回收為該表分配的存儲(chǔ)空間;依賴于該表的數(shù)據(jù)庫(kù)對(duì)象處于INVALID形狀。9.
43、2.5刪除表.留意在Oracle 10g中,運(yùn)用DROP TABLE語(yǔ)句刪除一個(gè)表時(shí),并不立刻回收該表的空間,而只是將表及其關(guān)聯(lián)對(duì)象的信息寫入一個(gè)稱為“回收站RECYCLEBIN的邏輯容器中,從而可以實(shí)現(xiàn)閃回刪除表操作。假設(shè)要回收該表空間,可以采用清空“回收站PURGE RECYCLEBIN或在DROP TABLE語(yǔ)句中運(yùn)用PURGE語(yǔ)句。.9.2.6利用OEM管理表創(chuàng)建表刪除表修正表查詢表.1創(chuàng)建表.2表的其他管理.9.3 索引索引概述索引管理利用OEM管理索引.9.3.1索引概述索引概念及作用索引是為了加速對(duì)表中元組的檢索而創(chuàng)建的一種分散存儲(chǔ)構(gòu)造;是對(duì)表而建立的,由除存放表的數(shù)據(jù)頁(yè)面以外的
44、索引頁(yè)面組成,獨(dú)立于被索引的表;經(jīng)過(guò)運(yùn)用索引加速行的檢索,但減慢更新的速度;快速定位數(shù)據(jù),減少磁盤 I/O;Oracle自動(dòng)運(yùn)用、維護(hù)索引.索引分類獨(dú)一性索引與非獨(dú)一性索引 平衡樹索引與位圖索引 單列索引與復(fù)合索引函數(shù)索引 聚簇索引全局索引與本地索引.索引運(yùn)用原那么導(dǎo)入數(shù)據(jù)后再創(chuàng)建索引 在適當(dāng)?shù)谋砗妥侄紊蟿?chuàng)建索引 經(jīng)常查詢的記錄數(shù)目少于表中一切記錄總數(shù)的5%時(shí)就該當(dāng)創(chuàng)建索引;經(jīng)常進(jìn)展銜接查詢表時(shí),在銜接列上建立索引可以顯著提高查詢的速度;對(duì)于取值范圍很大的列該當(dāng)創(chuàng)建B樹索引;對(duì)于取值范圍很小的列該當(dāng)創(chuàng)建位圖索引;不能在LONG,LONG RAW,LOB數(shù)據(jù)類型的列上創(chuàng)建索引;Oracle會(huì)自動(dòng)
45、在PRIMARY KEY和UNIQUE約束的列上創(chuàng)建獨(dú)一性索引。合理設(shè)置復(fù)合索引中的字段順序 .限制表中索引的數(shù)目 表中索引數(shù)目越多,查詢速度越快,但表的更新速度越慢。由于索引越多,維護(hù)索引所需開銷越大,當(dāng)更新表時(shí),需求同時(shí)更新與表相關(guān)的一切索引。 為索引設(shè)置適宜的PCTFREE參數(shù) 選擇存儲(chǔ)索引的表空間默許情況下,索引與表存儲(chǔ)在同一表空間中。索引與表存儲(chǔ)在同一表空間中,有利于數(shù)據(jù)庫(kù)維護(hù)操作,具有較高的可用性;反之,假設(shè)索引與表存儲(chǔ)在不同的表空間中,那么可提高系統(tǒng)的存取性能,減少硬盤I/O沖突,但是表與索引可用形狀能夠出現(xiàn)不一致,如一個(gè)處于聯(lián)機(jī)形狀,另一個(gè)處于脫機(jī)形狀。 .9.3.2管理索引創(chuàng)
46、建索引修正索引監(jiān)視索引 刪除索引索引的查詢.語(yǔ)法CREATE UNIQUE|BITMAP INDEX index_nameON table_name(column_nameASC|DESC,|expression) REVERSEparameter_list;闡明UNIQUE表示建立獨(dú)一性索引;BITMAP表示建立位圖索引;ASC/DESC用于指定索引值的陳列順序,ASC表示按升序排序,DESC表示按降序排序,缺省值為ASC;REVERSE表示建立反鍵索引;parameter_list用于指定索引的存放位置、存儲(chǔ)空間分配和數(shù)據(jù)塊參數(shù)設(shè)置。1創(chuàng)建索引.創(chuàng)建非獨(dú)一性索引 CREATE INDEX
47、employee_ename ON employee(ename)TABLESPACE users STORAGE (INITIAL 20K NEXT 20k PCTINCREASE 75); 創(chuàng)建獨(dú)一性索引 CREATE UNIQUE INDEX deptartment_index ON department(dname); 創(chuàng)建位圖索引 CREATE BITMAP INDEX student_sex ON student(sex);創(chuàng)建反序索引 CREATE INDEX player_sage ON player(sage) REVERSE; .創(chuàng)建函數(shù)索引 CREATE INDEX id
48、x ON employee(UPPER(ename);定義約束時(shí)創(chuàng)建索引CREATE TABLE new_employee(empno NUMBER(5) PRIMARY KEY USING INDEX TABLESPACE users PCTFREE 0,ename VARCHAR2(20); .2修正索引合并索引 合并索引是對(duì)索引進(jìn)展合并操作,但只是簡(jiǎn)單地將B樹葉節(jié)點(diǎn)中的存儲(chǔ)碎片合并在一同,并不會(huì)改動(dòng)索引的物理組織構(gòu)造語(yǔ)法ALTER INDEXCOALESCE例如ALTER INDEX employee_ename COALESCE; .重建索引重建索引的本質(zhì)是在指定的表空間中重新建立一個(gè)
49、新的索引,然后再刪除原來(lái)的索引,這樣不僅可以消除存儲(chǔ)碎片,還可以改動(dòng)索引的存儲(chǔ)參數(shù)設(shè)置,并且將索引挪動(dòng)到其他的表空間中。 語(yǔ)法ALTER INDEXREBUILD 例如 ALTER INDEX player_sage REBUILD; .合并索引與重建索引比較合 并 索 引重 建 索 引不能將索引移到其他表空間中可以將索引移到其他表空間中代價(jià)較低,不需要使用額外的存儲(chǔ)空間代價(jià)較高,需要使用額外的存儲(chǔ)空間只能在B樹的同一子樹中進(jìn)行合并,不會(huì)改變樹的高度重建整個(gè)B 樹,可能會(huì)降低樹的高度可以快速釋放葉子節(jié)點(diǎn)中未使用的存儲(chǔ)空間可以快速更改索引的存儲(chǔ)參數(shù)。在重建過(guò)程中如果指定了ONLINE關(guān)鍵字,不會(huì)
50、影響對(duì)當(dāng)前索引的使用.索引重命名語(yǔ)法ALTER INDEXRENAME TO語(yǔ)句為索引重命名。例如 ALTER INDEX employee_ename RENAME TO employee_new_ename;.3監(jiān)視索引曾經(jīng)建立的索引能否可以有效地任務(wù),取決于在查詢執(zhí)行過(guò)程中能否會(huì)運(yùn)用到這個(gè)索引。要查看某個(gè)指定索引的運(yùn)用情況,可以運(yùn)用ALTER INDEX語(yǔ)句翻開索引的監(jiān)視形狀。 翻開索引監(jiān)視形狀A(yù)LTER INDEX index_ename MONITORING USAGE; 封鎖索引監(jiān)視形狀A(yù)LTER INDEX index_ename NOMONITORING USAGE;.查看索引
51、運(yùn)用情況經(jīng)過(guò)V$OBJECT_USAGE動(dòng)態(tài)性能視圖中查看索引的運(yùn)用情況。USED列為YES,表示索引正被援用,否那么為NO 。 .4刪除索引語(yǔ)法DROP INDEX index_name;在下面幾種情況下,可以思索刪除索引 該索引不再運(yùn)用。經(jīng)過(guò)一段時(shí)間監(jiān)視,發(fā)現(xiàn)幾乎沒(méi)有查詢或只需極少數(shù)查詢會(huì)運(yùn)用該索引。由于索引中包含損壞的數(shù)據(jù)塊或包含過(guò)多的存儲(chǔ)碎片等,需求刪除該索引,然后重建索引。由于挪動(dòng)了表數(shù)據(jù)而導(dǎo)致索引失效 .5索引的查詢 DBA_INDEXES、ALL_INDEXES、USER_INDEXES包含索引的根本描畫信息和統(tǒng)計(jì)信息,包括索引的一切者、索引的稱號(hào)、索引的類型、對(duì)應(yīng)表的稱號(hào)、索引
52、的存儲(chǔ)參數(shù)設(shè)置、由分析得到的統(tǒng)計(jì)信息等信息DBA_IND_COLUMNS、ALL_IND_COLUMNS、USER_IND_COLUMNS包含索引列的描畫信息,包括索引的稱號(hào)、表的稱號(hào)和索引列的稱號(hào)等信息DBA_IND_EXPRESSIONS、ALL_IND_EXPRESSIONS、USER_IND_EXPRESSIONS 包含函數(shù)索引的描畫信息,經(jīng)過(guò)該視圖可以查看到函數(shù)索引的函數(shù)或表達(dá)式V$OBJECT_USAGE包含經(jīng)過(guò)ALTER INDEXMONITORING USAGE語(yǔ)句對(duì)索引進(jìn)展監(jiān)視后得到的索引運(yùn)用信息。 .9.3.3利用OEM管理索引創(chuàng)建索引修正索引刪除索引查詢索引.1創(chuàng)建索引.
53、2索引的其他管理.9.4 分區(qū)表與分區(qū)索引分區(qū)概述創(chuàng)建分區(qū)表維護(hù)分區(qū)表查詢分區(qū)表和分區(qū)索引信息 利用OEM管理分區(qū)表和分區(qū)索引 .分區(qū)概述分區(qū)概念所謂的分區(qū)是指將一個(gè)巨型表或巨型索引分成假設(shè)干獨(dú)立的組成部分進(jìn)展存儲(chǔ)和管理,每一個(gè)相對(duì)小的、可以獨(dú)立管理的部分,稱為原來(lái)表或索引的分區(qū)。每個(gè)分區(qū)都具有一樣的邏輯屬性,但物理屬性可以不同。如具有一樣列、數(shù)據(jù)類型、約束等,但可以具有不同的存儲(chǔ)參數(shù)、位于不同的表空間等。分區(qū)后,表中每個(gè)記錄或索引條目根據(jù)分區(qū)條件分散存儲(chǔ)到不同分區(qū)中 。.分區(qū)原那么表的大小超越2GB要對(duì)一個(gè)表進(jìn)展并行DML操作,必需分區(qū)為了平衡硬盤的I/O操作,將一個(gè)表分散存儲(chǔ)在不同的表空間
54、中,必需對(duì)它進(jìn)展分區(qū)假設(shè)需求將表一部分設(shè)置為只讀,另一部分為可更新的,必需對(duì)表進(jìn)展分區(qū).9.4.1創(chuàng)建分區(qū)表分區(qū)方法范圍分區(qū)列表分區(qū)散列分區(qū)復(fù)合分區(qū).1范圍分區(qū)概述范圍分區(qū)是按照分區(qū)列值的范圍來(lái)對(duì)表進(jìn)展分區(qū)的。參數(shù)經(jīng)過(guò)PARTITION BY RANGE子句闡明根據(jù)范圍進(jìn)展分區(qū),其后括號(hào)中列出分區(qū)列,可以進(jìn)展多列分區(qū)。每個(gè)分區(qū)以PARTITION 關(guān)鍵字開頭,其后是分區(qū)名。VALUES LESS THAN子句用于設(shè)置分區(qū)中分區(qū)列值的范圍??梢詫?duì)每個(gè)分區(qū)的存儲(chǔ)進(jìn)展設(shè)置,也可以對(duì)一切分區(qū)采用默許的存儲(chǔ)設(shè)置。.例如創(chuàng)建一個(gè)分區(qū)表,將學(xué)生信息根據(jù)其出生日期進(jìn)展分區(qū),將1980年1月1日前出生的學(xué)生信息
55、保管在ORCLTBS1表空間中,將1980年1月1日到1990年1月1日出生的學(xué)生信息保管在ORCLTBS2表空間中,將其他學(xué)生信息保管在ORCLTBS3表空間中。.CREATE TABLE student_range( sno NUMBER(6) PRIMARY KEY, sname VARCHAR2(10), sage int, birthday DATE) PARTITION BY RANGE(birthday)( PARTITION p1 VALUES LESS THAN (TO_DATE(1980-1-1, YYYY-MM-DD) TABLESPACE ORCLTBS1, PARTI
56、TION p2 VALUES LESS THAN (TO_DATE(1990-1-1, YYYY-MM-DD) TABLESPACE ORCLTBS2, PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS3 STORAGE(INITIAL 10M NEXT 20M) STORAGE(INITIAL 20M NEXT 10M MAXEXTENTS 10);.2列表分區(qū)概述假設(shè)分區(qū)列的值并不能劃分范圍非數(shù)值類型或日期類型,同時(shí)分區(qū)列的取值范圍只是一個(gè)包含少數(shù)值的集合,那么可以對(duì)表進(jìn)展列表分區(qū)LIST,如按地域、性別等分區(qū)。與范圍分區(qū)
57、不同,列表分區(qū)不支持多列分區(qū),只能根據(jù)一個(gè)單獨(dú)的列來(lái)進(jìn)展分區(qū)。創(chuàng)建列表分區(qū)時(shí)需求指定分區(qū)列和分區(qū)描畫。 經(jīng)過(guò)PARTITION BY LIST子句闡明根據(jù)列表進(jìn)展分區(qū),其后括號(hào)中列出分區(qū)列。每個(gè)分區(qū)以PARTITION 關(guān)鍵字開頭,其后是分區(qū)名。VALUES子句用于設(shè)置分區(qū)所對(duì)應(yīng)的分區(qū)列取值。 .例如創(chuàng)建一個(gè)分區(qū)表,將學(xué)生信息按性別不同進(jìn)展分區(qū),男學(xué)生信息保管在表空間ORCLTBS1中,而女學(xué)生信息保管在ORCLTBS2中。 .CREATE TABLE student_list( sno NUMBER(6) PRIMARY KEY, sname VARCHAR2(10), sex CHAR(2
58、) CHECK(sex in (M, F)PARTITION BY LIST(sex)( PARTITION student_male VALUES(M) TABLESPACE ORCLTBS1, PARTITION student_female VALUES(F) TABLESPACE ORCLTBS2);.3散列分區(qū)概述在進(jìn)展范圍分區(qū)或列表分區(qū)時(shí),由于無(wú)法對(duì)各個(gè)分區(qū)中能夠具有的記錄數(shù)量進(jìn)展預(yù)測(cè),能夠?qū)е聰?shù)據(jù)在各個(gè)分區(qū)中分布不平衡,某個(gè)分區(qū)中數(shù)據(jù)很多,而某個(gè)分區(qū)中數(shù)據(jù)很少。此時(shí)可以采用散列分區(qū)HASH方法,在指定數(shù)量的分區(qū)中均等地分配數(shù)據(jù)。為了創(chuàng)建散列分區(qū),需求指定分區(qū)列、分區(qū)數(shù)量或單獨(dú)的分
59、區(qū)描畫。經(jīng)過(guò)PARTITION BY HASH指定分區(qū)方法,其后的括號(hào)指定分區(qū)列。運(yùn)用PARTITION子句指定每個(gè)分區(qū)稱號(hào)和其存儲(chǔ)空間?;蛘哌\(yùn)用PARTITIONS子句指定分區(qū)數(shù)量,用STORE IN子句指定分區(qū)存儲(chǔ)空間。 .例如創(chuàng)建一個(gè)分區(qū)表,根據(jù)學(xué)號(hào)將學(xué)生信息均勻分布到ORCLTBS1和ORCLTBS2兩個(gè)表空間中。.CREATE TABLE student_hash ( sno NUMBER(6) PRIMARY KEY, sname VARCHAR2(10)PARTITION BY HASH(sno)( PARTITION p1 TABLESPACE ORCLTBS1,PARTITI
60、ON p2 TABLESPACE ORCLTBS2); CREATE TABLE student_hash2 ( sno NUMBER(6) PRIMARY KEY, sname VARCHAR2(10) )PARTITION BY HASH(sno)PARTITIONS 2 STORE IN(ORCLTBS1,ORCLTBS2); .4復(fù)合分區(qū)復(fù)合分區(qū)包括:范圍-列表復(fù)合分區(qū)范圍-散列復(fù)合分區(qū)。 創(chuàng)建復(fù)合分區(qū)時(shí)需求指定分區(qū)方法PARTITION BY RANGE分區(qū)列子分區(qū)方法SUBPARTITION BY HASH, SUBPARTITION BY LIST子分區(qū)列每個(gè)分區(qū)中子分區(qū)數(shù)量或子
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目特許經(jīng)營(yíng)權(quán)協(xié)議
- 2024年幼兒園教師崗位聘任協(xié)議書模板
- 2024專業(yè)建設(shè)工程項(xiàng)目設(shè)計(jì)合同范本專業(yè)版
- 2024家庭保姆雇傭合同樣本
- 2024年先進(jìn)制造業(yè)生產(chǎn)線自動(dòng)化改造合同
- 2024年度家電行業(yè)C型鋼部件加工合同
- 2024年廢紙回收海運(yùn)出口協(xié)議
- 2024年商場(chǎng)清潔服務(wù)合同
- 2024年建筑工程設(shè)計(jì)與施工一體化合同
- 2024年度智能硬件設(shè)備采購(gòu)與安裝合同
- 醫(yī)院感染管理培訓(xùn)課件消毒劑的選擇與使用
- 平臺(tái)分銷返傭合作協(xié)議
- 中國(guó)城市行政代碼
- 低纖維蛋白原血癥的護(hù)理查房
- 數(shù)學(xué)4教材介紹
- 全國(guó)大學(xué)生職業(yè)生涯規(guī)劃大賽
- 肩關(guān)節(jié)鏡術(shù)的健康宣教
- 關(guān)于學(xué)校安全保衛(wèi)工作存在的問(wèn)題及對(duì)策
- 2024年廣西鋁業(yè)集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年西藏開發(fā)投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 愛(ài)校主題班會(huì)課件
評(píng)論
0/150
提交評(píng)論