版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《Oracle數據庫基礎與應用教程》書籍教案人民郵電出版社出版於岳編寫作者聯系方式:airfish2000@126.com本書內容:本書全面講述了Oracle數據庫的日常管理工作內容。全共14章,包含Oracle簡介和安裝、Oracle客戶端、管理Oracle環境、Oracle體系結構、管理Oracle存儲結構、SQL語言、表、約束、視圖、同義詞和序列、索引、實現數據庫安全、DataPump數據導出和導入、數據庫備份和恢復。每章結尾提供適量的選擇題、簡答題和操作題,通過練習和操作實踐,幫助讀者鞏固所學內容。
本書適合Oracle愛好者、Oracle工程師、數據庫管理員、培訓機構以及大專院校計算機專業教師和學生使用。
第7章
表表簡介7.1Oracle內置數據類型7.2創建表7.3修改表7.47.1表簡介7.1.1什么是表
表是數據庫中一個非常重要的方案對象,被用來存儲數據,是Oracle數據庫中數據組織的基本單位。
一個表定義包括一個表名和列的集合。列標識表中描述的實體的屬性,比如員工表中的employee_id列是指員工實體的員工ID屬性。
當創建表的時候,一般會為每一個列指定列名、數據類型、大小、小數位數、默認值等。
如employee_id列指定NUMBER(6)數據類型,表明該列只能包含高達6位數大小的數字數據。大小可以由數據類型預先確定。 一個表只能包含一個虛擬列,虛擬列不占用磁盤空間。 數據庫通過計算一組用戶指定的表達式或函數生成派生需求上的虛擬列的值。 表創建好之后,可以使用SQL語句進行插入、查詢、刪除和更新行操作。 行是列信息的集合,對應于一個表中的記錄,比如員工表描述指定員工的所有屬性。7.1.2表類型
在Oracle數據庫中,表可以分為以下幾種類型。1.普通表2.索引組織表3.臨時表4.外部表5.分區表6.簇表7.2Oracle內置數據類型 創建表的時間需要為列指定數據類型,不同的數據類型存儲不同類型的數據。 Oracle內置數據類型有字符數據類型、數字數據類型、日期和時間數據類型、二進制數據類型和大對象數據類型。7.2.1字符數據類型 在Oracle數據庫中,字符數據類型存 儲數字和字母等組成的字符,常用的字符數 據類型有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數字數據類型 在Oracle數據庫中,數字數據類型所有的數值數據,如整數、分數、雙精度數和浮點數等,常用的數字數據類型有NUMBER和FLOAT。1.NUMBER
[(p
[,
s])] 以十進制格式進行儲存的數字數據類型,p是指精度(指數字的總位數),s是指刻度范圍(小數點右邊的位數)。p的范圍可以是1~38,s的范圍可以是-84~127。 s的默認值是0,如NUMBER(5)、NUMBER。
在指定精度和刻度范圍的時候需要遵循以下規則。當s>0時,s表示小數點右邊的數字的個數。當一個數字的整數部分的長度
>p-s
時,Oracle就會報錯。當一個數字的小數部分的長度
>s
時,Oracle就會舍入。當s<0時,s表示小數點左邊的數字的個數,Oracle就對小數點左邊的s個數字進行舍入。當s>p時,p表示小數點后第s位向左最多可以有多少位數字,如果大于p則Oracle報錯,小數點后s位向右的數字被舍入。2.FLOAT
[(p)] 具有精度p的NUMBER數據類型的子類型。 一個FLOAT值,在內部表示為NUMBER。精度p的范圍可以是1~126的二進制數字。 一個FLOAT值是1~22字節。3.INTEGER 簡稱INT,相當于刻度范圍為0的NUMBER數據類型。7.2.3日期和時間數據類型 在Oracle數據庫中,日期和時間數據類型存儲日期和時間值,常用的日期和時間數據類型有DATE、TIMESTAMP和TIMESTAMPWITHTIMEZONE。7.2.4二進制數據類型 在Oracle數據庫中,二進制數據類型存儲非結構化數據,常用的二進制數據類型有RAW和LONGRAW。1.RAW(size) 非結構化數據的可變二進制數據,必須為RAW指定size,最大尺寸為2000字節。2.LONGRAW 非結構化數據的可變二進制數據,尺寸可達2GB。 不建議使用LONGRAW數據類型,可以使用BLOB數據類型來代替。7.2.5行數據類型 在Oracle數據庫中,表中每一行數據在數據庫中的存儲位置可以由行的物理地址和邏輯地址表示,這些地址存儲在表的ROWID偽列中,常用的行數據類型有ROWID和UROWID。1.ROWID 以64位為基數的字符串,表示一條記錄在表中相對唯一的地址值。 該數據類型主要是ROWID偽列返回的值。2.UROWID
[(size)] 以64位為基數的字符串,表示索引組織表的一行的邏輯地址。 可選的大小是UROWID類型的列的大小。 最大尺寸和默認尺寸為4000字節。7.2.6大對象數據類型 在Oracle數據庫中,大對象數據類型存儲 大對象(LargeOBject,LOB),LOB是為圖 像、視頻、音頻、文本、空間數據設計的,大 對象最大尺寸是(4GB-1)*(數據庫塊大小), 一般數據庫塊大小為8K,常用的大對象數據類 型有CLOB、NCLOB、BLOB、BFILE和LONG。1.CLOB2.NCLOB3.BLOB4.BFILE5.LONG7.3創建表 CREATETABLE語句用于創建表。
要在自己的方案中創建表,必須要擁有CREATETABLE系統權限。
要在另一個用戶的方案中創建表,必須要擁有CREATEANYTABLE系統權限。
7.4修改表 使用ALTERTABLE語句來改變表的定義。 要修改表,該表必須在自己的方案中,或者必須在表上擁有ALTER對象權限,或者必須要擁有ALTERANYTABLE系統權限。7.4.1設置表的讀寫模式 指定READONLY把表設置為只讀模式。 當表處于只讀模式時,不能執行任何DML語句或SELECT...FORUPDATE語句來影響表。只要不修改任何表中的數據就可以執行DDL語句。指定READWRITE把表設置為讀/寫模式。7.4.2為表指定并行處理 使用PARALLEL在表上為查詢和DML操作更改默認并行度。7.4.3啟用或禁用與表相關聯觸發器 使用ENABLEALLTRIGGERS或DISABLEALLTRIGGERS來啟用或禁 用與表相關聯的所有觸發器。 要啟用或禁用觸發器,觸發器必須在自己的方案中,或者必須要擁有ALTERANYTRIGGER系統權限。7.4.4啟用或禁用表鎖定 如果在操作過程中表被鎖定,Oracle數據庫只允許在表上進行DDL操作。 在DML操作上不需要這樣的表鎖定。 Oracle數據庫啟用表鎖定之前,所有目前正在執行的事物必須提交或回滾;指定DISABLETABLELOCK禁用表鎖定,從而防止在表上進行DDL操作。 當目標表的表鎖定被禁用時,不會執行并行DML操作。7.4.5解除分配未使用的空間 使用DEALLOCATEUNUSED子句明確地釋放表的末尾未被使用的空間,以供在表空間中其他段的空間使用。 禁用表鎖定以后,不能解除分配未使用的空間。7.4.6標記列為未使用 使用SETUNUSED子句以標記表中的列為未使用。 無法將屬于SYS的表中的列標記為未使用。 對于內部的堆組織表,指定SETUNUSED子句實際上并沒有從表中的每一行中刪除目標列。 可以稍后通過發出ALTERTABLE...DROPUNUSEDCOLUMNS語句刪除標記為未使用的列。USER_UNUSED_COL_TABS、ALL_UNUSED_COL_TABS或DBA_UNUSED_COL_
TABS數據字典可以用來列出包含未使用列的所有表。 這些數據字典中的COUNT列顯示在表中未使用的列的數量。7.4.7在表中添加、修改和刪除列
當修改表的時候,可以在表中添加、修改和刪除列。1.添加列2.修改列3.刪除列7.4.8為表添加注釋 COMMENTON語句用于為表添加描述性的注釋信息,這樣就可以充分地描述表的內容或用法。 注釋內容可以長達4000個字節,必須存儲在單引號內。7.4.9移動表到其他表空間 使用MOVE子句可以將表移動到其他的表空間中。7.4.10更改表的日志記錄屬性 使用LOGGING和NOLOGGING可以更改表的日志記錄屬性,生成重做日志記錄。7.4.11壓縮表 使用COMPRESS來指示Oracle數據庫是否壓縮數據段來減少磁盤和內存的使用。 隨著數據庫的增長規模,可以考慮壓縮表。 壓縮表將節省磁盤空間,減少數據庫緩沖區高速緩存的使用,并在讀取時可以顯著加快查詢執行。7.4.12收縮表 使用SHRINKSPACE子句可以對表手動收縮空間,只適用于使用自動段管理的表空間中的段。 在默認情況下,Oracle數據庫會壓縮段,調整高水位,并立即釋放空間。壓縮段需要先進行行移動(RowMovement),因此必須在收縮表之前啟用行移動。
收縮表具有以下限制。不支持對帶有基于函數的索引的表進行段收縮。不能為壓縮表指定SHRINKSPACE子句。7.4.13重命名列 使用RENAMECOLUMN子句重命名表中的列。 新的列名必須與表中其他列的名稱不能相同。7.4.14重命名表
要對表進行重命名,可以通過RENAME和ALTERTABLE...RENAMETO語句來實現。 1.RENAME語句 2.ALTERTABLE...RENAMETO語句7.5截斷表 TRUNCATETABLE語句用于從表中刪除所有數據。 使用這種方法刪除數據,可以比刪除并重新創建表更有效。 TRUNCATETABLE語句執行以后不能回滾。7.6刪除表 DROPTABLE語句用于刪除表,將表移動到回收站或從數據庫中完全刪除表和它的所有數據。 對于外部表,此語句只刪除數據庫中表的元數據。 它的實際數據并沒有影響,因為它駐留在數據庫之外。 要刪除表,該表必須在自己的方案中,或者必須要擁有DROPANYTABLE系統權限。
在刪除表的時候,將會執行以下操作。刪除表中所有的數據。刪除與該表有關的索引、觸發器和對象權限。從數據字典中刪除表的定義。回收分配給表的存儲空間。7.7使用OEM管理表7.7.1使用OEM創建表
使用OracleEnterpriseManager按以下步驟創建表。(1)在OracleEnterpriseManager頁面中,依次單擊【方案】→【數據庫對象】→【表】,如圖7-1所示,單擊【創建】按鈕。圖7-1表(2)在圖7-2所示頁面中,指定表組織,在此選擇【標準(按堆組織)】單選框,然后單擊【繼續】按鈕。圖7-2創建表:表組織(3)在圖7-3所示【一般信息】頁面中,按以下要求輸入內容。圖7-3【一般信息】頁面(4)在圖7-4所示【存儲】頁面中,指定存儲信息,如表空間、區數、空間使用情況、空閑列表、事物處理數、緩沖池和壓縮選項等內容。圖7-4【存儲】頁面(5)在圖7-5所示【選項】頁面中,指定啟用行移動、并行和高速緩存選項,然后單擊【確定】按鈕。圖7-5【選項】頁面7.7.2使用OEM收縮段 對表進行收縮段操作可以壓縮空間碎片,然后將恢復的空間釋放到表空間,以此節約空間使用。 使用OracleEnterpriseManager按以下步驟收縮段。(1)在圖7-6所示頁面中,搜索方案SYS中的表TABLE_1。選擇表TABLE_1,在【操作】下拉框中選擇【收縮段】,然后單擊【開始】按鈕。圖7-6搜索表(2)在圖7-7所示頁面中,指定收縮選項,在此選擇【壓縮段并釋放空間】單選框,然后單擊【繼續】按鈕。圖7-7收縮段(3)在圖7-8所示頁面中,指定作業名稱和調度選項,然后單擊【提交】按鈕。圖7-8調度(4)在圖7-9所示頁面中,顯示已經成功創建作業,可以看到調度程序作業正在運行。圖7-9調度程序作業7.7.3使用OEM刪除表 使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車庫消防泵安裝施工方案
- 物業公司員工工服管理制度
- 2026新疆農社面試題及答案大全
- 2026行為面試題目及最佳答案
- 2026陽江教資面試題目及答案
- 2026醫院總控招聘面試題及答案
- 2026影片分析面試題及答案解析
- (2026年)小學家長學校培訓管理制度
- 2026瑞士銀行行業市場分析競爭分析和投資評估行業運營規劃發展書版
- 學校校園欺凌行為懲戒工作制度
- 第一次月考試卷(Unit1-2)(含答案含聽力原文無聽力音頻)-2025-2026學年人教版PEP(三起)英語五年級上冊
- (正式版)DB23∕T 1318-2020 《黑龍江省建設施工現場安全生產標準化實施標準》
- 腹壁切口疝診療指南(2024版)解讀課件
- 建行授權管理辦法
- 晚期腫瘤病人護理
- 汽車維修廠安全生產教育培訓內容
- 咳嗽與咳痰講課件
- 退休醫生勞務合同協議
- 除氟藥劑采購合同協議
- GB/T 16439-2024交流伺服系統通用技術規范
- 消防設施自查報告
評論
0/150
提交評論