freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle模式對象基礎(chǔ)教案-文庫吧

2025-02-04 10:57 本頁面


【正文】 L函數(shù),和 ROWID、ROWNUM等偽列;n 一個列可以定義多個檢查約束;n 檢查約束可以是列級約束,也可以是表級約束。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 概念n FOREIGN KEY約束指定某一個列或一組列作為外部鍵,其中,包含外部鍵的表稱為從表,包含外部鍵所引用的主鍵或唯一鍵的表稱主表。n 系統(tǒng)保證從表在外部鍵上的取值要么是主表中某一個主鍵值或唯一鍵值,要么取空值。以此保證兩個表之間的連接,確保了實體的參照完整性。FOREIGN KEYOracle10g數(shù)據(jù)庫基礎(chǔ)教程p 特點n 定義外鍵約束的列的取值要么是主表參照列的值,要么為空;n 外鍵列只能參照于主表中的主鍵約束列或惟一性約束列;n 可以在一列或多列組合上定義外鍵約束;n 外鍵約束可以是列級約束,也可以是表級約束。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程NULL/NOT NULL p 特點n 在同一個表中可以定義多個 NOT NULL約束;n 只能是列級約束。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程( 2)定義約束p 列約束n 對某一個特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔 ,不必指定列名 ;p 表約束n 與列定義相互獨立,不包括在列定義中。通常用于對多個列一起進行約束,與列定義用 ’ ,’ 分隔。定義表約束時必須指出要約束的那些列的名稱。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 定義列級約束的語法為:n [CONSTRAINT constraint_name] n constraint_type [conditioin]。 p 定義表級約束的語法為:n [CONSTRAINT constraint_name]n constraint_type([column1_name,n column2_name,… ]|[condition])。p 注意n Oracle約束通過名稱進行標(biāo)識。在定義時可以通過CONSTRAINT關(guān)鍵字為約束命名。如果用戶沒有為約束命名, Oracle將自動為約束命名。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 創(chuàng)建一個 student表。n CREATE TABLE student(n sno NUMBER(6) CONSTRAINT S_PK n PRIMARY KEY,n sname VARCHAR2(10) NOT NULL,n sex CHAR(2) CONSTRAINT S_CK1 n CHECK(sex in(39。M39。, 39。F39。)),n sage NUMBER(6,2),n CONSTRAINT S_CK2 CHECK(n sage between 18 and 60)n )。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 創(chuàng)建一個 course表,同時為主鍵約束列上的唯一性索引設(shè)置存儲位置和存儲參數(shù),語句為 n CREATE TABLE course(n o NUMBER(6) PRIMARY KEY,n ame CHAR(20) UNIQUE USING INDEX n TABLESPACE indx STORAGE(n INITIAL 64K NEXT 64K)n )。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 創(chuàng)建一個 SC表,語句為n CREATE TABLE SC(n sno NUMBER(6) REFERENCES student(sno),n o NUMBER(6) REFERENCES course(o),n grade NUMBER(5,2),n CONSTRAINT SC_PK PRIMARY KEY(sno, o) n )。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 定義列級 FOREIGN KEY約束n [CONSTRAINT constraint_name] n [FOREIGN KEY] n REFERENCES ref_table_name (column_name,… )p 定義表級 FOREIGN KEY約束n [CONSTRAINT constraint_name] n FOREIGN KEY (column_name,… ) n REFERENCES ref_table_name (column_name,… ) n [ON DELETE CASCADE|SET NULL]。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p ON DELETE CASCADEn 刪除子表中所有相關(guān)記錄p ON DELETE SET NULLn 將子表中相關(guān)記錄的外鍵約束列值設(shè)置為 NULLp ON DELETE RESTRICTEDn 受限刪除,即如果子表中有相關(guān)子記錄存在,則不能刪除主表中的父記錄,默認引用方式。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p DEFAULTn 如果用戶在插入新行時沒有顯示為列提供數(shù)據(jù),系統(tǒng)將默認值賦給該列。n 語法[CONSTRAINT 約束名 ] DEFAULT 表達式Oracle10g數(shù)據(jù)庫基礎(chǔ)教程( 3)添加和刪除約束 p 添加約束語法為:n ALTER TABLE table_name n ADD [CONSTRAINT constraint_name]n constraint_type(column1_name,column2_name,… )[condition]。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 創(chuàng)建一個 player表n CREATE TABLE player(n ID NUMBER(6),n sno NUMBER(6),n sname VARCHAR2(10),n sage NUMBER(6,2),n resume VARCHAR2(1000)n )。 p 添加主鍵約束n ALTER TABLE player ADD CONSTRAINT P_PK PRIMARY KEY(ID)。p 添加惟一性約束n ALTER TABLE player ADD CONSTRAINT P_UK UNIQUE(sname)。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 添加檢查約束n ALTER TABLE player ADD CONSTRAINT P_CK CHECK(sage BETWEEN 20 AND 30)。p 添加外鍵約束n ALTER TABLE playern ADD CONSTRAINT P_FK FOREIGN KEY(sno)REFERENCES student(sno) ON DELETE CASCADE。p 添加空 /非空約束n 為表列添加空 /非空約束時必須使用 MODIFY子句代替 ADD子句n ALTER TABLE player MODIFY resume NOT NULL。n ALTER TABLE player MODIFY resume NULL。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 刪除約束n 使用 ALTER TABLE… DROP語句刪除已經(jīng)定義的約束。n 可以通過直接指定約束的名稱來刪除約束,或指定約束的內(nèi)容來刪除約束。p 刪除指定內(nèi)容的約束n ALTER TABLE player DROP UNIQUE(sname)。p 刪除指定名稱的約束n ALTER TABLE player DROP CONSTRAINT P_CK。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 刪除主鍵約束、唯一性約束的同時將刪除唯一性索引,如果要在刪除約束時保留唯一性索引,則必須在 ALTER TABLE… DORP 語句中指定 KEEP INDEX 子句。n ALTER TABLE player DROP CONSTRAINT P_UK KEEP INDEX。p 如果要在刪除約束的同時,刪除引用該約束的其他約束,則需要在 ALTER TABLE… DORP語句中指定 CASCADE關(guān)鍵字。n ALTER TABLE player DROP CONSTRAINT P_PK CASCADE。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程( 4)設(shè)置約束狀態(tài) p 激活( ENABLE)狀態(tài)n 當(dāng)約束處于激活狀態(tài)時,約束將對表的插入或更新操作進行檢查,與約束規(guī)則沖突的操作被回退。p 禁用( DISABLE)狀態(tài)n 當(dāng)約束處于禁用狀態(tài)時,約束不起作用,與約束規(guī)則沖突的插入或更新操作也能夠成功執(zhí)行。p 利用 SQL*Loader從外部數(shù)據(jù)源提取大量數(shù)據(jù)到數(shù)據(jù)庫中;p 進行數(shù)據(jù)庫中數(shù)據(jù)的大量導(dǎo)入、導(dǎo)出操作;p 針對表執(zhí)行一項包含大量數(shù)據(jù)操作的批處理工作時。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 禁用約束 n 在定義約束時,可以將約束設(shè)置為禁用狀態(tài),默認為激活狀態(tài)。也可以在約束創(chuàng)建后,修改約束狀態(tài)為禁用。n 創(chuàng)建表時禁用約束p CREATE TABLE S (SNO CHAR(11) PRIMARY KEY DISALBE,… )。n 利用 ALTER TABLE… DISABLE禁用約束p ALTER TABLE STUDENT DISABLE CONSTRAINT S_CK1。p ALTER TABLE STUDENT DISABLE UNIQUE (sname)。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程n 禁用主鍵約束、惟一性約束時,會刪除其對應(yīng)的惟一性索引,而在重新激活時, Oracle為它們重建惟一性索引。若在禁用約束時,保留對應(yīng)的惟一性索引,可使用 ALTER TABLE… DISABLE… KEEP INDEX語句。p ALTER TABLE STUDENT DISABLE UNIQUE (sname) KEEP INDEX。p ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX。n 若當(dāng)前約束 (主鍵約束、惟一性約束 )列被引用,則需要使用 ALTER TABLE… DISABLE… CASCADE語句同時禁用引用該約束的約束。p ALTER TABLE STUDENT DISABLE PRIMARY KEY KEEP INDEX CASCADE。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p激活約束n 創(chuàng)建或添加約束時,默認為激活狀態(tài)。n 利用 ALTER TABLE… ENABLE… 語句激活約束p ALTER TABLE STUDENT ENABLE UNIQUE (sname)。n 禁用主鍵約束、惟一性約束時,會刪除其對應(yīng)的惟一性索引,而在重新激活時, Oracle為它們重建惟一性索引,可以為索引設(shè)置存儲位置和存儲參數(shù) (索引與表盡量分開存儲 )。p ALTER TABLE STUDENT ENABLE PRIMARY KEY p USING INDEX TABLESPACE indx STORAGE(INITIAL 32K NEXT 16K)。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 通過 ALTER TABLE … MODIFY … DISABLE| ENABLE 語句改變約束狀態(tài)n ALTER TABLE STUDENT MODIFY CONSTRAINT S_CK2 DISABLE。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程 ( 5)約束的延遲檢查 p 默認情況下,在表中的約束都是不可延遲約束,Oracle在一條 DML語句執(zhí)行完畢之后立即進行約束檢查(除非禁用)。 p 創(chuàng)建約束時可以顯式使用 DEFERRABLE關(guān)鍵字,創(chuàng)建可延遲的約束。p INITIALLY IMMEDIATE 或 INITIALLY DEFERRED說明可延 遲約 束在初始狀 態(tài) 下是立即 檢查還 是延遲檢查p 如果在定義約束時設(shè)定為不可延遲,則約束創(chuàng)建后不能更改其可延遲性。只有創(chuàng)建時設(shè)定為可延遲的約束,創(chuàng)建后才能更改其可延遲性。 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 創(chuàng)建兩個表,其約束都是可延遲的。n CREATE TABLE new_dept(n deptno NUMBER PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE,n dname CHAR(11) UNIQUEn )。 n CREATE TABLE new_emp(n empno NUMBER PRIMARY KEY,n ename CHAR(11),n deptno NUMBER CONSTRAINT NE_FK REFERENCES new_dept(deptno)n ON DELETE CASCADE DEFERRABLEn )。Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 由于外鍵約束的作用,執(zhí)行下面語句時會產(chǎn)時錯誤。n INSERT INTO new_emp VALUES(1,39。ZHANG39。,11)。n *n ERROR 位于第 1 行 :n ORA02291: 違反完整約束條件 () 未找到父項關(guān)鍵字 Oracle10g數(shù)據(jù)庫基礎(chǔ)教程p 將 new_emp表的外鍵約束檢查
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1