《Oracle大型数据库基础开发教程》 实验指导 3数据完整性实验_第1页
《Oracle大型数据库基础开发教程》 实验指导 3数据完整性实验_第2页
《Oracle大型数据库基础开发教程》 实验指导 3数据完整性实验_第3页
《Oracle大型数据库基础开发教程》 实验指导 3数据完整性实验_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三数据库完整性一、实验目的1、理解并掌握关系的三类数据完整性的概念以及域完整性含义;2、理解并掌握PRIMARYKEY、CHECK、FOREIGNKEY-REFERENCES、NOTNULL、UNIQUE等关键字的含义及规则;3、掌握使用SQL语句完整性的设置。二、实验内容1、练习使用SQL语句设置PRIMARYKEY、NOTNULL、UNIQUE、CHECK、FOREIGNKEY约束;2、练习约束的查看;3、练习使用SQL语句删除约束。三、实验步骤1、以SCOTT账户登录ORCL数据库(1)首先运行CMD,执行SQLPLUSSYS/Oracle11ASSYSDBA;启动SQL*PLUS,登录到ORCL数据库。(2)执行CONNECTSCOTT/tiger;连接到ORCL数据库。(3)使用SQL创建表:Student、SC、Course,表结构如实验二所示。(4)向Student、SC、Course表中插入实验二所示的记录。2、主键约束(1)使用ALTERTABLE设置主键,约束名:PK_SNOCNO①创建表SC1,结构如下:snovarchar(12)cnovarchar(3)gradenumber(3)②用命令ALTERTABLE设置(SNO,CNO)为主键,约束名为PK_SNOCNO③数据验证,插入一条记录指定SNO,CNO为NULL进行数据验证。(2)分别设计一个Student、Course表的主键属性为NULL和主键值重复的验证记录。3、UNIQUE约束(1)用CREATETABLE创建表STUDENT2,并设置sname为唯一约束,结构如下:snovarchar(12)主键snamevarchar(8)UNIQUEsagenumber(3)Ssexvarchar(2)Sdeptvarchar(20)插入两条记录指定Sname为重复的值,进行UNIQUE数据验证。(2)使用ALTERTABLE设置UNIQUE约束=1\*GB3①使用ALTERTABLE设置STUDENT的SNAME为UNIQUE约束,约束名为:UQ_SN=2\*GB3②数据验证插入一条记录指定Sname为重复的值,进行UNIQUE数据验证。③删除约束:UQ_SN4、设置NOTNULL约束(1)用CREATETABLE创建表STUDENT3,并设置sname为非空约束,结构如下:snovarchar(12)主键snamevarchar(8)NOTNULLsagenumber(3)Ssexvarchar(2)Sdeptvarchar(20)插入一条条记录指定Sname为NULL,进行NOTNULL约束数据验证(2)使用ALTERTABLE设置NOTNULL约束①使用ALTERTABLE设置STUDENT3表中SDEPT为NOTNULL约束,约束名为:SDNL②数据验证插入一条记录指定Sdept为NULL,进行NULL数据验证。③删除约束:SDNL5、设置CHECK约束(1)用CREATETABLE创建表STUDENT4,并设置sage的检查条件:SAGE<=70ANDSAGE>=18,结构如下:snovarchar(12)主键snamevarchar(8)sagenumber(3)Ssexvarchar(2)Sdeptvarchar(20)进行数据验证CHECK约束插入一条记录指定Sage为18-70之外的值,进行CHECK数据验证。(2)使用ALTERTABLE设置CHECK约束①使用ALTERTABLE设置SC表中GRADE检查条件:GRADE<=100ANDGRADE>=0,约束名为:SCCK②数据验证插入一条记录指定Grade为0-100之外的值,进行CHECK数据验证。③删除约束:SCCK(3)设置student的检查约束,约束的名称为sexchk,条件:性别只能为男和女。仿照上面并设计一个数据验证记录。6、设置FOREIGNKEY约束(1)CREATETABLE设置FOREIGNKEY约束,执行如下命令:=1\*GB3①createtableZY(zyhchar(2)primarykey,zymchar(20));=2\*GB3②createtableXSZY(xhchar(10)PRIMARYKEY,xmchar(8),nlnumber(3),zyhchar(2)constraintcon_xszreferenceszy(zyh))=3\*GB3③向ZY表和XSZY表插入如下记录:=4\*GB3④数据验证:在XSZY中插入外键值在ZY主键值(ZYH)中不存在的记录:INSERTINTOXSZYVALUES(‘004’,’赵六’,19,‘04’);?在XSZY中修改外键值在ZY主键值(ZYH)中不存在的记录:UPDATEXSZYSETZYH=’07’WHEREXH=’001’;?=5\*GB3⑤删除约束con_xsz(2)使用ALTERTABLE设置FOREIGNKEY约束=1\*GB3①检查STUDENT表和SC表主键-外键数据是否有冲突SELECT*FROMSTUDENTSELECT*FROMSC=2\*GB3②设置SC的Sno为外键,该外键参照Student的主键(Sno),约束名位fksno1。=3\*GB3③数据验证删除主表的记录(从表有对应的记录):修改主表的记录(从表有对应的记录):修改子表的记录(主表没有对应的记录):删除子表的记录(主表有对应的记录):=4\*GB3④查看数据,执行如下命令,查看规则是否起作用:SELECT*FROMSTUDENTSELECT*FROMSC⑤回滚数据:ROLLBACK⑥删除约束FKSNO1:(3)使用ALTERTABLE设置FOREIGNKEY约束:ONDELETE规则①检查STUDENT表和SC表主键-外键数据是否有冲突SELECT*FROMSTUDENTSELECT*FROMSC②设置SC的Sno为外键,该外键参照Student的主键(Sno),约束名位fksno2,约束规则为:ONDELETE。③数据验证删除主表的记录(从表有对应的记录):修改主表的记录(从表有对应的记录):修改子表的记录(主表没有对应的记录):删除子表的记录(主表有对应的记录):④查看数据,执行如下命令,查看规则是否起作用:SELECT*FROMSTUDENTSELECT*FROMSC⑤删除约束FKSNO2:(4)使用ALTERTABLE设置FOREIGNKEY约束:ONDELETESETNULL规则=1\*GB3①检查ZY和XSZY数据是否有冲突SELECT*FORMZYSELECT*FROMXSZY=2\*GB3②设置XSZY的ZYH为外键,该外键参照ZY的主键(ZYH),约束名位FKZYSNULL,约束规则为:SETNULL。=3\*GB3③数据验证:DELETEFROMzyWHEREzyh=‘02’=4\*GB3④查看数据,执行如下命令,查看规则是否起作用:SELECT*FROMZY;SELECT*FROMXSZY;⑤删除约束FKZYSNULL;(5)设置SC表和course表的参照关系,参照规则为:ONDELETECASCADE,约束的名称为SCCO_FK。提示:设置之前一定要查看SC表和course表的数据是否有冲突。7、删除STUDENT、SC所有约束,如果已删除则忽略四、实验报告要求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论