zoukankan      html  css  js  c++  java
  • ORACLE 11G 约束

    完整性约束指的是数据库中数据的正确性和相容性。主要指下面的:
    primary key 主键
    foreign key 外键
    unique 唯一
    not null 非空
    check 检查约束
    在Oracle中,使用constraint(英文的意思就是约束)关键字 为约束命名。如果用户没有命名,那么系统会自动会用户创建的约束命名。
    OK,那我们接着就详细讲讲这些。

    一。Not null 约束

    从字面很好理解,就是非空约束,表示某些列的值不可缺少的,在插入数据的时候,如果没有为它赋值,那么会提示错误。
    1.1 创建表的时候使用not null 约束
          create teable test (id number not null);
    1.2在已经创建的表中添加not null 约束
          alter table 表名 modify 列名 not null
    1.3删除表中的not null 约束
          alter table 表名 modify 列名 null

    二。primary key 约束(主键约束)

    主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。
    NOTE:一个表中 只能定义一个primary key 约束(注意,但是可以有多个字段为primary key)。
    Oracle 会主动的为具有primary key约束的列建立一个唯一索引。
    2.1 建表时创建primary key 约束
         create teable test (id number primary key);
    2.2 添加primary key约束
          alter table 表名 add constraint 自定义约束名 primary key(列名);
    2.3.匿名约束
          如果是添加匿名约束,那么就不需要在上面指定constraint关键字了,系统会自动的创建。
    2.4.删除约束
          alter table 表名 drop constraint 约束名

    三。Unique约束

    按照字面的意思是说,唯一性,也很好理解,就是指该列中不能包含有重复的值
    如果想在新建了table之后,在进行添加unique的约束,和上面的一样,语法如下:
    alter table 表名 add unique(列名)
    四。Check 约束
    所谓的Chck约束至的是检查性约束,使用CHECK约束时,将对输入的每一个数据进行检查,只有符合条件的记录才会保存到表中。
    如果想在新建了table之后,在进行添加check的约束,和上面的一样,语法如下:
    alter table 表名 add constraint 约束名 check(列名+条件)
    如果要删除check约束,也很简单哦,只需要如下操作:
    alter table 表名 drop constraint 约束名
    五。Foreign key约束
    指的是外键约束,外键指的是引用另外一个表中的某一列或几列的值。
    5.1外键特点
    1.囚为某列定义了foreign key约束,则该列的取值只能是引用表的值或者是null
    2.可以在一个表中为多个列设置foreign key
    3.定义了foreign key时,与被引用的主键列可以是在同一个表,这个叫“自引用”
    alter table 表名 add constraint 约束名 foreign key(列名) referenc 表名(列名)
    5.3删除
    我们在前面一节说过,因为有主外键关系,所以如果删除一个有外键的表,会报错。那如果,你一定要删除的话,也可以,需要加下面的参数:
    使用cascade,因为和前面一张内容一样,所以不再说明了。

  • 相关阅读:
    武汉招项目经理,高级软件工程师,客户端程序员,网页制作,2D美工[代发]
    学习WPF: 创建数据绑定目录树
    How do you translage CS2008 hardcode strings quickly?
    Windows Media Services 流媒体服务器架设教程 .
    流媒体服务器搭建实例——可实现录音,录像功能
    (转)A General Fast Method Invoker
    iphone property(转)
    C# 运算法 “??” “:: ” “int?”
    Crosby质量箴言(转)
    iphone程序的生命周期(执行过程) (转)
  • 原文地址:https://www.cnblogs.com/51linux/p/3090244.html
Copyright © 2011-2022 走看看