oracle中的约束
更新时间:2023-12-06 15:59:01 阅读量: 教育文库 文档下载
oracle中的约束
数据完整性
数据库不仅仅是存储数据,它也必须保证所保存的数据的正确性。如果数据不正确或不一致,那么该数据的完整性可能会遭到破坏,从而给数据库本身的可靠性带来意想不到的问题。
为了维护数据库中的数据完成性,在创建表时通常需要指定一些约束。通过表中的字段(列)定义约束,就可以防止非法数据的插入问题.对约束的定义可以再create table语句中进行,也可以在alter table语句中进行。
什么是约束呢?
约束是表级的强制规定.根据约束的作用域,约束又可分为表级约束和列级约束两种。
列级约束是指是字段定义的一部分,只能够应用在一个列上. 表级约束是指独立于列的定义,可以应用于一个表中的多个列上。 在oracle系统中定义约束时,通过constraint关键字为约束命名,如果用户没有为约束指定名称,系统会自动建立默认的名称。 总结:
? 作用范围:列级约束只能作用在一个列上,而表约束可以作用
在多个列上(当然表约束也可以作用在一个列上)。
? 定义方式:列约束必须跟在列的定义里后面,表约束不与列一
起,而是单独定义。
? 非空(not null)
约束只能定义在列上
备注:在定义约束时,可以通过指定enable或disable关键字将约束的初始状态设置为激活或禁用状态,默认是激活状态。
定义约束的语法格式1: CREATE TABLE [schema.]table
(column datatype [DEFAULT expr] [column_constraint], ...
[table_constraint][,...]);
列级约束:
column [CONSTRAINT constraint_name] constraint_type, 表级约束 column,...
[CONSTRAINT constraint_name] constraint_type (column, ...),
约束的分类为:
? ? ? ? ?
NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK
1、 Not null 如下:
? ? ?
为字段定义not null 约束后,该字段不能为null值 Not Null约束只能在列级定义 在定义一个表中可以有多个not Null
2、 unique 特点如下:
? ? ?
如果为字段定义了unique约束,该字段不能够包含重复值 unique约束既可以在列级定义,也可以在表级定义。 在oracle系统中被定义的unique约束会自动建立一个唯一的索引。
?
同一个字段既可以在其上定义为not null 也可以建立unique约束,(为某个字段可以添加多个约束),注意:如果在一个字段仅定义了unique约束,则该字段可以包含多个null值
Unique主要的目的是:是在保证主键列外,其它列的唯一性。 3、 primary key 特点如下:
?
定义为primary key的字段或字段组中不能包含重复值,并且不能为null值.(即满足唯一性,不能为空)
? ?
在一个表中只能定义一个primary key的约束
Oracle会自动为具有primarykey约束的字段添加一个唯一的索引,以及一个not null约束
4、 foreign key
特点如下:
?
被定义了foreign key约束的字段的取值只能为相关表中引用的字段的值或null值。
? ?
foreign key约束既可以在列级定义,也可以在表级定义。 定义了foreign key约束的外键字段和被引用的主键字段可以在同一张表中,这种情况称为:’自引用’(构成了自关联关系)
?
对于同一个字段可以同时定义为foreign key约束和not null约束。
注意:外键的类型、尺寸等一定要与主键完全一致。
备注:
在oracle中级联删除有如下三值:
?
no action 在删除一方的情况下,对多方不进行任何操作.(不能删,删的情况会出现, 违反完整约束条件的异常信息)
?
cascade 在删除一方的时,会把多方所有与1方关联的数据删除掉。
?
set null在删除一方的时,会把多方所有与1方关联的数据的字段值设置为null(注意:该字段必须允许为null 否则的话会出现无法更新***为 NULL)。
5、 check
check约束是所有约束中最灵活的约束,也是最复杂的约束,check约束检查输入到表中的数据值来维护域的完整性,即检查输入的每一个数据,只有符合条件的数据才允许输入到表中.check约束有如下特点:
?
在check约束的表达式中,必须引用表中一个或多个字段,并且表达式的运算结果必须是一个布尔值.
正在阅读:
oracle中的约束12-06
砌筑工程量计算规则与实例05-20
我的启蒙老师作文500字07-03
县级电视台的发展04-18
山东人民出版社小学品德与社会四年级上册《做个聪明的消费者》教05-13
Python访问MySQL数据库08-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 约束
- oracle
- 定西市安定区巉口镇基本情况
- 浙江省2017年高考语文必考点集训(17)名句名篇默写(含答案解析)
- 催化剂制备方法
- 省略号的作用
- 湖南省株洲市二中12-13学年高一下学期入学考试地理试题(无答案)
- 各类班组结算管理制度
- 非线性规划与多目标规划模型及其求解实验指导
- 检测与转换技术课后答案
- 广东省汕头市龙湖区2010届九年级英语中考模拟试题人教版 - 图文
- 关于公布2011年度广西区公路水运工程试验检测员的公告
- 中英文文献翻译—铁电存储器的技术背景
- 压力容器质量保证手册-2018 - 图文
- 气相色谱法测定聚乳酸中的单体残留
- 中药药剂学试题
- 小学数学教学研究课程网上考核方案
- 商务谈判复习题
- 电力电子作业 -
- 无机及分析化学补充题
- 中小型企业安全生产事故应急预案模板
- 诗歌朗诵