实验9 数据完整性约束实现.docx

上传人:b****1 文档编号:2038415 上传时间:2023-05-02 格式:DOCX 页数:14 大小:370KB
下载 相关 举报
实验9 数据完整性约束实现.docx_第1页
第1页 / 共14页
实验9 数据完整性约束实现.docx_第2页
第2页 / 共14页
实验9 数据完整性约束实现.docx_第3页
第3页 / 共14页
实验9 数据完整性约束实现.docx_第4页
第4页 / 共14页
实验9 数据完整性约束实现.docx_第5页
第5页 / 共14页
实验9 数据完整性约束实现.docx_第6页
第6页 / 共14页
实验9 数据完整性约束实现.docx_第7页
第7页 / 共14页
实验9 数据完整性约束实现.docx_第8页
第8页 / 共14页
实验9 数据完整性约束实现.docx_第9页
第9页 / 共14页
实验9 数据完整性约束实现.docx_第10页
第10页 / 共14页
实验9 数据完整性约束实现.docx_第11页
第11页 / 共14页
实验9 数据完整性约束实现.docx_第12页
第12页 / 共14页
实验9 数据完整性约束实现.docx_第13页
第13页 / 共14页
实验9 数据完整性约束实现.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验9 数据完整性约束实现.docx

《实验9 数据完整性约束实现.docx》由会员分享,可在线阅读,更多相关《实验9 数据完整性约束实现.docx(14页珍藏版)》请在冰点文库上搜索。

实验9 数据完整性约束实现.docx

实验9数据完整性约束实现

实验九 数据完整性约束实现

【实验目的与要求】

1.熟练掌握实体完整性的实现。

2.熟练掌握参照完整性的实现。

3.熟练掌握域完整性的实现。

【实验内容与步骤】

实验准备:

对于CPXS数据库,若在CP表、CPXSB表和XSS表上已有约束,请先删除之。

9.1.实体完整性的实现

(1)对CP表,定义主键约束(用企业管理器实现)。

写出相应过程:

 

测试:

试着对CP表插入一条与原表中数据行具有相同主键值的数据。

给出测试结果:

 

(2)对CPXSB表、XSS表,定义主键约束(用SQL语句实现,写出相应语句)。

给出相应的SQL语句:

Altertablecpxsbaddconstraintc1primarykey(产品编号,客户编号,销售日期)

Altertablexssaddconstraintc2primarykey(客户编号)

给出测试结果:

9.2.参照完整性的实现

(1)利用企业管理器建立CP表与CPXSB之间的参照关系,当对主表CP表进行更新和删除操作时,从表CPXSB采用NOACTION方式,写出其过程。

给出相应的过程:

测试:

试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。

 

由图可知,删除了从表中与主表有关的记录,但主表的数据没发生变化

(2)利用SQL语句建立CPXSB与XSS表之间的参照关系,当对主表XSS表进行更新和删除操作时,从表CPXSB采用CASCADE(级联)方式,写出其过程。

给出相应的SQL语句:

Altertablecpxsbaddconstrainta1

Foreignkey(客户编号)referencesXSS(客户编号)

onupdatecascade

ondeletecascade

 

测试:

试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。

思考:

外键参照关系中CASCADE(级联)和NOACTION方式的作用各是什么?

cascade指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行;

noaction指定如果试图删除/修改某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚DELETE/UPDATE语句

9.3.域完整性的实现

1.Unique约束

(1)在CP表的“产品名称”列定义一个唯一约束。

给出相应的SQL语句:

Altertablecpaddconstraintcp1uniquekey(产品名称)

测试:

试着在在CP表中插入一条具有与原表中某记录相同“产品名称”值的数据。

给出测试结果:

 

2.Check约束

(1)在CP表的价格列上定义大于等于0的检查(CHECK)约束。

给出相应的SQL语句:

Altertablecpaddconstraintcp2check(价格>0)

 

测试:

试着在CP表中插入一条记录,其“价格”字段的值小于0(如:

-2),给出测试结果:

 

(2)定义一个大于等于5的规则check_kcl,并将其绑定到CP表的库存量列,

给出相应的SQL语句:

Altertablecpaddconstraintcheck_cklcheck(库存量>=5)

 

测试:

试着在CP表中插入一条记录,其“库存量”字段的值小于5(如:

2),给出测试结果:

 

(3)解除

(2)中绑定,删除该规则,请写出相关SQL语句。

给出相应的SQL语句和运行结果截图:

Altertablecpdropcheck_ckl

 

测试:

试着在CP表中插入一条记录,其“库存量”字段的值小于5(如:

2),给出测试结果:

 

思考:

比较

(2)和(3)的测试结果,理解自定义完整性(约束)的作用?

对输入的数据起限制作用。

 

9.4.完成以下实验练习

(1)设定XSS表中的地区值只能是“镇江”,“无锡”,“上海”,“南京”,“厦门”中的任意一个,请问如何解决该问题?

请写出一种具体的解决方法。

给出相应的SQL语句:

Altertablexssaddconstraintxss1check(地区in(‘镇江’,’无锡’,’上海’,’南京’,’厦门’))

测试:

试着在XXS表中插入一条记录,其“地区”字段的值为福州。

给出测试结果:

(2)用户要求:

在输入XSS表中的数据时,若“地区”列没有提供数据,系统应自动取值“厦门”,请问如何解决该问题?

请写出一种具体的解决方法。

给出相应的SQL语句:

Altertablexssaddconstraintxss2default(‘厦门’)for地区

测试:

试着在XXS表中插入一条记录,其“地区”字段的值为空。

而后查询插入的数据。

给出测试结果:

(3)用户要求:

CPXSB表中的“数量”列的取值只能为1—20之间的整数,且在用户没有输入数据时自动取值1,请问如何解决该问题?

请写出一种具体的解决方法。

给出相应的SQL语句:

Altertablecpxsbaddconstraintcpxsb1default(‘1’)for数量

Altertablecpxsbaddconstraintcpxsb2check(数量>=1and数量<=20)

 

测试:

试着在CPXSB表中插入一条记录,其“数量”字段的值为45。

给出测试结果:

测试:

试着在CPXSB表中插入一条记录,其“数量”字段的值为空。

而后查询插入的数据。

给出测试结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2