- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第5章数据库完整性
5.1完整性概述一、实体完整性实体完整性指的是如果一个字段是主键字段,则此字段不能取空值(NULL)。例如:EMP表中雇员编号EMPNO为主键,则该字段在输入时不能取空(NULL),如表5-1所示。
5.1完整性概述二、域完整性域完整性指的是数据类型、范围、长度等约束。例如:表5-1EMP表的定义如下所示:名称是否为空?类型-----------------------------------------------------------------EMPNONOTNULLNUMBER(4)ENAMEVARCHAR2(10JOBVARCHAR2(9)MGRNUMBER(4)HIREDATEDATESALNUMBER(7,2)COMMNUMBER(7,2)DEPTNONUMBER(2)
5.1完整性概述三、参照完整性1.外键一个字段或一组字段不是表R的主键,但它和另外一个表S的主键相对应,则该字段或字段组合为R的外键。例如:表5-1EMP表中的DEPTNO不是EMP的主键但是它和另一表6-2DEPT表中的DEPTNO相对应(EMP表中的DEPTNO的值都取自DEPT表中的DEPNO字段)。DEPT表如表5-2所示:
5.1完整性概述2.参照完整性若一个表的外键和另一个表的主键相对应,则该表在外键上的取值为:或者取空值(NULL)(外键的每个属性值均为空值)。或者等于另外一个表的某个元组的主键值。例:表6-1EMP表中的外键DEPTNO的取值,或者取NULL表示没有所属的部门,或者取自表6.2DEPT表中的DEPTNO中的某一个字段值(10,20,30)。四、用户定义的完整性用户定义的完整性指的是用户根据某一具体应用设置的约束条件。Oracle中必须提供这样的定义机制,来实现用户定义的约束条件。例:表6.1EMP表中如果定义COMM在0-5000的范围就属于用户定义的完整性约束。
5.2约束类型Oracle数据完整性约束可以分为主键(PRIMARYKEY)、非空(NOTNULL)、唯一(UNIQUE)和检查(CHECK)约束和外键(FOREIGNKEY)约束五种类型。一、主键约束候选键是唯一标识表中每一条记录的字段或字段组合。若一个表有多个候选键,则选定其中一个为主键,定义主键的子句为PRIMARYKEY,指定了主键后,包含在主键里的字段为主键字段,主键字段不为空,主键值唯一。1.创建表时定义创建表时定义主键约束的语法格式如下:CREATETABLE[schema.]table_name(columndatatype[DEFAULTexpr][[CONSTRAINTconstraint_name]PRIMARYKEY],--列级约束...[[CONSTRAINTconstraint_name]PRIMARYKEY(colum1,colum2,…)]);--表级约束
5.2约束类型例:创建学生表student,包括学号(Sno)、姓名(Sname)、Sage(年龄)、性别(Ssex)、出生日期(Birthday)、系院(Sdept)等学生信息。其中学号(Sno)为主键。CREATETABLESTUDENT(Snochar(6)PRIMARYKEY,Snamevarchar2(8),Sagenumber(2,0),Ssexchar(2),Birthdaydate,Sdeptchar(20));
5.2约束类型指定约束名CREATETABLESTUDENT(Snochar(6)CONSTRAINTPK_SnoPRIMARYKEY,Snamevarchar2(8),Sagenumber(2,0),Ssexchar(2),Birthdaydate,Sdeptchar(20));
5.2约束类型表级约束例:创建一选课表SC,包括学号(Sno),课程号(Cno),成绩(Gra
您可能关注的文档
- Python机器学习项目化教程(微课视频版) 教学大纲.pdf
- Python机器学习项目化教程(微课视频版)课件 第1章 机器学习概述.pptx
- Python机器学习项目化教程(微课视频版)课件 第2章 机器学习基础及Python常用库.pptx
- Python机器学习项目化教程(微课视频版)课件 第3章 朴素贝叶斯分类器.pptx
- Python机器学习项目化教程(微课视频版)课件 第4章 k近邻算法与非参数估计.pptx
- Python机器学习项目化教程(微课视频版)课件 第5章 聚类.pptx
- Python机器学习项目化教程(微课视频版)课件 第6章 回归分析.pptx
- Python机器学习项目化教程(微课视频版)课件 第7章 决策树.pptx
- Python机器学习项目化教程(微课视频版)课件 第8章 支持向量机.pptx
- Python机器学习项目化教程(微课视频版)课件 第9章 降维分析.pptx
文档评论(0)