数据库完整性

本文深入探讨了数据库完整性的重要性,介绍了实体完整性、参照完整性和用户定义的完整性三大原则,并结合实际案例阐述如何在数据库设计中实施这些完整性约束,确保数据的准确性和一致性。
摘要由CSDN通过智能技术生成
--一、定义完整性

--创建s表
--定义s表; sno主码,sname非空、city缺省值
create table S
(
       Sno char(2),
       Sname varchar2(10),
       City char(6)  default null,
       primary key(Sno)
);

--创建p表
--定义p表; pno主码,pname非空、color只能取红、蓝、绿
create table P
(
       Pno char(2),
       Pname varchar2(12) not null,
       Color char(3) check(Color in('红','蓝','绿')),
       primary key(Pno)
);

--创建j表
--定义j表; jno主码, jname非空
create table J
(
       Jno char(2),
       Jname varchar2(15) not null,
       primary key(Jno)
);

--创建spj表
--定义spj表; (sno,pno,jno)主码,参照sno、pno、jno外码,qty介于0—1000
create table SPJ
(
       Sno char(2),
       Pno char(2),
       Jno char(2),
       Qty int check(Qty between 0 and 1000),
       primary key(Sno,Pno,Jno),
       foreign key(Sno) references S(Sno),
       foreign key(Pno) references P(Pno),
       foreign key(Jno) references J(Jno)
);

--创建可以级联删除的SPJ表
create table SPJ
(
       Sno char(2),
       Pno char(2),
       Jno char(2),
       Qty int constraint C1 check(Qty between 0 and 1000),
       constraint SPJKey primary key(Sno,Pno,Jno),
       constraint FK_Sno foreign key(Sno) references S(Sno) on delete cascade,
       constraint FK_Pno foreign key(Pno) references P(Pno) on delete cascade,
       constraint FK_Jno foreign key(Jno) references J(Jno) on delete cascade
);

--删除S表
drop table S;
--删除P表
drop table P;
--产出J表
drop table J;
--删除SPJ表
drop table SPJ;

二、插入数据
--插入合乎约束的数据
--向S表中插入数据
insert 
into S(Sno,Sname,City)
values('S1','竟仪','天津');

insert 
into S(Sno,Sname,City)
values('S2','盛锡','北京');

insert 
into S(Sno,Sname,City)
values('S3','东方红','北京');

insert 
into S(Sno,Sname,City)
values('S4','丰泰盛',
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值