成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Oracle PL/SQL語言初級教程之完整性約束

瀏覽:169日期:2023-11-20 19:56:55
完整性約束 完整性約束用于增強數據的完整性,Oracle提供了5種完整性約束:  Check  NOT NULL  Unique  Primary  Foreign key完整性約束是一種規則,不占用任何數據庫空間。完整性約束存在數據字典中,在執行SQL或PL/SQL期間使用。用戶可以指明約束是啟用的還是禁用的,當約束啟用時,他增強了數據的完整性,否則,則反之,但約束始終存在于數據字典中。禁用約束,使用ALTER語句ALTER TABLE table_name DISABLE CONSTRAINT constraint_name; 或ALTER TABLE policies DISABLE CONSTRAINT chk_gender 假如要重新啟用約束:ALTER TABLE policies ENABLE CONSTRAINT chk_gender 刪除約束ALTER TABLE table_name DROP CONSTRAINT constraint_name 或ALTER TABLE policies DROP CONSTRAINT chk_gender; Check 約束在數據列上Check 約束需要 一個非凡的布爾條件或者將數據列設置成TRUE,至少一個數據列的值是NULL,Check約束用于增強表中數據內容的簡單的商業規則。用戶使用Check約束保證數據規則的一致性。Check約束可以涉及該行同屬Check約束的其他數據列但不能涉及其他行或其他表,或調用函數SYSDATE,UID,USER,USERENV。假如用戶的商業規則需要這類的數據檢查,那么可以使用觸發器。Check約束不保護LOB數據類型的數據列和對象、嵌套表、VARRY、ref等。單一數據列可以有多個Check約束保護,一個Check約束可以保護多個數據列。創建表的Check約束使用CREATE TABLE語句,更改表的約束使用ALTER TABLE語句。語法:CONSTRAINT [constraint_name] CHECK (condition); Check約束可以被創建或增加為一個表約束,當Check約束保護多個數據列時,必須使用表約束語法。約束名是可選的并且假如這個名字不存在,那么oracle將產生一個以SYS_開始的唯一的名字。例:CREATE TABLE policies(policy_id NUMBER,holder_name VARCHAR2(40),gender VARCHAR2(1) constraint chk_gender CHECK (gender in ('M','F'),marital_status VARCHAR2(1),date_of_birth DATE,constraint chk_marital CHECK (marital_status in('S','M','D','W')));NOT NULL約束NOT NULL約束應用在單一的數據列上,并且他保護的數據列必須要有數據值。缺省狀況下,ORACLE答應任何列都可以有NULL值。某些商業規則要求某數據列必須要有值,NOT NULL約束將確保該列的所有數據行都有值。例:CREATE TABLE policies(policy_id NUMBER,holder_name VARCHAR2(40) NOT NULL,gender VARCHAR2(1),marital_status VARCHAR2(1),date_of_birth DATE NOT NULL); 對于NOT NULL的ALTER TABLE語句與其他約束稍微有點不同。ALTER TABLE policies MODIFY holder_name NOT NULL 唯一性約束(Unique constraint)唯一性約束可以保護表中多個數據列,保證在保護的數據列中任何兩行的數據都不相同。唯一性約束與表一起創建,在唯一性約束創建后,可以使用ALTER TABLE語句修改。語法:column_name data_type CONSTRAINT constraint_name UNIQUE 假如唯一性約束保護多個數據列,那么唯一性約束要作為表約束增加。語法如下:CONSTRAINT constraint_name (column) UNIQUE USING INDEX TABLESPACE (tablespace_name) STORAGE (stored clause)唯一性約束由一個B-tree索引增強,所以可以在USING子串中為索引使用非凡特征,比如表空間或存儲參數。CREATE TABLE語句在創建唯一性約束的同時也給目標數據列建立了一個唯一的索引。CREATE TABLE insured_autos(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,vin VARCHAR2(10),coverage_begin DATE,coverage_term NUMBER,CONSTRAIN unique_auto UNIQUE (policy_id,vin) USING INDEX TABLESPACE index STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0));用戶可以禁用未以性約束,但他仍然存在,禁用唯一性約束使用ALTER TABLE 語句ALTER TABLE insured_autos DISABLE CONSTRAIN unique_name;刪除唯一性約束,使用ALTER TABLE....DROP CONSTRAIN語句ALTER TABLE insured_autos DROP CONSTRAIN unique_name;注重用戶不能刪除在有外部鍵指向的表的唯一性約束。這種情況下用戶必須首先禁用或刪除外部鍵(foreign key)。刪除或禁用唯一性約束通常同時刪除相關聯的唯一索引,因而降低了數據庫性能。經常刪除或禁用唯一性約束有可能導致丟失索引帶來的性能錯誤。要避免這樣錯誤,可以采取下面的步驟:1、在唯一性約束保護的數據列上創建非唯一性索引。2、添加唯一性約束主鍵(Primary Key)約束表有唯一的主鍵約束。表的主鍵可以保護一個或多個列,主鍵約束可與NOT NULL約束共同作用于每一數據列。NOT NULL約束和唯一性約束的組合將保證主鍵唯一地標識每一行。像唯一性約束一樣,主鍵由B-tree索引增強。創建主鍵約束使用CREATE TABLE語句與表一起創建,假如表已經創建了,可以使用ALTER TABLE語句。CREATE TABLE policies(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,holder_name VARCHAR2(40),gender VARCHAR2(1),marital_status VARCHAR2(1),date_of_birth DATE);與唯一性約束一樣,假如主鍵約束保護多個數據列,那么必須作為一個表約束創建。CREATE TABLE insured_autos(policy_id NUMBER,vin VARCHAR2(40),coverage_begin DATE,coverage_term NUMBER,CONSTRAINT pk_insured_autos PRIMARY KEY (policy_id,vin)USING INDEX TABLESPACE indexSTORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0));禁用或刪除主鍵必須與ALTER TABLE 語句一起使用ALTER TABLE policies DROP PRIMARY KEY;或ALTER TABLE policies DISABLE PRIMARY KEY;外部鍵約束(Foreign key constraint)外部鍵約束保護一個或多個數據列,保證每個數據行的數據包含一個或多個null值,或者在保護的數據列上同時擁有主鍵約束或唯一性約束。引用(主鍵或唯一性約束)約束可以保護同一個表,也可以保護不同的表。與主鍵和唯一性約束不同外部鍵不會隱式建立一個B-tree索引。在處理外部鍵時,我們經常使用術語父表(parent table)和子表(child table),父表表示被引用主鍵或唯一性約束的表,子表表示引用主鍵和唯一性約束的表。創建外部鍵使用CREATE TABLE語句,假如表已經建立了,那么使用ALTER TABLE語句。CREATE TABLE insured_autos (policy_id NUMBER CONSTRAINT policy_fkREFERENCE policies(policy_idON DELETE CASCADE,vin VARCHAR2(40),coverage_begin DATE,coverage_term NUMBER,make VARCHAR2(30),model VARCHAR(30),year NUMBER,CONSTRAIN auto_fk FROEIGN KEY (make,model,year)REFERENCES automobiles (make,model,year)ON DELETE SET NULL);ON DELETE子串告訴ORACLE假如父紀錄(parent record)被刪除后,子記錄做什么。缺省情況下禁止在子記錄還存在的情況下刪除父紀錄。外部鍵和NULL值在外部鍵約束保護的數據列中NULL值的處理可能產生不可預料的結果。ORACLE 使用ISO standar Match None規則增強外部鍵約束。這個規則規定假如任何外部鍵作用的數據列包含有一個NULL值,那么任何保留該鍵的數據列在父表中沒有匹配值。比如,在父表AUTOMOBILES中,主鍵作用于數據列MAKE,MODEL,YEAR上,用戶使用的表INSURED_AUTOS有一個外部約束指向AOTOMOBILES,注重在INSURES_AUTOS中有一數據行的MODEL列為NULL值,這一行數據已經通過約束檢查,即使MAKE列也沒有顯示在父表AUTOMOBILES中,如下表:表1 AUTOMOBILESMAKE MODEL YEARFord Taurus2000ToyotaCamry 1999表2 INSURED_AUTOSPOLICY_IDMAKE MODEL YEAR576 Ford Taurus 2000577 ToyotaCamry 1999 578 TUCker NULL 1949延遲約束檢驗(Deferred Constraint Checking)約束檢驗分兩種情況,一種是在每一條語句結束后檢驗數據是否滿足約束條件,這種檢驗稱為立即約束檢驗(immediately checking),另一種是在事務處理完成之后對數據進行檢驗稱之為延遲約束檢驗。在缺省情況下Oracle約束檢驗是立即檢驗(immediately checking),假如不滿足約束將先是一條錯誤信息,但用戶可以通過SET CONSTRAINT語句選擇延遲約束檢驗。語法如下:SET CONSTRAINT constraint_nameALL DEFEERREDIMMEDIATE --;
標簽: Oracle 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
韩国精品主播一区二区在线观看 | 在线不卡欧美精品一区二区三区| 九一九一国产精品| 99成人在线| 国产91露脸合集magnet| 成人深夜视频在线观看| 亚洲天堂成人网| 一区二区三区在线播放| 伊人婷婷欧美激情| 最新成人av在线| 正在播放亚洲一区| 亚洲精品在线观看免费| 99精品视频免费| 一区二区三区国产盗摄| 国产又黄又大久久| 亚洲狼人精品一区二区三区| 亚洲国内精品| 高清久久久久久| 国产一区二区精品久久91| 一片黄亚洲嫩模| 狠狠色丁香久久婷婷综合_中| 老司机免费视频一区二区| 成人在线一区二区三区| 美女国产一区二区三区| 一区二区三区在线观看欧美| 亚洲精选一二三| 亚洲一卡二卡三卡四卡无卡久久 | av中文一区二区三区| 欧美视频一区二区三区在线观看| 亚洲视频在线一区二区| 亚洲尤物在线视频观看| 综合久久给合久久狠狠狠97色 | 在线不卡中文字幕| 久久九九久精品国产免费直播| 91精品一区二区三区在线观看| 欧美一区二区视频观看视频| 在线观看国产精品网站| 911精品国产一区二区在线| 欧美日本在线看| 午夜在线精品偷拍| 欧美视频一区在线观看| 91精品国产一区二区三区香蕉| 一区二区免费看| 一区二区欧美精品| 精品1区2区在线观看| 亚洲女子a中天字幕| 久久99国产精品久久99果冻传媒| 久久精品二区亚洲w码| 激情欧美一区| 色噜噜狠狠色综合欧洲selulu| 久久精品免费在线观看| 亚洲第一久久影院| 972aa.com艺术欧美| 麻豆9191精品国产| 26uuu国产日韩综合| 天堂一区二区在线免费观看| 国产成人精品免费| 欧美一级久久| 久久久久久电影| 国产一区二区福利| 一本高清dvd不卡在线观看| 国产肉丝袜一区二区| 免费久久99精品国产| 毛片基地黄久久久久久天堂| 亚洲成人在线网站| eeuss鲁片一区二区三区| 中文欧美日韩| 欧美性感一区二区三区| 亚洲主播在线播放| 狠狠久久亚洲欧美| 91在线观看美女| 久久精品官网| 久久久久久久久99精品| 久久99精品久久久| 成人动漫在线一区| 色视频成人在线观看免| 精品国产区一区| 欧美日韩在线精品| 亚洲精品在线三区| 午夜不卡av免费| 秋霞电影网一区二区| 欧美亚洲国产一卡| 亚洲国产高清不卡| 国产伦精品一区二区三区视频黑人 | 亚洲h动漫在线| 色婷婷综合久久久久中文 | 777午夜精品免费视频| 亚洲尤物在线视频观看| 亚洲一级网站| 亚洲精品在线免费播放| 国内国产精品久久| 免播放器亚洲| 亚洲综合自拍偷拍| 亚洲精品美女91| 国产精品三级在线观看| 日本欧美久久久久免费播放网| 欧美绝品在线观看成人午夜影视| 成人免费观看视频| 久久综合一区二区三区| 欧美一级在线视频| 粉嫩av一区二区三区在线播放 | 国产亚洲永久域名| 欧洲视频一区二区| 中文字幕欧美国产| 免播放器亚洲一区| 亚洲国产专区| 国产精品视频线看| 精品二区久久| 久久精品国产精品亚洲综合| 午夜在线精品偷拍| 在线电影欧美成精品| 欧美三区在线| 日韩一区在线播放| 亚洲一区日韩在线| 亚洲不卡在线观看| 亚洲人成人一区二区三区| 91老师国产黑色丝袜在线| 日本伦理一区二区| 国产一区二区三区四| 一区二区三区中文字幕| 在线一区免费观看| 国产一区二区免费视频| 成人一区二区三区| 婷婷久久综合九色综合绿巨人| 欧美一级在线免费| 欧美aa国产视频| 青娱乐精品视频在线| 精品国产乱码久久| 欧美日产国产精品| 欧美日韩一区三区四区| 欧美日韩午夜| 亚洲视频一区在线观看| 久久av一区二区三区| 国产一区二区三区免费| 日韩美女视频在线| 不卡av在线免费观看| 亚洲高清中文字幕| 久久野战av| 伊人久久大香线蕉综合热线| 国产69精品久久777的优势| 另类调教123区| 日韩av一区二| 欧美精品久久久久久久久老牛影院 | 91美女视频网站| 中文字幕在线观看一区| 99热免费精品| 久久99久久精品欧美| 欧美一区二区三区在线看| 伊人久久亚洲美女图片| 福利一区福利二区| 亚洲免费观看高清在线观看| 男人的天堂亚洲在线| 色婷婷狠狠综合| 国产欧美一区二区三区另类精品| 亚洲国产成人av| 亚洲一区视频在线观看视频| 日韩免费视频一区二区| 国产亚洲一区在线播放| 亚洲男人的天堂网| 一本色道久久综合亚洲二区三区| 国产成人精品综合在线观看| 精品国产一区久久| 中文精品视频一区二区在线观看| 国产在线一区二区综合免费视频| 久久人人超碰精品| 黄色国产精品一区二区三区| 99久久精品国产导航| 久久久久久久久99精品| 亚洲v日本v欧美v久久精品| 日韩制服丝袜av| 亚洲欧美日韩国产中文在线| 26uuu色噜噜精品一区| 欧美在线视屏| 亚洲欧洲精品一区二区三区| 欧美无砖专区一中文字| 久久久久久影视| 精品久久久久久亚洲综合网| 欧美精品观看| 久久99国产精品麻豆| 国产成人午夜电影网| www.亚洲国产| 国产精品s色| 91香蕉国产在线观看软件| 国产在线成人| 亚洲一区二区网站| 91视频国产观看| 99久久777色| 国产精品久久久一区二区| 国产美女娇喘av呻吟久久| 成人va在线观看| 亚洲神马久久| 91久久奴性调教| 日韩精品在线网站| 亚洲免费观看高清完整版在线| 亚洲国产精品一区二区www在线| 免费久久99精品国产| 99精品视频在线播放观看| 午夜在线视频一区二区区别| 在线不卡中文字幕| 国产精品视频线看|