《數(shù)據(jù)庫技術(shù)》課件第10章 表及約束3.0_第1頁
《數(shù)據(jù)庫技術(shù)》課件第10章 表及約束3.0_第2頁
《數(shù)據(jù)庫技術(shù)》課件第10章 表及約束3.0_第3頁
《數(shù)據(jù)庫技術(shù)》課件第10章 表及約束3.0_第4頁
《數(shù)據(jù)庫技術(shù)》課件第10章 表及約束3.0_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

10表及約束創(chuàng)建簡單的表createtablet(aint,bchar(15));createtablet(aint,bchar(15))

tablespacetbs普通用戶創(chuàng)建表,并未分配空間添加記錄時,才對表分配空間

2015-813-2Oracle數(shù)據(jù)庫系統(tǒng)原理-第13章位圖索引約束主鍵(primarykey)列值不能為空也不能重復(fù)。唯一(unique)外鍵(foreignkey)列值要匹配于其指向的主表的相應(yīng)列值。檢查(check)列值的限制條件。非空(notnull)默認(rèn)(default)添加記錄時,若未指定列值,則取默認(rèn)約束中的值。2015-810-3Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束附加約束的位置列級約束表級約束2015-810-4Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束附加約束的各種語法形式列級約束,未指定名稱SQL>createtablet12(3aintprimarykey,4bint5)6/列級約束,指定名稱SQL>createtablet22(3aintconstraintpk_testprimarykey,4bint5)6/2015-810-5Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束附加約束的各種語法形式表級約束,未指定名稱SQL>createtablet32(3aint,4bint,5primarykey(a)6)7/表級約束,指定名稱SQL>createtablet42(3aint,4bint,5constraintpk_testprimarykey(a)6)7/2015-810-6Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束幾點主意多列復(fù)合主鍵或多列唯一約束只能使用表級約束。列級檢查約束不能出現(xiàn)其他列名,表級檢查約束可以引用表中任何列。非空約束只能附加在列級而不能附加在表級。2015-810-7Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束Check約束示例SQL>createtablet6

2(

3aintprimarykey,

4bint,

5constraintck_testcheck(b>10)

6)

7/2015-810-8Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束外鍵約束示例創(chuàng)建主表p,a列為主鍵SQL>createtablep(aintprimarykey,bint);對c表的y列附加表級外鍵約束SQL>createtablec32(3xint,4yint,5constraintfk_cforeignkey(y)referencesp(a)6)7/2015-810-9Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束外鍵的約束作用c表中的y列的值要匹配于p表中a列的值。p表中被引用到的記錄不能刪除,被引用的a列的值也不能修改。2015-810-10Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束附加外鍵時的ondelete子句ondeletecascade子表中的對應(yīng)記錄會被級聯(lián)刪除。ondeletesetnull把外鍵值設(shè)置為null。Oracle不支持onupdate子句2015-810-11Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束附加ondelete子句SQL>createtablec5

2(

3xintprimarykey,

4yint,

5foreignkey(y)referencesp(b)

6ondeletecascade--或setnull

7)

8/2015-810-12Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束對表增加約束表級形式altertabletable_name

addconstraintconstraint_namecostraintt_clause列級形式altertabletable_name

modify

column_nameconstraintconstraint_nameconstraint_clause2015-810-13Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束對表增加約束示例emp表的sal列增加檢查約束altertableempaddconstraintck_salcheck(sal<8000);salgrade表的grade列增加主鍵約束altertablesalgradeaddconstraintpk_sgprimarykey(grade);dept表的dname列增加唯一約束altertabledeptaddconstraintuq_dnameunique(dname);2015-810-14Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束刪除約束普通用法altertabletable_namedropconstraintconstraint_name也可以通過修改列屬性實現(xiàn)SQL>altertableempmodifysalnull;2015-810-15Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束禁用和啟用約束禁用約束altertableempdisableconstraintfk_deptno;啟用約束altertableempenableconstraintfk_deptno;啟用時不檢查原數(shù)據(jù)altertableempenablenovalidateconstraintfk_deptno;啟用時檢查原數(shù)據(jù)(默認(rèn))altertableempenablevalidateconstraintfk_deptno;2015-810-16Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束查詢約束信息查看用戶自己的約束user_constraintsuser_cons_columnssystem用戶查看數(shù)據(jù)庫中的任何約束dba_constraintsdba_cons_columns注意:兩者的區(qū)別是xxx_constraints不包含列的信息2015-810-17Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束修改表的結(jié)構(gòu)修改表名altertabledeptrenametodepartment;renamedepartmenttodept;修改列名altertabledeptrenamecolumnloctolocation;添加列altertabledeptaddphone_numberchar(12)刪除列altertabledeptdropcolumnphone_number修改列類型altertabledeptmodify(deptnonumber(3),locvarchar2(20));2015-810-18Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束清空表truncatetableemp;truncate與delete的區(qū)別truncate屬于DDL語句,執(zhí)行后事務(wù)自動提交,不能回滾,delete操作是DML語句,刪除的數(shù)據(jù)可以執(zhí)行rollback命令恢復(fù)回來。truncate通過釋放表占用的空間刪除數(shù)據(jù),產(chǎn)生的重做數(shù)據(jù)很少。delete操作刪除的數(shù)據(jù)不會釋放空間,刪除的記錄信息都會記入重做日志文件,產(chǎn)生的重做數(shù)據(jù)一般會比刪除的數(shù)據(jù)量大。2015-810-19Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束刪除表droptableemp;刪除表后,其數(shù)據(jù)并未清除??梢园褎h除的表從回收站中恢復(fù)出來。2015-810-20Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束回收站Oracle的回收站實際上是一個數(shù)據(jù)字典表,其中存儲了刪除的數(shù)據(jù)庫對象信息,其功能與操作系統(tǒng)的回收站功能類似2015-810-21Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束與回收站有關(guān)的數(shù)據(jù)字典視圖user_recyclebinrecyclebin為其同義詞dba_recyclebin主要列object_name:對象被刪除后,在回收站中的新名稱。original_name:對象刪除之前的原名稱。droptime:對象的刪除時間。2015-810-22Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束查詢回收站中的數(shù)據(jù)SQL>selectobject_name,original_namefromuser_recyclebin;OBJECT_NAMEORIGINAL_NAME--------------------------------------------------------------BIN$Hiv6MN2ASTuYRGIyW/YZOg==$0PK_EMPBIN$+1lzYAAIQ/217zwnNdK59w==$0EMP2015-810-23Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束查詢刪除表中的數(shù)據(jù)被刪除后,轉(zhuǎn)移到回收站中的對象還是屬于原用戶的,可以以其回收站中的名稱來查詢其原數(shù)據(jù)。select*from"BIN$+1lzYAAIQ/217zwnNdK59w==$0";如果system用戶查詢回收站中的表,則需附加表的原屬主。select*fromscott."BIN$+1lzYAAIQ/217zwnNdK59w==$0";2015-810-24Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束恢復(fù)被刪除的表指定原表名flashbacktableemptobeforedrop;指定回收站中的表名flashbacktable"BIN$Z0kp5fISQka+U+K9rsbc5A==$0"tobeforedrop;恢復(fù)后改為其他表名flashbacktablettobeforedroprenametot1;2015-810-25Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束不使用回收站附加了purge關(guān)鍵字,直接將表刪除SQL>droptableemppurge;關(guān)閉回收站功能SQL>altersystemsetrecyclebin=offscope=spfile;2015-810-26Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束清空回收站purgetable命令清空指定表SQL>droptablebonus;SQL>purgetable"BIN$Po/lxosvQrOAjvrDHMUWyg==$0";2015-810-27Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束回收站的幾個注意事項sys或system用戶刪除的對象不會放入回收站??臻e空間不夠時,回收站中的對象所占用的空間會自動釋放掉,分配給需要空間的其他對象?;謴?fù)表時,其索引也會自動恢復(fù),但會沿用回收站中的名稱??梢詧?zhí)行下面命令改為原名稱。SQL>alterindex"BIN$xgIxUJLlRj+433nY+RLpMA==$0"2renametopk_emp3/2015-810-28Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束建表操作的背后執(zhí)行COMMIT操作。檢查用戶是否有建表權(quán)限。確認(rèn)表要創(chuàng)建到的表空間是否存在。確認(rèn)在當(dāng)前模式內(nèi)不存在與新表同名的對象。對相關(guān)數(shù)據(jù)字典基表添加新表的定義。若建表操作成功,最后執(zhí)行COMMIT操作,若未成功則執(zhí)行ROLLBACK操作。2015-810-29Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束Oracle數(shù)據(jù)庫對象table,indexviewsequencesynonym2015-810-30Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束視圖--view視圖被定義為一個查詢,像表一樣操作視圖。視圖的作用:簡化查詢編寫,把查詢限制到列創(chuàng)建視圖語法createviewv_empasselectename,salfromemp修改視圖

Alterviewas…刪除視圖dropviewv_emp查詢視圖Select*fromv_emp_sal2015-810-31Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束同義詞--synonymsystem用戶創(chuàng)建同義詞createsynonymempforscott.empsystem用戶使用同義詞進(jìn)行查詢Select*fromemp2015-810-32Oracle數(shù)據(jù)庫系統(tǒng)原理-第10章表及約束序列--sequence屬于公用對象一般用于自增列創(chuàng)建序列CREATESEQUENCEsequence[INCREMENTBYn][STARTWITHn][{MAXVALUEn|NOMAXVALUE}][{MINVALUEn|NOMINVALUE}][{CYCLE|NOCYCLE}][{

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論