首页 > Linux操作系统 > Linux操作系统 > Oracle中的约束介绍(1)
在数据库中使用约束,其实是为了防止"非法信息"进入数据库,满足管理和业务人员所定义的规则集.
如果相关的约束定义在单列上,可以在列这一级别指定约束的定义.多列约束必须定义在数据表级,相关的列要在括号中指定,用逗号分隔,如果没有为约束提供名称,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/ ,如需转载,请注明出处,否则将追究法律责任。