<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    oracle數據庫約束

    約束用于確保數據庫數滿足業務規則。

    約束包括:NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY以及CHECK等5種類型。

    建立主鍵約束和唯一約束時,Oralce會基于約束列自動建立唯一索引;主鍵約束不允許為NULL,唯一約束允許為NULL。

    一張表只能建立一個主鍵約束。

    建表約束:NOT NULL只能在列級定義;其它4種既可以在列級定義,也可以在表級定義。復合主鍵約束只能在表級定義。

    維護約束:增加NOT NULL約束時必須使用MODIFY子句,而增加其它約束時需要使用ADD子句。

     

    第一, 定義約束

    ---------------------------------------------

    語法

    CREATE  TABLE  [SCHEMA.]table_name(

    column_name  datatype  [DEFAULT  expr]  [column_constraint],

    ...

    [table_constraint][, ...]

    );

     

    例子

    CREATE TABLE tt_user_info
    (
      ID    VARCHAR2(20 BYTE),
      NAME  VARCHAR2(20 BYTE)                       NOT NULL,
      category_id VARCHAR2(20 BYTE)  REFERENCES tb_out_service(serviceid),
      remark   VARCHAR2(1000)
    );

    ALTER TABLE tt_user_info ADD (
      CHECK ( LENGTH(NAME)>2),
      PRIMARY KEY (ID),
      UNIQUE (NAME)
      );

     

    說明

    1. NOT NULL,非空約束

    not null

    2. UNIQUE,唯一約束

    UNIQUE (COL_NAME)

    3. PRIMARY KEY,主鍵約束

    primary key (col_name1 [, col_name2])

    4. FOREIGN KEY,外鍵約束

    它有三種類型:

    references  primary_table(primary_col)

    on delete cascade

    on delete set null

    5. CHECK,檢查約束

    check (money > 1000)

     

    第二, 維護約束

    ----------------------------------------

    1. 增加約束

    NOT NULL使用ALTER MODIFY子句,其它的使用ALTER  ADD子句

    -------------------------------

    CREATE TABLE tt_user(NAME VARCHAR2(20));

    ALTER TABLE tt_user MODIFY user_name NOT NULL;
    ALTER TABLE tt_user ADD CONSTRAINT constraint_name UNIQUE(NAME);
    ALTER TABLE tt_user ADD CONSTRAINT constraint_name PRIMARY KEY(NAME);
    ALTER TABLE tt_user ADD parentid VARCHAR2(20)
        CONSTRAINT constraint_name
            REFERENCES tb_out_service(serviceid);

     

    2. 修改約束名

    ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name

     

    3. 刪除約束

    ALTER TABLE table_name DROP CONSTRAINT constraint_name

     

    4. 禁止約束

    ALTER TABLE table_name DISABLE CONSTRAINT constraint_name  [CASCADE];

     

    5.激動約束

    ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

     

    第三. 顯示約束信息

    所有約束信息

    SELECT *
      FROM user_constraints

     

    用戶約束所對應的表列

    SELECT *
      FROM user_cons_columns;

    posted on 2009-03-12 15:03 JavaBegger 閱讀(937) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人免费视频网站www| 美女一级毛片免费观看| 特级精品毛片免费观看| 亚洲色精品88色婷婷七月丁香 | 国产精品亚洲产品一区二区三区| 亚洲AV日韩AV永久无码色欲| 在线观看免费人成视频| 亚洲综合av一区二区三区| 无码日韩精品一区二区免费| 亚洲乱亚洲乱妇24p| 美女巨胸喷奶水视频www免费| 亚洲国产精品一区二区第一页免| 亚洲人成亚洲精品| 四虎在线成人免费网站| 久久亚洲色一区二区三区| a毛片免费全部播放完整成| 午夜一级免费视频| 国产亚洲视频在线播放大全| 国产成人亚洲精品91专区手机| av午夜福利一片免费看久久| 亚洲av日韩av不卡在线观看| 免费在线观看视频网站| 亚洲国产精品无码第一区二区三区| 日本人护士免费xxxx视频| 国产免费A∨在线播放| 亚洲AV乱码一区二区三区林ゆな| 99久久精品日本一区二区免费| 亚洲精品GV天堂无码男同| 一本色道久久综合亚洲精品高清| 久久久久久AV无码免费网站下载 | 免费大片黄在线观看| 中文字幕不卡亚洲| 亚洲免费中文字幕| 视频一区二区三区免费观看| 亚洲精品乱码久久久久久| 一个人免费观看www视频| 亚洲午夜免费视频| 国产一卡二卡≡卡四卡免费乱码| 精品亚洲永久免费精品| 中文有码亚洲制服av片| 国产精品亚洲产品一区二区三区 |