长沙理工大学数据完整性(实验报告).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长沙理工大学数据完整性(实验报告)

长 沙 理 工 大 学 计算机与通信工程学院 实 验 报 告 课程名称 数据库原理与技术 实验项目名称 数据完整性 班级 学号 姓名 实验日期 年 月 日 指导教师签字 一﹑实验目的 掌握SQL Server管理平台和Transact-SQL语句(Create table、alter table)定义和删除约束的方法,并了解约束的类型。 掌握通过SQL Server管理平台和Transact-SQL语句Create trigger创建触发器的方法和步骤; 掌握引发触发器的方法; 掌握使用SQL Server管理平台或Transact-SQL语句修改和删除触发器; 二﹑实验平台 操作系统:Windows xp DBMS:SQL Server 2005 三﹑实验内容和步骤 1.在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。 (1)创建表的同时创建约束。表结构如图1所示。 图1 要创建的表的结构 约束要求如下: 将学号设置为主键(PRIMARY KEY),主键名为pk_sid。 为姓名添加唯一约束(UNIQUE),约束名为uk_name。 为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。 为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期1988-1-1。 (2)使用ALTER TABLE语句的DROP CONSTRAINT参数项在查询设计器中删除为stu_con表所建的约束。 2.为studentsdb数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。 3.为grade表建立一个名为insert_g_tr 的INSERT触发器,当用户向grade表中插入记录时,如果插入的是在curriculum表中没有的课程编号,则提示用户不能插入记录,否则提示记录插入成功。在进行插入测试时,分别输入以下数据: 学号 课程编号 分数 0004 0003 76 0005 0007 69 观察插入数据时的运行情况,说明为什么? 变量定义:DECLARE @fkc_id varchar(8) 提示记录插入成功:PRINT ‘记录插入成功’ 提示不能插入记录:RAISERROR(‘无此课程,不能插入记录’,16,1) 4.为curriculum表创建一个名为del_c_tr的DELETE触发器,该触发器的作用是禁止删除curriculum表中的记录。 CREATE TRIGGER del_c_tr ON curriculum Instead of delete AS RAISERROR(‘禁止删除curriculum表中的记录’) ROLLBACK TRANSACTION 5.为student_info表创建一个名为update_s_tr的UPDATE触发器,该触发器的作用是禁止更新student_info表中的“姓名”字段的内容。 CREATE TIGGER update_s_tr ON student_info FOR UPDATE AS DECLARE @name_old varchar(8) DECLARE @name_new varchar(8) SET @name_old=(SELECT 姓名 FROM Deleted) SET @name_new=(SELECT 姓名 FROM Inserted) IF (@name_old!=@name_new) BEGIN RAISERROR(‘不能修改姓名’,16,1) END 6.使用Transact-SQL语句DROP TRIGGER删除update_s_tr触发器。 DROP TRIGGER student_info.uodate_s_tr 7.为student_info表建立删除触发器del_s_tr,要求当student_info表的记录被删除后,grade表中相应的记录也能自动删除。 CREATE TIGGER del_s_tr ON student_info FOR DELETE AS DECLARE @stu_no v

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档