千家信息网

oracle中数据完整性的示例分析

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,小编给大家分享一下oracle中数据完整性的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 数据的完整性简介就是正确性、准确性,包含三种:实体完整性、参照完整性、用户自定
千家信息网最后更新 2025年02月03日oracle中数据完整性的示例分析

小编给大家分享一下oracle中数据完整性的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1. 数据的完整性简介

就是正确性、准确性,包含三种:实体完整性、参照完整性、

用户自定义完整性。Oracle中主要通过约束、触发器、过程函数

实现的。 以下内容讲通过约束实现数据完整性。

举例两个表:

学生(学号,姓名,系编号)

系(系编号,系名称)

员工(编号,姓名,出生日期,工作日期)

那么:

学号是主键列,其值不能错误,如不能负值,这就是实体完整性;

系编号是外键,学生表的系编号参照系表,也就是说学生表的系编号的值必须在系表的系编号的值范围内【或者为空】,这就是参照完整性;

员工表的出生日期一定需要小宇工作日期,这就是用户自定义完整性。

2. 维护数据的完整性,有not null、unique、check、primary key、foreign key五种。

not null例如学生的姓名;unique例如学生的学号;primary key主键、foreign key外键、check可以按照用户要求,进行自动检查。

unique不可以重复,但是可以为空。

primary key不可以重复,也不能为空。

一个表只能一个primary key,却可以多个unique。

not null只能在列内定义,其他4种约束可以在列定义结束后,在表内定义。

not null示例(这里的not null约束由系统自动起名):

create table yg2(bh number(4) not null,xm varchar2(8));

check示例:

create table yg3(bh number(4) not null check (bh>0 and bh<10000), xm varchar2(8));

unique示例:

create table yg4(部门号 number(4) not null, 部门内号 number(4) , xm varchar2(8) , unique(部门号,部门内号) );

default的使用

create table gz_新员工 (bh number(4),xm varchar2(8),gz number(10) default 1000 ); //适用于没有向列显式的指定数值的情况。

primary key示例(此列不允许为空,而且ORACLE会自动为主键列创建索引,这里的primary key约束由用户显式起名):

create table student(xh number(6) constraint code_pk primary key , xm varchar2(20));

foreign key示例(实现两个表之间参照与被参照的关系,外键只能取主键已经有的值,这里的foreign key由系统自动起名):

create table address (xh number(8) ,zz varchar2(50) , foreign key(xh) references student(xh));

试验primary key和foreign key约束:

insert into student values(1,'张一');

insert into address values(1,'郑州');

insert into address values(2,'郑州');

(3)用户的约束在user_constraints表、和user_cons_columns表中

select * from user_constraints;

实践练习题目:

问题:

建立2个表,一个是StudentInformatino(学号sno,姓名

sname,年龄sage,性别smale,系编号

deptNo),一个是department(系编号deptno,

系名称deptname)。

要求:

每个表有主键。

StudentInformation表建立外键。

学生的姓名不能为空。

学生的年龄要在18到50之间。

学生的性别必须是男女之一,默认是男。

StudentInformation表的deptno列,要参照department表的

deptno列。

3.2 给已有的表添加约束:

除了添加not null需要使用modify命令,其他都是类似alter table tablename add CONSTRAINTS的方式。

上面例子,允许stuInfo中的姓名可以为空:alter table stuinfo modify sname null;

允许stuInfo中的姓名不能重复:alter table stuinfo add constraints sname_unique unique(sname) ;

要求department的系名称列的内容,必须大于4个字符长度:alter table

department add constraints deptName_check check(length(deptName)>4);

3.3 删除约束:

alter table 表名 drop constraint 约束名;

alter table department drop constraint deptName_check; -- 删除刚才建立的department表上的deptName_check 约束

删除主键语句:alter table 表名 drop primary key;

如果出错:ORA-02273: 此唯一/主键已被某些外键引用,可以:alter table department drop primary key cascade;

如果删除一个主键被引用的表,可以:drop table 表名 cascade constraints;

看完了这篇文章,相信你对"oracle中数据完整性的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

完整性 学生 示例 姓名 数据 用户 学号 就是 日期 部门 名称 员工 分析 两个 之间 内容 实体 年龄 性别 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sql从某数据库某表中查询 我国网络安全管理的核心机构是 网络安全温馨提示语大全 游族网络技术骨干层 明日之后的服务器是干什么用的 云南省网络安全特招 功能机软件开发用什么编程软件 云朵网络安全科技馆 未来之役服务器怎么选欧服 镇江网络安全活动 光传输网络技术第二版答案 苏州润物互联网络科技有限公司 部署项目到服务器是属于什么岗位 delphi 服务器 图片 公安网络安全专项行动 戴尔服务器无法识别32g内存 玩脱了手游数据库 服务器管理器重置账户什么意思 中国信通网络安全考试 不属网络安全法在完善个人信息 浙江工程软件开发排行榜 全托管 服务器 企业服务器管理空间满了 上海互联网络技术客户至上 租赁服务器丢失 去浙江明讯网络技术游戏 暗黑2重制版美服服务器 东莞瑞泰鑫网络技术有限公司 孤单车神5服务器断了 域名服务器的类型有
0