oracle数据库constraint用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Oracle数据库中,约束(constraint)用于实施所谓的"业务规则",防止非法信息进入数据库,满足管理员和应用开发人员所定义的规则集。
以下是约束的几种类型及其用法:
1. 主键约束(Primary Key):对一个列进行约束,要求非空且不重复。
格式:alter table [表名] add constraint [约束名称] primary key ([列名])。
2. 外键约束(Foreign Key):通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键。
格式:alter table [表名] add constraint [约束名称] foreign key ([列名]) references [其他表名]([列名])。
3. 检查约束(Check):给一列的数据进行了限制。
格式:alter table [表名] add constraint [约束名称] check ([列名])。
4. 唯一约束(Unique):给列的数据追加的不重复的约束类型。
格式:alter table [表名] add constraint [约束名称] unique ([列名])。
5. 默认约束:让此列的数据默认为一定的数据。
格式:alter table [表名] add constraint [约束名称] default ([默认值]) for [列名]。
在使用这些约束时,需要注意以下几点:
1. 如果没有为约束提供一个名字,那么Oracle会分配一个系统生成的唯一名字,以SYS_开头。
2. 约束定义存储在数据字典中,可以通过查询USER_CONSTRAINTS来获得相关信息。
3. 如果相关的约束定义在单列上,可以在列这一级指定约束的定义;多列约束必须定义在数据表级,相关的列要在括号中指定,用逗号分隔。
4. 如果一个DML语句执行的任何结果破坏了完整性约束,Oracle就会回滚语句,返回错误信息。