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,因为和前面一张内容一样,所以不再说明了。

  • 相关阅读:
    datanode报错Problem connecting to server
    使用命令查看hdfs的状态
    Access denied for user root. Superuser privilege is requ
    ElasticSearch默认的分页参数 size
    SparkStreaming Kafka 维护offset
    【容错篇】Spark Streaming的还原药水——Checkpoint
    251 Android 线性与相对布局简介
    250 Android Studio使用指南 总结
    249 如何解决项目导入产生的中文乱码问题
    248 gradle更新问题
  • 原文地址:https://www.cnblogs.com/51linux/p/3090244.html
Copyright © 2011-2022 走看看