小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)對(duì)象分析(中)--(1)

 aaie_ 2011-10-08

完整性約束

  完整性約束用于增強(qiáng)數(shù)據(jù)的完整性,Oracle提供了5種完整性約束:

    Check
    NOT NULL
    Unique
    Primary
    Foreign key

  完整性約束是一種規(guī)則,不占用任何數(shù)據(jù)庫(kù)空間。完整性約束存在數(shù)據(jù)字典中,在執(zhí)行SQL或PL/SQL期間使用。用戶(hù)可以指明約束是啟用的還是禁用的,當(dāng)約束啟用時(shí),他增強(qiáng)了數(shù)據(jù)的完整性,否則,則反之,但約束始終存在于數(shù)據(jù)字典中。

  禁用約束,使用ALTER語(yǔ)句

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 約束

  在數(shù)據(jù)列上Check 約束需要 一個(gè)特殊的布爾條件或者將數(shù)據(jù)列設(shè)置成TRUE,至少一個(gè)數(shù)據(jù)列的值是NULL,Check約束用于增強(qiáng)表中數(shù)據(jù)內(nèi)容的簡(jiǎn)單的商業(yè)規(guī)則。用戶(hù)使用Check約束保證數(shù)據(jù)規(guī)則的一致性。Check約束可以涉及該行同屬Check約束的其他數(shù)據(jù)列但不能涉及其他行或其他表,或調(diào)用函數(shù)SYSDATE,UID,USER,USERENV。如果用戶(hù)的商業(yè)規(guī)則需要這類(lèi)的數(shù)據(jù)檢查,那么可以使用觸發(fā)器。Check約束不保護(hù)LOB數(shù)據(jù)類(lèi)型的數(shù)據(jù)列和對(duì)象、嵌套表、VARRY、ref等。單一數(shù)據(jù)列可以有多個(gè)Check約束保護(hù),一個(gè)Check約束可以保護(hù)多個(gè)數(shù)據(jù)列。

  創(chuàng)建表的Check約束使用CREATE TABLE語(yǔ)句,更改表的約束使用ALTER TABLE語(yǔ)句。

  語(yǔ)法:

CONSTRAINT [constraint_name] CHECK (condition);
  Check約束可以被創(chuàng)建或增加為一個(gè)表約束,當(dāng)Check約束保護(hù)多個(gè)數(shù)據(jù)列時(shí),必須使用表約束語(yǔ)法。約束名是可選的并且如果這個(gè)名字不存在,那么oracle將產(chǎn)生一個(gè)以SYS_開(kāi)始的唯一的名字。

  例:

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約束應(yīng)用在單一的數(shù)據(jù)列上,并且他保護(hù)的數(shù)據(jù)列必須要有數(shù)據(jù)值。缺省狀況下,ORACLE允許任何列都可以有NULL值。某些商業(yè)規(guī)則要求某數(shù)據(jù)列必須要有值,NOT NULL約束將確保該列的所有數(shù)據(jù)行都有值。

  例:

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
);
  對(duì)于NOT NULL的ALTER TABLE語(yǔ)句與其他約束稍微有點(diǎn)不同。

ALTER TABLE policies MODIFY holder_name NOT NULL

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多