ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle中的约束介绍(1)

Oracle中的约束介绍(1)

原创 Linux操作系统 作者:lijingna128 时间:2010-04-10 16:45:14 0 删除 编辑

        在数据库中使用约束,其实是为了防止"非法信息"进入数据库,满足管理和业务人员所定义的规则集.

        如果相关的约束定义在单列上,可以在列这一级别指定约束的定义.多列约束必须定义在数据表级,相关的列要在括号中指定,用逗号分隔,如果没有为约束提供名称,oracle自动会分配生成一唯一名字,以SYS_开头,也可以使用关键字constraints后跟随相关约束.

         oracle支持5中类型的完整性约束:

not null :  防止null值进入制定的列,在单列基础上定义,默认情况下,oracle允许任何列中有null值.

unique:保证在制定列中没有重复值.在表中每一组或者没一个值都将是唯一的

check:检查在约束中指定的条件是否得到满足.

primary key :用来唯一标识出表的每一行,防止出现null值,一个表只有一个主键约束.:

foreign key:用公共列在表之间简历一种父子关系,在表上定义的外部键可以指向主键或者其他表的唯一键.

eg:

create table employees

(

.........

department_id number(4),

constraint emp_dept_fk foreign key (department_id)

references departments(department_id)

)

上例中是在表级定义外部键约束,如果在列级定义,不同的是: 
create table employees
                      (...,
                       department_id NUMBER(4) CONSTRAINT emp_deptid_fk references  departments(department_id),
                      ...);
                    //没有关键字foreign key  
foreign key 约束还有两个关键字是
on delete cascade   --当删除所引用的父表记录时,删除子表中相关的记录
on delete set null --与上面不同的是删除时,转换子表中相关记录为null值
默认情况下,如果没有指定以上两个中任一,则父表中被引用的记录将不能被删除.

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17066567/viewspace-631786/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-04-10

  • 博文量
    57
  • 访问量
    76057