版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 Oracle數(shù)據(jù)庫數(shù)據(jù)表的創(chuàng)建及維護(hù) 邢慧芬 第8章 數(shù)據(jù)表對象n8.1 數(shù)據(jù)表概述n8.2 創(chuàng)建數(shù)據(jù)表n8.3 維護(hù)數(shù)據(jù)表n8.4 數(shù)據(jù)完整性和約束性n8.5小結(jié)第8章 數(shù)據(jù)表對象n8.1 數(shù)據(jù)表概述n8.2 創(chuàng)建數(shù)據(jù)表n8.3 維護(hù)數(shù)據(jù)表n8.4 數(shù)據(jù)完整性和約束性n8.5小結(jié)8.1 數(shù)據(jù)表概述n數(shù)據(jù)表(通常簡稱表)是Oracle數(shù)據(jù)庫中主要的數(shù)據(jù)存儲容器,表中的數(shù)據(jù)被組織成行和列。表中的每個(gè)列均有一個(gè)名稱,并且每個(gè)列都具有一個(gè)指定的數(shù)據(jù)類型和大小,比如,VARCHAR(30),TIMESTAMP(6)(一種時(shí)間類型,包括小數(shù)秒的信息)或NUMBER(12)。n在關(guān)系型數(shù)據(jù)庫中,表可以對
2、應(yīng)于現(xiàn)實(shí)世界中的實(shí)體(如,雇員、崗位等)或聯(lián)系(如,雇員工資)。在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),需要首先設(shè)計(jì)E-R圖(實(shí)體聯(lián)系圖),然后再將E-R圖轉(zhuǎn)變?yōu)閿?shù)據(jù)庫中的表。8.1 數(shù)據(jù)表概述n數(shù)據(jù)類型n常見基本類型(見課本)nROWID數(shù)據(jù)類型數(shù)據(jù)類型nROWID數(shù)據(jù)類型,稱為“偽列類型”,用于在oracle內(nèi)部保存表中的每條記錄的物理地址。通過ROWID來訪問數(shù)據(jù)記錄可以獲得最快的訪問速度。 ROWID字段是隱式的,使用必須顯字段是隱式的,使用必須顯示指定其名稱。示指定其名稱。第8章 數(shù)據(jù)表對象n8.1 數(shù)據(jù)表概述n8.2 創(chuàng)建數(shù)據(jù)表n8.3 維護(hù)數(shù)據(jù)表n8.4 數(shù)據(jù)完整性和約束性n8.5小結(jié)8.2 創(chuàng)建數(shù)
3、據(jù)表n8.2.1 數(shù)據(jù)表特性n8.2.2 創(chuàng)建數(shù)據(jù)表8.2.1 數(shù)據(jù)表特性n在Oracle中創(chuàng)建表時(shí),表的特性將決定系統(tǒng)如何創(chuàng)建表、如何在磁盤上存儲表、以及表創(chuàng)建后使用時(shí)的最終執(zhí)行方式等,接下來詳細(xì)講解表中常用的4個(gè)特性及其設(shè)置說明。n存儲參數(shù)n數(shù)據(jù)塊管理參數(shù)n重做日志參數(shù)n緩存參數(shù)8.2.1 數(shù)據(jù)表特性n一、存儲參數(shù)n可以通過STORAGE子句指定INITIAL參數(shù)nINITIAL參數(shù)用于為表指定分配的第一個(gè)盤區(qū)大小,以KB或MB為單位。8.2.1 數(shù)據(jù)表特性n二、數(shù)據(jù)塊管理參數(shù)nPCTFREE參數(shù)n用于指定數(shù)據(jù)庫中必須保留的最小空閑空間比例nPCTUSED參數(shù)n用于設(shè)置數(shù)據(jù)塊是否可用的界限
4、。為了使數(shù)據(jù)塊能夠被再次使用,已經(jīng)占用的存儲空間必須低于PCTUSED設(shè)置的比例。n說明: PCTFREE參數(shù)與PCTUSED參數(shù)的和必須等于或小于100.一般而言,兩個(gè)參數(shù)的和與100相差越大,存儲效率就越高。8.2.1 數(shù)據(jù)表特性n二、數(shù)據(jù)塊管理參數(shù)n當(dāng)UPDATE較多時(shí):推薦設(shè)置nPCTFREE=20,PCTUSED=40n當(dāng)INSERT和DELETE較多時(shí):推薦設(shè)置 nPCTFREE=5,PCTUSED=60nINITRANS參數(shù)n用于指定一個(gè)數(shù)據(jù)塊所允許的并發(fā)事務(wù)數(shù)目n在oracle 11g 中,對于單個(gè)數(shù)據(jù)塊而言,oracle默認(rèn)最大支持255個(gè)并發(fā)事務(wù)。8.2.1 數(shù)據(jù)表特性n三
5、、重做日志參數(shù)nNOLOGGING:DDL不會記錄到日志,但DML操作會記錄到日志nLOGGING:對表所有的操作都會記錄到日志中n四、緩存參數(shù)nCACHE:全表搜索時(shí),使得讀入的緩存塊放置到LRU列表中最近最常使用的一端(不是默認(rèn)的LRU列表中最近最少使用的一端),從而提高針對該表的查詢效率。8.2.2 創(chuàng)建數(shù)據(jù)表n基本語法格式:nCREATE TABLE ( , , )指定表空間數(shù)據(jù)表特性;n:所要定義的基本表的名字n:組成該表的各個(gè)屬性(列)n:涉及相應(yīng)屬性列的完整性約束條件n:涉及一個(gè)或多個(gè)屬性列的完整性約束條件 -表的創(chuàng)建表的創(chuàng)建students表表CREATE TABLE stud
6、ents ( stuno number(10) not null,-學(xué)號學(xué)號 stuname varchar2(8),-姓名姓名 sex char(2),-性別性別 age int,-年齡年齡 departno varchar2(2) not null,-系別編號系別編號 classno varchar2(4) not null,-班級編號班級編號 regdate date default sysdate-建檔日期建檔日期)tablespace users -表空間表空間storage(initial 256k) -指定為該表分配的第一個(gè)指定為該表分配的第一個(gè)盤區(qū)的大小盤區(qū)的大小pctfree
7、 20 -數(shù)據(jù)塊管理參數(shù)數(shù)據(jù)塊管理參數(shù)pctused 40 -數(shù)據(jù)塊管理參數(shù)數(shù)據(jù)塊管理參數(shù)initrans 10 -數(shù)據(jù)塊管理參數(shù),數(shù)據(jù)塊管理參數(shù),10個(gè)事務(wù)條目個(gè)事務(wù)條目nologging -對對DDL操作不產(chǎn)生日志操作不產(chǎn)生日志cache;-執(zhí)行全表搜索時(shí),將讀入的數(shù)據(jù)塊放置到執(zhí)行全表搜索時(shí),將讀入的數(shù)據(jù)塊放置到LRU中中最近最常使用的一端最近最常使用的一端8.2.2 創(chuàng)建數(shù)據(jù)表 Create table newTable as select * from .;如:如: create table NewEmp as select * from emp;nNewEmp 除了沒有鍵,其他的和除
8、了沒有鍵,其他的和emp一樣一樣n【例】CREATE TABLE myemp(id,name,sal,job,deptno) AS SELECT empno,ename,sal,job deptno FROM emp;第8章 數(shù)據(jù)表對象n8.1 數(shù)據(jù)表概述n8.2 創(chuàng)建數(shù)據(jù)表n8.3 維護(hù)數(shù)據(jù)表n8.4 數(shù)據(jù)完整性和約束性n8.5小結(jié)8.3 維護(hù)數(shù)據(jù)表n在創(chuàng)建表后,如果發(fā)現(xiàn)對表的定義有不滿意的地方,還可以對表進(jìn)行修改。這些修改操作包括增加或刪除表中的字段、改變表的存儲參數(shù)設(shè)置以及對表進(jìn)行增加、刪除和重命名等操作。n增加和刪除字段n修改字段n重命名表n改變表空間和存儲參數(shù)n修改表的狀態(tài)8.3 維
9、護(hù)數(shù)據(jù)表n一、修改基本表n增加、刪除和修改字段的基本語法格式:ALTER TABLE ADD 完整性約束 DROP COLUMN MODIFY ;n:要修改的基本表nADD子句:增加新列和新的完整性約束條件nDROP子句:刪除指定的完整性約束條件nMODIFY子句:用于修改列名和數(shù)據(jù)類型8.3 維護(hù)數(shù)據(jù)表n二、刪除基本表nDROP TABLE casecade constraints; n基本表刪除后,數(shù)據(jù)、表上的觸發(fā)器、索引都刪除。n說明:在oracle中基本表刪除后,在表上的視圖或PL/SQL塊往往仍然保留,但處于不可用狀態(tài),無法引用。8.3 維護(hù)數(shù)據(jù)表n二、刪除基本表n當(dāng)表被刪除后,僅僅
10、是從數(shù)據(jù)字典中除名,可以用FLASHBACK TABLE語句(閃回技術(shù))進(jìn)行還原。n若用戶想在刪除表時(shí)立即釋放空間,并且不希望將其放置到回收站中,則可以在DROP TABLE語句中使用purge選項(xiàng),這樣該表就被徹底刪除了8.3 維護(hù)數(shù)據(jù)表n三、重命名表n語法格式:nALTER TABLE table_old_name RENAME TO table_new_name;n例如:SQLalter table students to stu_tab;8.3 維護(hù)數(shù)據(jù)表n四、改變表空間和存儲參數(shù)n修改表空間nAlter table students move tablespace tbsp_2;n說
11、明:由于表空間對應(yīng)的數(shù)據(jù)文件不同,所以在移動表空間時(shí)會將數(shù)據(jù)在物理上移動到另一個(gè)數(shù)據(jù)文件中n修改存儲參數(shù)nalter table students pctfree 25 pctused 45;8.3 維護(hù)數(shù)據(jù)表n五、修改表的狀態(tài)(oracle11g新特性)nSQLalter table students read only;-只讀狀態(tài)nSQLalter table students read write;-可讀寫狀態(tài)第8章 數(shù)據(jù)表對象n8.1 數(shù)據(jù)表概述n8.2 創(chuàng)建數(shù)據(jù)表n8.3 維護(hù)數(shù)據(jù)表n8.4 數(shù)據(jù)完整性和約束性n8.5小結(jié)8.4 數(shù)據(jù)完整性和約束性n定義:n完整性約束是數(shù)據(jù)庫模式定義
12、時(shí)指定的約束條件,它限制某些數(shù)據(jù)的情形在數(shù)據(jù)庫中出現(xiàn)。nORACLE強(qiáng)制執(zhí)行完整性約束,保證只有合法的數(shù)據(jù)存儲于數(shù)據(jù)庫中。n指定和執(zhí)行完整性約束的時(shí)機(jī)n當(dāng)DBA定義數(shù)據(jù)庫模式時(shí)n當(dāng)數(shù)據(jù)庫執(zhí)行應(yīng)用程序時(shí),DBMS檢查數(shù)據(jù)是否違法約束。8.4 數(shù)據(jù)完整性和約束性n約束類型n主碼約束n外碼約束n用戶定義的約束8.4 數(shù)據(jù)完整性和約束性n一、主碼約束n定義:主碼約束是指關(guān)系具有一個(gè)特定的最小字段集合,通過它可以唯一確定每條記錄。n其中包括兩個(gè)方面n對于合法關(guān)系實(shí)例中的兩條不同記錄,其碼的字段值不會相同。n不存在碼字段的真子集可以唯一確定每條記錄8.4 數(shù)據(jù)完整性和約束性n例如 CREATE TABLE
13、 COURSE( Cno CHAR(5) , Cname CHAR(10) , Teacher CHAR(10), Cpno CHAR (5), Ccredit INT constraint cno_pk PRIMARY KEY(Cno);n上面定義中,我們將cno作為碼,并把這約束命名為cno_pk ,當(dāng)違反約束時(shí),系統(tǒng)能夠返回約束名。n如果不指定約束命名cno_pk ,則可以省略constraint,將采用系統(tǒng)默認(rèn)名稱8.4 數(shù)據(jù)完整性和約束性n聯(lián)合主鍵(兩個(gè)或兩個(gè)以上的列組成)nCREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int,
14、 Primary key (Sno, Cno), );n違法操作包括n碼值為空值n碼值不唯一8.4 數(shù)據(jù)完整性和約束性n二、外碼約束n定義:存儲在某個(gè)表中的字段是其他表中的碼,并且需要保證相互數(shù)據(jù)的一致性。n其中包括兩個(gè)方面n表中某個(gè)字段在其他表中是碼n該字段的數(shù)據(jù)必須在后一個(gè)表中存在或者為null8.4 數(shù)據(jù)完整性和約束性n例如: CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, constraint union_pk Primary key (Sno, Cno), constraint sno_fk FOREIGN KEY(Sn
15、o) REFERENCES S(Sno), constraint cno_fk FOREIGN KEY(Cno) REFERENCES C(Cno);n這里SC的外碼sno、cno分別對應(yīng)S表、C表中的主碼sno、cno。n當(dāng)產(chǎn)生可能導(dǎo)致兩個(gè)值不一致的操作時(shí),系統(tǒng)可以通過刪除或者拒絕等相應(yīng)來維持完整性。8.4 數(shù)據(jù)完整性和約束性n三、用戶自定義約束n用戶可以自行定義滿足自己需要的約束n建表時(shí)直接定義n或者通過觸發(fā)起來定義用戶的完整性n常見的約束包括nNOT NULL約束nUNIQUE約束nCHECK約束8.4 數(shù)據(jù)完整性和約束性n例如 Create table empl( empno numb
16、er, ename varchar2(10) constraint u_ename UNIQUE, );n這里我們通過UNIQUE定義了保證ename唯一性的約束。n例如 Create table empl(empno number, ejob varchar2(10) constraints nn_ejob NOT NULL, );n這里我們通過NOT NULL定義了保證ename不會為空的約束。8.4 數(shù)據(jù)完整性和約束性n例如 Create table empl( empno number, salary number(10) constraints sal_ck CHECK(salary
17、700), )n這里我們通過CHECK定義了保證salary大于700的約束,其中括號里 的內(nèi)容為布爾表達(dá)式。8.4 數(shù)據(jù)完整性和約束性nPRIMARY KEY與 UNIQUE的區(qū)別?n定義比主鍵約束弱化nPrimary key在建立的時(shí)候會默認(rèn)地建立此field的索引,且此primary key可以作為作為另外的表的foreign key,n再者primary key跟unique得區(qū)別區(qū)別是Primary key 一定是not null,而unique則沒有此限制n比如:各種會員表的QQ、Email等列值是不允許重復(fù)的,但用戶可能不提供,這樣就必須允許為空值8.4 數(shù)據(jù)完整性和約束性n禁用
18、和激活約束n為什么要禁用約束?n因?yàn)榧s束的存在會降低插入和更改數(shù)據(jù)的效率,系統(tǒng)必須確認(rèn)這些數(shù)據(jù)是否滿足定義的約束條件,為提高運(yùn)行效率,就可以禁用這些約束。8.4 數(shù)據(jù)完整性和約束性n禁用和激活約束n禁用約束n1、在定義約束時(shí)禁用n例 create table Student ( StuCode varchar2(4) not null, StuName varchar2(10) not null, Age int constraint Age_CK check (age 0 and age alter table course disable constraint cno_pk keep index;/*cno_pk為主鍵約束,keep index表示在刪除約束時(shí),保留對應(yīng)的唯一索引*/n說明:n在禁用主鍵約束時(shí),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑材料庫存租賃合同范本2篇
- 2025年度礦山開采挖掘機(jī)兼操作工租賃合同6篇
- 二零二五年度抵債資產(chǎn)置換與權(quán)益分配協(xié)議3篇
- 二零二五年度泰州存量房買賣合同范本3篇
- 二零二五年度建筑工人勞動保護(hù)及健康檢查合同書2篇
- 二零二五年度房屋租賃代理服務(wù)合同范本
- 種蘿卜主題課程設(shè)計(jì)
- 海南政法職業(yè)學(xué)院《日語聽說實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 海南醫(yī)學(xué)院《運(yùn)籌與優(yōu)化》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度護(hù)坡生態(tài)修復(fù)與施工總承包合同5篇
- 三年內(nèi)無重大違法記錄聲明
- 鉗工初級工考試題含答案
- 2024-2025學(xué)年小學(xué)道德與法治二年級下冊統(tǒng)編版(部編版)(2024)教學(xué)設(shè)計(jì)合集
- 高等數(shù)學(xué)教材(文科)
- AutoCAD快速入門資料
- 新高考背景下2025年高考思想政治一輪復(fù)習(xí)策略講座
- 初中音樂欣賞課型互動教學(xué)策略的構(gòu)建及實(shí)踐
- 《新媒體運(yùn)營》高職新媒體運(yùn)營全套教學(xué)課件
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教程 課件全套 王曉明 第1-11章 創(chuàng)新與創(chuàng)新能力 -中國國際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計(jì)劃競賽
- 2024年蘭州大學(xué)專業(yè)課《金融學(xué)》科目期末試卷B(有答案)
- 初中物理寶典
評論
0/150
提交評論