实验5 数据完整性约束实验
实验5 数据完整性约束实验

实验D05:数据完整性约束实验一、实验名称和性质二、实验目的1.掌握数据完整性约束的类型;2.掌握SQL SERVER中的相关完整性约束;三、实验的软硬件环境要求硬件环境要求:PC机(单机)使用的软件名称、版本号以及模块:Windows XP下的SQL Server 2000(或SQL Server 2005)四、知识准备1.SQL SERVER中的完整性约束a)Primary key约束:利用表中的一列或多列来唯一标识一行数据.能确保primary key对应的数据列不为空,且数据不重复.b)default约束:处理用户不包含全部数据列的数据插入.c)check约束通过检查输入数据的值来维护数据的完整性.d)unique约束确保主键外的列数据的唯一性e) Foreign key主要用来维护两个表之间的数据一致性.规则的创建:Create rule 规则名As布尔表达式规则的绑定:Sp_bindrule rulename, ‘table.column’Sp_unbindrule ‘talbe.column’2.创建数据表时指明完整性约束CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][,<列名> <数据类型>[ <列级完整性约束条件>] ] …[,<表级完整性约束条件> ] );<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件五、实验内容1.建立新表时增加完整性约束。
2.为已有表添加完整性约束。
3.为两表建立关联,实现参照完整性。
六、验证性实验每小题语句输入好后执行,观察执行后有什么结果?想想为什么?1.PRIMARY KEY主键约束的建立(1)建立表时加主键约束(2)在已有的表上添加约束2.DEFAULT约束3.CHECK 约束4.UNIQUE 唯一性约束的建立5.FOREIGN KEY外键约束的建立6.规则的建立建立规则:规则的绑定:七、设计性实验1.实验要求(1)在S表中添加完整性约束:SNO设置为主键,SEX 的缺省值为‘女’,AGE 的有效值为16-25。
10000110010实验五 数据完整性的实现(2-4学时

实验五数据完整性的实现(2-4学时)实验目的和要求:1)了解和领会数据完整性的意义2)学会CHECK、DEFAULT、RULE等约束的使用3)掌握PRIMARY KEY、FOREIGN KEY主外键的设置4)了解惟一键UNIQUE5)掌握标识列IDENTITY的使用实验内容和步骤:分别在企业管理器和查询分析器中使用各种约束和主外键,实现STUDENT数据库中三张数据表的数据的实体完整性、域完整性及参照完整性。
1) 创建各数据表的主外键,使学生选课和成绩情况登记符合学校教学管理规定。
●主键设置方法一:在SQL语句创建数据表定义列时添加,参见实验三,S_Number Var char(10) not null primary keyC_Number Var char(10) not null primary keyprimary key(S_Number,C_Number)●主键设置方法二:打开企业管理器→选中相应的数据表,单击鼠标右键→选择“设计表”,进入表设计窗口→单击所需设置的列(如果是多列,按住CTRL同时,单击所需设置的列),然后单击鼠标右键→选择“设置主键”。
分别在三张数据表中设置,并删除。
●主键设置方法三:在查询分析管理器中使用SQL语句实现USE STUDENTGOALTER TABLE T_studentADD PRIMARY KEY CLUSTERED(S_Number)goALTER TABLE T_courseADD PRIMARY KEY(C_Number)goALTER TABLE T_scoreADD PRIMARY KEY(S_Number,C_Number)注意:1、主键设置后,数据表中的主键列就不能出现重复行,试操作验证2、每张数据表中的主键只能拥有一个,但主键可有几列共同组成,例如数据表T_score。
●执行以下语句:INSERT INTO T_SCORE V ALUES('04120220','10202',79)出现什么情况?执行以下SQL语句二次:INSERT INTO T_SCORE V ALUES('04120220','10202',79)出现什么情况,为什么?●外键的设置方法一:打开企业管理器→选中相应的数据表,单击鼠标右键→选择“设计表”,进入表设计窗口→在表设计窗口中单击鼠标右键,选择“关系”→在弹出的属性窗口中,分别选择主表、主键、从表、外键→选择“关闭”即可实现。
数据库实验_实验-5-完整性约束

试验五数据控制(完整性)
一、实验目的
熟悉SQL语句对数据库进行完整性控制的方法。
二、实验环境
微机;
Windows xp操作系统;
安装了SQL SERVER。
三试验内容
使用SQL进行数据完整性控制:包括三类完整性、check短语、constrain子句。
1、在创建下列关系表时完成如下约束:定义实体完整性;参照完整
性(外码、在删除S中的元组时级联删除SC中相应元组、当更
新S中的Sno时同时更新SC中的Sno);用户定义完整性:学
生年龄<30、所在系取值唯一。
2、修改S中的约束条件,学号在100-1000之间。
学生关系表S :
创建课程关系表C :
创建成绩关系表SC :
3、用实验验证当操作违反了完整性约束时,系统如何处理?
问题:外键与参照主键是否一定要相同?。
实验五 - 关系模型的完整性约束---精品资料

(Tprof = '教授' and Tcomm = 4000 or Tprof = '副教授' and Tcomm = 2000 or Tprof = '讲师' and Tcomm = 1500 or Tprof = '助教' and Tcomm = 1000)
实验5.3 域完整性约束
①
②
实验5.3 域完整性约束
实验5.3 域完整性约束
用SQL删除表jx_Tea中的Tprof和Tcomm 之间的CHECK约束
??
交互式删除表TEST_S中列Sgender的 DEFAULT约束和列Sage的CHECK约束
实验报告
写出以上练习中要求用SQL语句实现的操 作
实验5.2 参照完整性约束
注意:建立外键关系 前,一定要先在jx_Stu 中对Sno建立PK
① ④ ② ③ ⑤
实验5.2 参照完整性约束
用SQL创建表jx_Tea与jx_TeaCourse之间 的参照关系
ALTER TABLE jx_TeaCourse WITH NOCHECK ADD CONSTRAINT FK_T_TC FOREIGN KEY (Tno) REFERENCES T(Tno) ON DELETE CASCADE
用SQL为现有表jx_Tea在Tno列上创建 PRIMARY KEY约束
打开“表设计器”,确认表jx_Tea中的Tno列 的“允许空”属性为“非空”(即没有√), 然后保存退出“表设计器”。 打开查询分析器,输入下列SQL语句
ALTER TABLE jx_Tea ADD CONSTRAINT PK_TNO PRIMARY KEY(Tno)
实验五索引和数据完整性

实验五索引和数据完整性1、目的与要求(1)掌握索引的使用方法。
(2)掌握数据完整性的实现方法。
2、实验准备(1)了解索引的作用与分类。
(2)掌握索引的创建方法。
(3)理解数据完整性的概念及分类。
(4)掌握各种数据完整性的实现方法。
3、实验容(1)建立索引。
①使用CREATE INDEX语句创建索引。
A、对YGGL数据库的Employees表中的DepartmentID列建立索引。
在“查询分析器”窗口中输入如下程序并执行。
B、在Employees表的Name列和Address列上建立复合索引。
C、对Department表上的DepartmentName列建立唯一非聚集索引。
【思考与练习】A、索引创建后在对象资源管理器中查看表的索引。
上面分别创建了Employees表和Department表的索引,在对象资源管理器中的表中将相应的表打开,在“索引”中显示该表中建立的索引。
详细结果如上面截图中显示。
B、了解索引的分类情况。
按索引的组织方式能够将索引分为聚集索引和非聚集索引两种类型。
聚集索引将数据行的键值在表排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。
非聚集索引完全独立于数据行的结构。
C、使用CREATE INDEX语句能够创建主键吗?D、在什么情况下能够看到建立索引的好处?数据库索引是为了增加查询速度而对表字段附加的一种标识。
数据库的索引并不是只有好处或者只有坏处的。
当我们的数据库足够大,恰当的建立索引就会大大的提高查询搜索的速度;在这里举个反例,像查询性别这种大量重复的字段时候,是否建立索引是没有多大区别的;还有当表数据不是很多的时候建立索引也是没有多大意义的,因为索引也是要占用资源的。
但是当我们数据库非常大时候,经常进行GROUP BY查询时候,若将GROUP BY字段上建立索引就会很大程度上面较少查询搜索所花费的时间。
②使用界面方式创建索引。
使用界面方式在Employees表的PhoneNumber列上创建索引。
完整性约束实验

数据库的完整性约束一、实验目的1.掌握主键约束、外键约束及及check约束的用法;2.掌握默认值约束的应用;二、实验环境已安装SQL Server 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值及规则;3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;1.请用至少2种方法定义stu数据库中student表的主键sno;2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;3.为表course中的字段cname添加唯一值约束;4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入;6. 定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;(不用做)7. 定义stu数据库中student表中学生年龄值在16-25范围内;8. 定义stu数据库中student表中学生姓名长度在2-8之间;9. 定义stu数据库中student表中学生性别列中只能输入“男”或“女”;10. 定义stu数据库student表中学生年龄值默认值为20;11. 修改student表学生的年龄值约束可以为15-30范围内;(不用做)12. 删除上述唯一值约束、外键约束及check约束;13.向下列三个表中分别插入如下数据:SC表Course 表14、在上面的基础上分别向studentinfo 数据库中的student, course, sc 表中添加少8条数据。
实验五:数据完整性实验

实验五:数据完整性实验一、实验目的:掌握使用SQL中的PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字是现实体完整性、参照完整性及用户定义完整性约束定义。
二、实验步骤:(一)验证分析部分1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性。
在查询分析器窗体下键入如下命令:CREATE TABLE Student(sno CHAR(5) NOT NULL UNIQUE,sname CHAR(8),ssex CHAR(1),sage INT,sdept CHAR(20),CONSTRAINT PK_Student PRIMARY KEY(sno));UPDATE Student SET sno=’ ‘ WHERE sdept=’CS’;UPDATE Student SET sno=’200215121 ‘WHERE sname=’王敏’;运行并观察结果。
2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证实体完整性。
在查询分析器窗体下键入如下命令:(1)先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON update CASCADE;然后执行以下语句Update Student SET sno=’200215128 ‘ WHERE sno=’200215121’;(2) 先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON delete CASCADE;然后执行以下语句delete from student WHERE sno=’200215122’;运行并观察结果。
实验五 数据库完整性与安全性实验

实验五数据库完整性与安全性实验1、实验目的1.通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加深对数据完整性的理解。
2.通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对数据库安全性的理解2、实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
数据库版本:MySQL 6.23、实验内容3.1完整性实验:(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;在create table 时已经定义了各个基表的主键。
因此,首先对每个基表删除主键,再添加主键。
实现实体完整性约束。
如下图。
删除主键:添加主键:sc表中的cno和sno分别是course表和student表的外关键字。
下图为给sc表添加student和course的外键,实现参照完整性约束。
alter table sc add constraint fk_student foreign key(sno) references student(sno);alter table sc add constraint fk_course foreign key(cno) references course(cno);主键和外键均添加成功,输入show create table 命令来查看各基表信息。
(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;向课程表中插入课程号为C01的课程。
向学生表中插入学号为30201的学生。
由上面两个实验来看,分别对student和course表插入具有相同学号和相同课程号的学生信息和课程信息,都显示sql语句错误信息为:Duplicate entry *** for key ‘PRIMARY’。
验证了实体完整性约束。
(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;插入成绩信息是学号为31428(student中存在),课程号为C07(course中不存在)的学生成绩信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验D05:数据完整性约束实验
一、实验名称和性质
二、实验目的
1.掌握数据完整性约束的类型;
2.掌握SQL SERVER中的相关完整性约束;
三、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Windows XP下的SQL Server 2000(或SQL Server 2005)
四、知识准备
1.SQL SERVER中的完整性约束
a)Primary key约束:利用表中的一列或多列来唯一标识一行数据.能确保primary key
对应的数据列不为空,且数据不重复.
b)default约束:处理用户不包含全部数据列的数据插入.
c)check约束通过检查输入数据的值来维护数据的完整性.
d)unique约束确保主键外的列数据的唯一性
e) Foreign key主要用来维护两个表之间的数据一致性.
规则的创建:
Create rule 规则名
As
布尔表达式
规则的绑定:
Sp_bindrule rulename, ‘table.column’Sp_unbindrule ‘talbe.column’2.创建数据表时指明完整性约束
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …[,<表级完整性约束条件> ] );
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
五、实验内容
1.建立新表时增加完整性约束。
2.为已有表添加完整性约束。
3.为两表建立关联,实现参照完整性。
六、验证性实验
每小题语句输入好后执行,观察执行后有什么结果?想想为什么?1.PRIMARY KEY主键约束的建立
(1)建立表时加主键约束
(2)在已有的表上添加约束
2.DEFAULT约束
3.CHECK 约束
4.UNIQUE 唯一性约束的建立
5.FOREIGN KEY外键约束的建立
6.规则的建立
建立规则:
规则的绑定:
七、设计性实验
1.实验要求
(1)在S表中添加完整性约束:SNO设置为主键,SEX 的缺省值为‘女’,AGE 的有效值为16-25。
(2)创建1张与S相同的表S1,在创建的同时将SNO设置为主键,SEX 的却省值为‘女’,AGE 的有效值为16-25 ,并将S表中的数据插入到S1中,插入不同的记录来严整设置的完整性。
(3)创建1张与SC相同的表SC1,将(SNO,CNO)设置为主键,SNO和CNO设置为外键,并将SC表中的数据复制到SC1中,插入不同的记录来验证设置的完整性。
(4)创建1张与C表相同的表C1,将C中数据插入到C1后,在C1上添加完整性约束:将(CNO)设置为主键,CPNO 引用 CNO,CREDIT值为1-6。
2.思考题
SQL Server 中有哪些完整性功能?保证数据完整性还需要注意哪些方面的问题?。