<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 閱讀(933) 評論(0)  編輯  收藏


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


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

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费一看一级毛片全播放| 皇色在线视频免费网站| 国产特黄特色的大片观看免费视频 | h视频在线观看免费完整版| 成人免费大片免费观看网站| 国产又粗又长又硬免费视频| 亚洲欧洲日产国码无码网站| 精品亚洲A∨无码一区二区三区| 亚洲伦理一二三四| 国产青草亚洲香蕉精品久久| 热久久这里是精品6免费观看| 美女内射毛片在线看免费人动物 | 国产特黄一级一片免费 | 国产AV日韩A∨亚洲AV电影| 男人的天堂亚洲一区二区三区| 亚洲人成无码网站久久99热国产| 亚洲AV区无码字幕中文色 | xxxxxx日本处大片免费看| 免费观看激色视频网站bd | 99久久国产免费-99久久国产免费| 免费人成视频x8x8入口| 国产免费久久久久久无码| 亚洲av鲁丝一区二区三区| 国产91免费视频| 亚洲欧美中文日韩视频| 91精品视频在线免费观看| 青青草原亚洲视频| 免费人成大片在线观看播放| 国产精品久久久久久久久久免费 | 亚洲午夜电影一区二区三区| 国产精品色午夜视频免费看| 热久久这里是精品6免费观看| 亚洲一级免费视频| 免费无码VA一区二区三区| 久久亚洲精品国产亚洲老地址 | 色偷偷尼玛图亚洲综合| 久久电影网午夜鲁丝片免费| 免费看一级毛片在线观看精品视频 | 久久久久久99av无码免费网站 | 91嫩草免费国产永久入口| 麻豆亚洲AV成人无码久久精品|