乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       aaie_ 2011-10-08

      完整性約束

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

          Check
          NOT NULL
          Unique
          Primary
          Foreign key

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

        禁用約束,使用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 約束

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

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

        語法:

      CONSTRAINT [constraint_name] CHECK (condition);
        Check約束可以被創(chuàng)建或增加為一個表約束,當(dāng)Check約束保護多個數(shù)據(jù)列時,必須使用表約束語法。約束名是可選的并且如果這個名字不存在,那么oracle將產(chǎn)生一個以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約束應(yīng)用在單一的數(shù)據(jù)列上,并且他保護的數(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
      );
        對于NOT NULL的ALTER TABLE語句與其他約束稍微有點不同。

      ALTER TABLE policies MODIFY holder_name NOT NULL

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多