千家信息网

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

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,小编给大家分享一下oracle中数据完整性的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 数据的完整性简介就是正确性、准确性,包含三种:实体完整性、参照完整性、用户自定
千家信息网最后更新 2025年02月16日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安全错误 数据库的锁怎样保障安全 oracle数据库重点 重庆琢岳互联网科技有限 宿豫区网络安全知识竞赛 画画网络安全手抄报 计算机网络技术125课后答案 互联网科技公司的组织架构 isle服务器安全吗 数据库加密函数支持数字签名 交通银行软件开发上海面试 毛小孩儿(北京)网络技术 互联网科技公司新三板 沈阳直销软件开发价格 我的世界网易版封神斗罗服务器号 网络技术提取住房 手机蓝牙打印机软件开发 阜阳电信软件开发 苏州知名服务器质量保证 网络安全十四五规划原则 厦门微达人网络技术有限公 有关网络安全英语情景对话 软件开发李俊 深圳中介强互联网科技有限公司 网络安全简短新闻 软件开发版本不同阶段 优加互联网科技有限公司联系电话 克尔瑞数据库登录网址 恒生科技和恒生互联网区别 轻化工大学计算机网络技术 数据库可以有多个主要数据吗 服务器安全检查项
0