您好,欢迎来到微智科技网。
搜索
您的当前位置:首页湖南农业大学学生实验报告

湖南农业大学学生实验报告

来源:微智科技网
湖南农业大学学生实验报告

姓名熊清 学号 201541842320 年级专业及班级20 15级 计算机(3)班 成绩

课程名称 数据库原理与应用 实验名称 数据库完整性控制 实验目的、要求 1)理解DBMS的完整性控制机制; 2)掌握使用SQL实现数据库三类完整性控制的方法; 3)理解触发器原理,掌握触发器的定义和使用 实验原理 数据库完整性控制原理 主要设备、器材 微型计算机 SQL数据库软件 实验步骤及原始数据记 1、实体完整性约束机制、 1)使用ALTER TABLE语句为STUDENTS表添加实体完整性约束 USETeaching ALTERTABLESTUDENTS ADDCONSTRAINTPK_STUDENTSPRIMARYKEY(studentID) 2)在STUDENTS表上,执行如下类似的SQL语句: USETeaching INSERTINTOSTUDENTS(studentID,sname,IDcard) VALUES(null,'test1','430321199010012514') INSERTINTOSTUDENTS(studentID,sname,IDcard) VALUES('200942348206','test2','430022199112183420') 插入的第一个元组主码值为null,第二个元组主码不唯一,都是违约操作,无法执行 2、参照完整性约束机制 1)使用ALTER TABLE语句为STUDENTS表添加参照完整性约束,定义其college属性和COLLEGES表主码collegeID的参照关系,主要违约响应有no action/cascade/set null三种操作,SQL语句事例如下: ALTERTABLESTUDENTS ADDCONSTRAINTFK_STUDENTS_COLLEGES FOREIGNKEY(college)REFERENCESCOLLEGES(collegeID) ONUPDATECASCADE ONDELETENOACTION 2)分别执行下列SQL语句: USETeaching INSERTINTOSTUDENTS(studentID,sname,IDcard,college) VALUES('201121032310','test3','430321199010012526',null) INSERTINTOSTUDENTS(studentID,sname,IDcard,college) VALUES('201042348208','test4','430322199206183431',30) UPDATECOLLEGES SETcollegeID=27 WHEREcname='园艺园林学院' DELETE FROMCOLLEGES WHEREcollegeID=27 结果:1)中的SQL语句可以执行 3、用户自定义完整性约束机制 设计SQL语句,并实现如下操作 ALTERTABLESTUDENTS ADDCONSTRAINTUQ_STUDENTS_IDCARDUNIQUE(IDcard) ALTERTABLETEACHERS ADDCONSTRAINTCK_TEACHERS_SEXCHECK(sexIN('男','女')); ALTERTABLETEACHERS ADDCONSTRAINTCK_TEACHERS_COLLEGENOTNULL;此处有点错误 ALTERTABLETEACHERS ADDCONSTRAINTCK_TEACHERS_DEGREECHECK(degreeIN('学士','硕士','博士')); ALTERTABLECOURSES ADDCONSTRAINTUQ_COURSES_CNAMEUNIQUE(cname); ALTERTABLECOURSES ADDCONSTRAINTCK_COURSES_CREDITCHECK(creditBETWEEN 0 AND 6); ALTERTABLESCTS ADDCONSTRAINTCK_SCTS_TOTALCHECK(total_markBETWEEN 0 AND 100) ALTERTABLESCTS ADDCONSTRAINTCK_SCTS_EXAMCHECK(exam_gradeBETWEEN 0 AND 100) ALTERTABLESCTS ADDCONSTRAINTCK_SCTS_REGULARCHECK(regular_gradeBETWEEN 0 AND 100) 指导教师签名: 20 年 月 日 实验结果与分析 触发器的定义和使用 1)在SCTS表上创建一个响应UPDATE和DELETE操作的DML触发器,实现如下功 能:当用户修改考试成绩(exam_grade)或者删除选课记录时,激发触发器,显 示用户当前所操作记录的有关信息。 首先创建触发器: CREATETRIGGERTri_U_D_SCTS ONSCTS AFTERUPDATE,DELETE AS IFUPDATE(exam_grade) BEGIN SELECT‘修改数据为:’I.studentid学号,I.courseid课程号, D.exam_grade原成绩,I.exam_grade新成绩 FROMDELETED,INSERTEDI WHERED.studentid=I.studentidandD.courseid=I.courseidand D.teacherid=I.teacherid END 2)运行上述创建触发器的SQL语句,完成触发器定义。然后在查询窗口输入以下UPDATE语句,修改学生考试成绩列,自动激发触发器 UPDATESCTS SETexam_grade=exam_grade+5 WHEREstudentid=’200741842117’andcourseid=’20077Z0’ Andteacherid=’180094’ 3)在查询窗口输入以下UPDATE语句,修改非考试成绩属性列,自动激发触发器。 UPDATESCTS SETregular_grade=regular_grade+5 WHEREstudentid=’200741842117’andcourseid=’20077Z0’ Andteacherid=’180094’ 4)在查询命令窗口中输入以下DELETE语句,删除成绩记录,自动激发触发器。 DELETE FROMSCTS WHEREstudentid=’200741842117’andcourseid=’20077Z0’ Andteacherid=’180094’ 5)删除触发器,使用DROP TRIGGER语句。 DROPTRIGGERTri_U_D_SCTS 2017年 05月 03日 备注

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务