三九宝宝网宝宝百科宝宝知识

怎样利用Oracle数据库表完整性功能提高数据输入准确率

01月06日 编辑 39baobao.com

[Oracle数据库]你的意思是不是要说 要建一个触发器 当要删除这条记录时 触发写到其他表? CREATE OR REPLACE TRIGGER 触发器名称 BEFORE DELETE ON 表名 REFERENCING NEW AS New OLD AS Old...+阅读

Oracle数据库表的完整性功能是一个非常实用的功能,利用这个功能可以提高表中数据的准确率。根据其具体实现方式的不同,表的完整性包括三部分内容,分别是实体完整性、域完整性与参照完整性。这三部分功能平时各负其责,共同实现了表的完整性功能。 如现在有如下一张员工表格。 若我们现在采用Oralce数据库管理这张数据表,那我们该如何结合表的完整性功能,提高这张员工数据表的数据准确率呢? 身份证号码 姓名 入职日期 339005198103031716 甲 2008-2-1 339005198303031718 乙 2008-2-2 339005198003031719 丙 2008-2-3 339005198203031720 丁 2008-2-4

一、实体完整性 实体完整性,是指在表的级别上,防止重复记录的产生。 如作为上面这一张员工信息表,其身份证号码当然不能重复。若输入重复的话,则系统就应该提示错误信息。这就是通过实体完整性的功能来实现的。 具体的来说,表的实体完整性功能是通过主键来实现的。我们可以给表的某些字段设置主键,从而达到记录不重复的目的。 主键其有两个特点,一是不能为空,而是设置的主键的字段内容不能重复。 从以上这张表中,我们可以把员工的身份证号码设置为主键。如此,当用户数据身份证号码时,若输入的身份证号码重复的话,则数据库系统会提醒用户,数据的身份证号码已经存在,并且,这条记录将不会被保存。

1、根据上面的要求在数据库中创建表格。

2、在没有创建主键,利用实体完整性功能之前,若数据的员工记录具有相同的身份证号码,系统也会接受,不会报错。如下图所示。但这明显不符合我们的要求。我们希望当我们不小心输入重复性的数据的时候,如身份证重复的话,则系统将提示错误,并且,不保存该条记录。

3、我们在刚才新建的职工表上,加上实体完整性约束。给身份证号码字段加上主键。然后,来看看具体的效果。

4、在身份证号码上,我们实现完整性约束,建立主键后,我们发现,此时,在同时建立两条相同的身份证号码记录的话,系统就提示错误信息,所违反了唯一约束条件。 从这里就可以看出,实体完整性约束在起作用了。 以上笔者描述的了就是Oracle服务器表完整性中的实体完整性的功能。通过这个过程的描述,我们可以看到,通过给表的某些字段设置主键的方法,我们可以实现对于表记录的唯一性控制,从而防止用户不小心输入重复的数据,造成数据库中数据的混乱。 在给数据库表实现实体完整性,即给表设置主键的时候,要注意几个要点。 一是设置主键的字段是不允许为空的。所以,我们在设计表结构的时候,如果需要给表的某个字段设置成为主键的时候,则最好把这个字段设置为不为空。如此的话,用户在操作数据表的时候,就一定要在该字段输入值,否则的话,数据库就会提示“该字段不能为空”的错误。 二是设置主键后,该字段的内容不能为重复。有时候,我们可能因为设计表格的时候,考虑的不够周到,没有把用户表的身份证号码字段设置为主键。若在表中已有数据的情况下,给表设置主键,就可能会发生错误,因为表中的数据可能已经重复了。为此,我们最好在表设计的时候,就要考虑好,到底该字段是否要设置成为主键。 三是主键的设置根据不同的业务需求是不一样的,数据库管理员要根据实际的情况选择恰当的字段作为关键字。如在职工基本信息表中,我们可能要求身份证号码唯一。但是,若在其他应用中,若把身份证号码设置为主键的话,就可能发生错误。如在学校的学位管理中,可能一个人会同时取得两个或者两个以上的学位,此时,若把身份证号码设置为主键可能不是很合适。 可能需要把身份证号码与学会编号一起设置为主键。若同一张表中,有两个以上的字段设置为主键时,系统的要求是两个字段都重复才是违反这个约束性条件。也就是说,学位表中有两条记录,身份证号码相同学位编号不同

(一个人同时有多个学位),这种情况是不违反实体完整性功能的。 所以这要注意,跟设置单个主键有比较大的区别。单个主键是这个字段不能重复,而多个主键的话,是设置主键的字段都不重复就行了。 以上是我对于这个问题的解答,希望能够帮到大家。

以下为关联文档:

Oracle数据库是什么ORACLE是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL(Structured guery language)作为它的数据库语言。 SQL主要包括数据定义、数据操纵(包括查询)和数据...

数据库oracle简介Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流...

什么是Oracle数据库 Oracle数据库是什么Oracle应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等150多个模块,荣获多项世界大奖,现已被全球近7600多家 企业所采用。由于在电子商务方面的杰出表现,Or...

oracle是什么类型的数据答: 关系型数据库 什么是关系型数据库? 关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表, 一组表组成了数据库。用户用查询(Query)来检索数据库中...

oracle数据库是什么结构Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。 1. 物理结构 物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:...

请问matlab中如何控制数据精度从您的提问中可以发现,您是有一定的Matlab基础的。 我建议您用round函数进行控制精度。延用您举的例子。为了书写方便,就设1.2356856为x。 取小数点后1位,round(x*10)/10即可;...

改变MATLAB的数据精度转贴:针对数据的显示形式控制,matlab中有专用命令 format 但该命令不影响数据的储存形式和计算精度 format 默认格式 format short 5字长定点数 format long 15字长定点数 for...

Matlab数组中的数据精度如何修改Matlab->File->Preference->Command Window->text display->Numberic format format short 通常保证小数点后4位有效数字,最多不超过七位,对于大于1000的实数,用5位有效数字的...

VBA里的生成随机数据公式无法生成1010 1之间的小数并保留两位小把a,b的数据格式改掉,改成单精度a!,b! a%,b%换成a!,b! 就是把你的代码改成 Private Sub CommandButton1_Click() Dim rn As Range, a!, b! a = TextBox1.Value b = TextBox2....

推荐阅读
图文推荐