第7章表-《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案_第1頁
第7章表-《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案_第2頁
第7章表-《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案_第3頁
第7章表-《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案_第4頁
第7章表-《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《Oracle數(shù)據(jù)庫基礎(chǔ)與應(yīng)用教程》書籍教案人民郵電出版社出版於岳編寫作者聯(lián)系方式:airfish2000@126.com本書內(nèi)容:本書全面講述了Oracle數(shù)據(jù)庫的日常管理工作內(nèi)容。全共14章,包含Oracle簡介和安裝、Oracle客戶端、管理Oracle環(huán)境、Oracle體系結(jié)構(gòu)、管理Oracle存儲(chǔ)結(jié)構(gòu)、SQL語言、表、約束、視圖、同義詞和序列、索引、實(shí)現(xiàn)數(shù)據(jù)庫安全、DataPump數(shù)據(jù)導(dǎo)出和導(dǎo)入、數(shù)據(jù)庫備份和恢復(fù)。每章結(jié)尾提供適量的選擇題、簡答題和操作題,通過練習(xí)和操作實(shí)踐,幫助讀者鞏固所學(xué)內(nèi)容。

本書適合Oracle愛好者、Oracle工程師、數(shù)據(jù)庫管理員、培訓(xùn)機(jī)構(gòu)以及大專院校計(jì)算機(jī)專業(yè)教師和學(xué)生使用。

第7章

表表簡介7.1Oracle內(nèi)置數(shù)據(jù)類型7.2創(chuàng)建表7.3修改表7.47.1表簡介7.1.1什么是表

表是數(shù)據(jù)庫中一個(gè)非常重要的方案對象,被用來存儲(chǔ)數(shù)據(jù),是Oracle數(shù)據(jù)庫中數(shù)據(jù)組織的基本單位。

一個(gè)表定義包括一個(gè)表名和列的集合。列標(biāo)識(shí)表中描述的實(shí)體的屬性,比如員工表中的employee_id列是指員工實(shí)體的員工ID屬性。

當(dāng)創(chuàng)建表的時(shí)候,一般會(huì)為每一個(gè)列指定列名、數(shù)據(jù)類型、大小、小數(shù)位數(shù)、默認(rèn)值等。

如employee_id列指定NUMBER(6)數(shù)據(jù)類型,表明該列只能包含高達(dá)6位數(shù)大小的數(shù)字?jǐn)?shù)據(jù)。大小可以由數(shù)據(jù)類型預(yù)先確定。 一個(gè)表只能包含一個(gè)虛擬列,虛擬列不占用磁盤空間。 數(shù)據(jù)庫通過計(jì)算一組用戶指定的表達(dá)式或函數(shù)生成派生需求上的虛擬列的值。 表創(chuàng)建好之后,可以使用SQL語句進(jìn)行插入、查詢、刪除和更新行操作。 行是列信息的集合,對應(yīng)于一個(gè)表中的記錄,比如員工表描述指定員工的所有屬性。7.1.2表類型

在Oracle數(shù)據(jù)庫中,表可以分為以下幾種類型。1.普通表2.索引組織表3.臨時(shí)表4.外部表5.分區(qū)表6.簇表7.2Oracle內(nèi)置數(shù)據(jù)類型 創(chuàng)建表的時(shí)間需要為列指定數(shù)據(jù)類型,不同的數(shù)據(jù)類型存儲(chǔ)不同類型的數(shù)據(jù)。 Oracle內(nèi)置數(shù)據(jù)類型有字符數(shù)據(jù)類型、數(shù)字?jǐn)?shù)據(jù)類型、日期和時(shí)間數(shù)據(jù)類型、二進(jìn)制數(shù)據(jù)類型和大對象數(shù)據(jù)類型。7.2.1字符數(shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,字符數(shù)據(jù)類型存 儲(chǔ)數(shù)字和字母等組成的字符,常用的字符數(shù) 據(jù)類型有CHAR、NCHAR、VARCHAR2、 NVARCHAR2和VARCHAR。1.CHAR(size

[BYTE

|

CHAR])2.NCHAR(size)3.VARCHAR2(size

[BYTE

|

CHAR])4.NVARCHAR2(size)5.VARCHAR7.2.2數(shù)字?jǐn)?shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,數(shù)字?jǐn)?shù)據(jù)類型所有的數(shù)值數(shù)據(jù),如整數(shù)、分?jǐn)?shù)、雙精度數(shù)和浮點(diǎn)數(shù)等,常用的數(shù)字?jǐn)?shù)據(jù)類型有NUMBER和FLOAT。1.NUMBER

[(p

[,

s])] 以十進(jìn)制格式進(jìn)行儲(chǔ)存的數(shù)字?jǐn)?shù)據(jù)類型,p是指精度(指數(shù)字的總位數(shù)),s是指刻度范圍(小數(shù)點(diǎn)右邊的位數(shù))。p的范圍可以是1~38,s的范圍可以是-84~127。 s的默認(rèn)值是0,如NUMBER(5)、NUMBER。

在指定精度和刻度范圍的時(shí)候需要遵循以下規(guī)則。當(dāng)s>0時(shí),s表示小數(shù)點(diǎn)右邊的數(shù)字的個(gè)數(shù)。當(dāng)一個(gè)數(shù)字的整數(shù)部分的長度

>p-s

時(shí),Oracle就會(huì)報(bào)錯(cuò)。當(dāng)一個(gè)數(shù)字的小數(shù)部分的長度

>s

時(shí),Oracle就會(huì)舍入。當(dāng)s<0時(shí),s表示小數(shù)點(diǎn)左邊的數(shù)字的個(gè)數(shù),Oracle就對小數(shù)點(diǎn)左邊的s個(gè)數(shù)字進(jìn)行舍入。當(dāng)s>p時(shí),p表示小數(shù)點(diǎn)后第s位向左最多可以有多少位數(shù)字,如果大于p則Oracle報(bào)錯(cuò),小數(shù)點(diǎn)后s位向右的數(shù)字被舍入。2.FLOAT

[(p)] 具有精度p的NUMBER數(shù)據(jù)類型的子類型。 一個(gè)FLOAT值,在內(nèi)部表示為NUMBER。精度p的范圍可以是1~126的二進(jìn)制數(shù)字。 一個(gè)FLOAT值是1~22字節(jié)。3.INTEGER 簡稱INT,相當(dāng)于刻度范圍為0的NUMBER數(shù)據(jù)類型。7.2.3日期和時(shí)間數(shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,日期和時(shí)間數(shù)據(jù)類型存儲(chǔ)日期和時(shí)間值,常用的日期和時(shí)間數(shù)據(jù)類型有DATE、TIMESTAMP和TIMESTAMPWITHTIMEZONE。7.2.4二進(jìn)制數(shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,二進(jìn)制數(shù)據(jù)類型存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),常用的二進(jìn)制數(shù)據(jù)類型有RAW和LONGRAW。1.RAW(size) 非結(jié)構(gòu)化數(shù)據(jù)的可變二進(jìn)制數(shù)據(jù),必須為RAW指定size,最大尺寸為2000字節(jié)。2.LONGRAW 非結(jié)構(gòu)化數(shù)據(jù)的可變二進(jìn)制數(shù)據(jù),尺寸可達(dá)2GB。 不建議使用LONGRAW數(shù)據(jù)類型,可以使用BLOB數(shù)據(jù)類型來代替。7.2.5行數(shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,表中每一行數(shù)據(jù)在數(shù)據(jù)庫中的存儲(chǔ)位置可以由行的物理地址和邏輯地址表示,這些地址存儲(chǔ)在表的ROWID偽列中,常用的行數(shù)據(jù)類型有ROWID和UROWID。1.ROWID 以64位為基數(shù)的字符串,表示一條記錄在表中相對唯一的地址值。 該數(shù)據(jù)類型主要是ROWID偽列返回的值。2.UROWID

[(size)] 以64位為基數(shù)的字符串,表示索引組織表的一行的邏輯地址。 可選的大小是UROWID類型的列的大小。 最大尺寸和默認(rèn)尺寸為4000字節(jié)。7.2.6大對象數(shù)據(jù)類型 在Oracle數(shù)據(jù)庫中,大對象數(shù)據(jù)類型存儲(chǔ) 大對象(LargeOBject,LOB),LOB是為圖 像、視頻、音頻、文本、空間數(shù)據(jù)設(shè)計(jì)的,大 對象最大尺寸是(4GB-1)*(數(shù)據(jù)庫塊大?。?一般數(shù)據(jù)庫塊大小為8K,常用的大對象數(shù)據(jù)類 型有CLOB、NCLOB、BLOB、BFILE和LONG。1.CLOB2.NCLOB3.BLOB4.BFILE5.LONG7.3創(chuàng)建表 CREATETABLE語句用于創(chuàng)建表。

要在自己的方案中創(chuàng)建表,必須要擁有CREATETABLE系統(tǒng)權(quán)限。

要在另一個(gè)用戶的方案中創(chuàng)建表,必須要擁有CREATEANYTABLE系統(tǒng)權(quán)限。

7.4修改表 使用ALTERTABLE語句來改變表的定義。 要修改表,該表必須在自己的方案中,或者必須在表上擁有ALTER對象權(quán)限,或者必須要擁有ALTERANYTABLE系統(tǒng)權(quán)限。7.4.1設(shè)置表的讀寫模式 指定READONLY把表設(shè)置為只讀模式。 當(dāng)表處于只讀模式時(shí),不能執(zhí)行任何DML語句或SELECT...FORUPDATE語句來影響表。只要不修改任何表中的數(shù)據(jù)就可以執(zhí)行DDL語句。指定READWRITE把表設(shè)置為讀/寫模式。7.4.2為表指定并行處理 使用PARALLEL在表上為查詢和DML操作更改默認(rèn)并行度。7.4.3啟用或禁用與表相關(guān)聯(lián)觸發(fā)器 使用ENABLEALLTRIGGERS或DISABLEALLTRIGGERS來啟用或禁 用與表相關(guān)聯(lián)的所有觸發(fā)器。 要啟用或禁用觸發(fā)器,觸發(fā)器必須在自己的方案中,或者必須要擁有ALTERANYTRIGGER系統(tǒng)權(quán)限。7.4.4啟用或禁用表鎖定 如果在操作過程中表被鎖定,Oracle數(shù)據(jù)庫只允許在表上進(jìn)行DDL操作。 在DML操作上不需要這樣的表鎖定。 Oracle數(shù)據(jù)庫啟用表鎖定之前,所有目前正在執(zhí)行的事物必須提交或回滾;指定DISABLETABLELOCK禁用表鎖定,從而防止在表上進(jìn)行DDL操作。 當(dāng)目標(biāo)表的表鎖定被禁用時(shí),不會(huì)執(zhí)行并行DML操作。7.4.5解除分配未使用的空間 使用DEALLOCATEUNUSED子句明確地釋放表的末尾未被使用的空間,以供在表空間中其他段的空間使用。 禁用表鎖定以后,不能解除分配未使用的空間。7.4.6標(biāo)記列為未使用 使用SETUNUSED子句以標(biāo)記表中的列為未使用。 無法將屬于SYS的表中的列標(biāo)記為未使用。 對于內(nèi)部的堆組織表,指定SETUNUSED子句實(shí)際上并沒有從表中的每一行中刪除目標(biāo)列。 可以稍后通過發(fā)出ALTERTABLE...DROPUNUSEDCOLUMNS語句刪除標(biāo)記為未使用的列。USER_UNUSED_COL_TABS、ALL_UNUSED_COL_TABS或DBA_UNUSED_COL_

TABS數(shù)據(jù)字典可以用來列出包含未使用列的所有表。 這些數(shù)據(jù)字典中的COUNT列顯示在表中未使用的列的數(shù)量。7.4.7在表中添加、修改和刪除列

當(dāng)修改表的時(shí)候,可以在表中添加、修改和刪除列。1.添加列2.修改列3.刪除列7.4.8為表添加注釋 COMMENTON語句用于為表添加描述性的注釋信息,這樣就可以充分地描述表的內(nèi)容或用法。 注釋內(nèi)容可以長達(dá)4000個(gè)字節(jié),必須存儲(chǔ)在單引號內(nèi)。7.4.9移動(dòng)表到其他表空間 使用MOVE子句可以將表移動(dòng)到其他的表空間中。7.4.10更改表的日志記錄屬性 使用LOGGING和NOLOGGING可以更改表的日志記錄屬性,生成重做日志記錄。7.4.11壓縮表 使用COMPRESS來指示Oracle數(shù)據(jù)庫是否壓縮數(shù)據(jù)段來減少磁盤和內(nèi)存的使用。 隨著數(shù)據(jù)庫的增長規(guī)模,可以考慮壓縮表。 壓縮表將節(jié)省磁盤空間,減少數(shù)據(jù)庫緩沖區(qū)高速緩存的使用,并在讀取時(shí)可以顯著加快查詢執(zhí)行。7.4.12收縮表 使用SHRINKSPACE子句可以對表手動(dòng)收縮空間,只適用于使用自動(dòng)段管理的表空間中的段。 在默認(rèn)情況下,Oracle數(shù)據(jù)庫會(huì)壓縮段,調(diào)整高水位,并立即釋放空間。壓縮段需要先進(jìn)行行移動(dòng)(RowMovement),因此必須在收縮表之前啟用行移動(dòng)。

收縮表具有以下限制。不支持對帶有基于函數(shù)的索引的表進(jìn)行段收縮。不能為壓縮表指定SHRINKSPACE子句。7.4.13重命名列 使用RENAMECOLUMN子句重命名表中的列。 新的列名必須與表中其他列的名稱不能相同。7.4.14重命名表

要對表進(jìn)行重命名,可以通過RENAME和ALTERTABLE...RENAMETO語句來實(shí)現(xiàn)。 1.RENAME語句 2.ALTERTABLE...RENAMETO語句7.5截?cái)啾? TRUNCATETABLE語句用于從表中刪除所有數(shù)據(jù)。 使用這種方法刪除數(shù)據(jù),可以比刪除并重新創(chuàng)建表更有效。 TRUNCATETABLE語句執(zhí)行以后不能回滾。7.6刪除表 DROPTABLE語句用于刪除表,將表移動(dòng)到回收站或從數(shù)據(jù)庫中完全刪除表和它的所有數(shù)據(jù)。 對于外部表,此語句只刪除數(shù)據(jù)庫中表的元數(shù)據(jù)。 它的實(shí)際數(shù)據(jù)并沒有影響,因?yàn)樗v留在數(shù)據(jù)庫之外。 要?jiǎng)h除表,該表必須在自己的方案中,或者必須要擁有DROPANYTABLE系統(tǒng)權(quán)限。

在刪除表的時(shí)候,將會(huì)執(zhí)行以下操作。刪除表中所有的數(shù)據(jù)。刪除與該表有關(guān)的索引、觸發(fā)器和對象權(quán)限。從數(shù)據(jù)字典中刪除表的定義。回收分配給表的存儲(chǔ)空間。7.7使用OEM管理表7.7.1使用OEM創(chuàng)建表

使用OracleEnterpriseManager按以下步驟創(chuàng)建表。(1)在OracleEnterpriseManager頁面中,依次單擊【方案】→【數(shù)據(jù)庫對象】→【表】,如圖7-1所示,單擊【創(chuàng)建】按鈕。圖7-1表(2)在圖7-2所示頁面中,指定表組織,在此選擇【標(biāo)準(zhǔn)(按堆組織)】單選框,然后單擊【繼續(xù)】按鈕。圖7-2創(chuàng)建表:表組織(3)在圖7-3所示【一般信息】頁面中,按以下要求輸入內(nèi)容。圖7-3【一般信息】頁面(4)在圖7-4所示【存儲(chǔ)】頁面中,指定存儲(chǔ)信息,如表空間、區(qū)數(shù)、空間使用情況、空閑列表、事物處理數(shù)、緩沖池和壓縮選項(xiàng)等內(nèi)容。圖7-4【存儲(chǔ)】頁面(5)在圖7-5所示【選項(xiàng)】頁面中,指定啟用行移動(dòng)、并行和高速緩存選項(xiàng),然后單擊【確定】按鈕。圖7-5【選項(xiàng)】頁面7.7.2使用OEM收縮段 對表進(jìn)行收縮段操作可以壓縮空間碎片,然后將恢復(fù)的空間釋放到表空間,以此節(jié)約空間使用。 使用OracleEnterpriseManager按以下步驟收縮段。(1)在圖7-6所示頁面中,搜索方案SYS中的表TABLE_1。選擇表TABLE_1,在【操作】下拉框中選擇【收縮段】,然后單擊【開始】按鈕。圖7-6搜索表(2)在圖7-7所示頁面中,指定收縮選項(xiàng),在此選擇【壓縮段并釋放空間】單選框,然后單擊【繼續(xù)】按鈕。圖7-7收縮段(3)在圖7-8所示頁面中,指定作業(yè)名稱和調(diào)度選項(xiàng),然后單擊【提交】按鈕。圖7-8調(diào)度(4)在圖7-9所示頁面中,顯示已經(jīng)成功創(chuàng)建作業(yè),可以看到調(diào)度程序作業(yè)正在運(yùn)行。圖7-9調(diào)度程序作業(yè)7.7.3使用OEM刪除表 使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論