欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    安徽工业大学周兵数据库实验报告.docx

    • 资源ID:67262020       资源大小:230.67KB        全文页数:28页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    安徽工业大学周兵数据库实验报告.docx

    数据库概论实验报告书专业班级学 号姓 名指导教师周 兵安徽工业大学计算机学院 数据库系统概论实验报告书安徽工业大学计算机学院实验一:数据定义语言 实验日期 实验目的 2012 年 12 月 6 日熟悉 Oracle上机环境及 Oracle客户端的配置;熟练掌握和使用 DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。 实验内容 Oracle上机环境以及 Oracle客户端的配置参见附录。1 SQL数据定义语句:例 1-1:(建立数据库表) 建立教学数据库的四个数据库表,其中 Student表中不包含 SSEX(C,2)字段,Sname 字段为 Sname(C,8)且可为空。例 1-2: (修改数据库表) 在 Student表中增加 SEX(C,2) 字段。例 1-3: (修改列名) 将 Student表中列名 SEX修改为 SSEX。例 1-4: (修改数据库表) 将 Student表中把 Sname 字段修改为 Sname(C,10)且为非空。例 1-5: (建立索引) 为 Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。例 1-6: (删除索引) 删除索引 SC_GRADE。例 1-7: (建立数据库表) 建立数据库表 S1(SNO,SNAME,SD,SA),其字段类型定义与 Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。例 1-8: (修改数据库表) 删除成绩表 Score的参照完整性约束关系。例 1-9: (修改数据库表) 添加成绩表 Score的参照完整性约束关系。例 1-10: (修改数据库表名) 将数据库表 S1改名为 Student_Temp。 实验要求 熟悉 Oracle上机环境,掌握 Oracle客户端的配置; 建立数据库表,修改数据库表结构,建立、删除索引; 实验方法 按照附录中的操作步骤进行客户端的配置; 将实验需求用 SQL语句表示; 执行 SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。 数据库系统概论实验报告书安徽工业大学计算机学院8 CONSTRAINT Sno_pk PRIMARY KEY(SNO);表已创建。SQL> CREATE TABLE Teach2 (TNAME CHAR(8),8 CONSTRAINT Teach_CNO_fk FOREIGN KEY(CNO) REFERENCES Course(CNO);SQL> CREATE TABLE Score6 CONSTRAINT Score_pk PRIMARY KEY(SNO,CNO),7 CONSTRAINT Teach_SNO_fk FOREIGN KEY(SNO) REFERENCES Student(SNO),8 CONSTRAINT Score_CNO_fk FOREIGN KEY(CNO) REFERENCES Course(CNO);表已创建。 数据库系统概论实验报告书安徽工业大学计算机学院1-2SQL> ALTER TABLE Student ADD SEX CHAR(2);1-31-41-51-61-71-81-9 数据库系统概论实验报告书安徽工业大学计算机学院SQL> ALTER TABLE Score ADD CONSTRAINT Teach_SNO_fk FOREIGN KEY(SNO) REFERENCESStudent(SNO);SQL> ALTER TABLE Score ADD CONSTRAINT Score_CNO_fk FOREIGN KEY(CNO) REFERENCESCourse(CNO);表已重命名。这一次实验主要是书上第四章的内容,通过实验,我熟悉了 Oracle 上机环境,掌握了 Oracle客户端的配置,一级 CREATE、DROP、ALTER和 RENAME等语句。 数据库系统概论实验报告书安徽工业大学计算机学院实验二:数据操纵语言 实验日期 实验目的 2012 年 12 月 6 日在实验一的基础上,熟练掌握和使用 DML语言,对数据进行增加、修改和删除操作。 实验内容 2 SQL数据操纵语句:例 2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。例 2-2:(多行插入) 将表 Student表中计算机系(CS)的学生数据插入到表 S1中。(以上操作中,注意用 COMMIT提交数据,将数据保存到数据库服务器)例 2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。例 2-2:(多行插入) 将表 Student中在计算机系(CS)的学生数据插入到表 Student_Temp中。(以上操作中,注意用 COMMIT提交数据,将数据保存到数据库服务器)例 2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。例 2-4: (修改数据) 将 Student_Temp表中所有学生的年龄加 2。例 2-5: (修改数据) 将 Course表中程序设计课时数修改成与数据结构的课时数相同。例 2-6: (插入数据) 向 Score表中插入数据(98001, 001, 95),根据返回信息解释其原因。例 2-7: (插入数据) 向 Score表中插入数据(97001, 010, 80),根据返回信息解释其原因。例 2-8: (删除数据) 删除 Student表中学号为96001的学生信息,根据返回信息解释其原因。例 2-9: (删除数据) 删除 Course表中课程号为003 的课程信息,根据返回信息解释其原因。例 2-10: (删除数据) 删除学生表 Student_Temp中学号以 96打头的学生信息。(此操作后,注意用 ROLLBACK回退可能更新的数据)例 2-11: (删除数据) 删除数据库表 Student_Temp中所有学生的数据。例 2-12:(删除表)删除数据库表 Student_Temp和 Student_Gr。 实验要求 对数据库表进行插入、修改和删除数据的操作。 实验方法 对数据库表进行插入、修改和删除数据的操作。 实验方法 按照附录中的操作步骤进行客户端的配置; 将实验需求用 SQL语句表示; 执行 SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。实验总结 数据库系统概论实验报告书安徽工业大学计算机学院INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('96001','马小燕','CS','01','女',21);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('96002','黎明','CS','01','男',18);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('96003','刘东明','MA','01','男',18);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('96004','赵志勇','IS','02','男',20);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('97001','马蓉','MA','02','女',19);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('97002','李成功','CS','01','男',20);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('97003','黎明','IS','03','女',19);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('97004','李丽','CS','02','女',19);INSERT INTO Student(SNO,SNAME,SDEPT,SCLASS,SSEX,SAGE) VALUES('96005','司马志明','CS','02','男',18);INSERT INTO Teach VALUES('王成刚','男','004','05-9月-1999','CS'); 数据库系统概论实验报告书安徽工业大学计算机学院INSERT INTO Score VALUES('96001','001',77.5);INSERT INTO Score VALUES('96001','003',89);INSERT INTO Score VALUES('96001','004',86);INSERT INTO Score VALUES('96001','005',82);INSERT INTO Score VALUES('96002','001',88);INSERT INTO Score VALUES('96002','003',92.5);INSERT INTO Score VALUES('96002','006',90);INSERT INTO Score VALUES('96005','004',92);INSERT INTO Score VALUES('96005','005',90);INSERT INTO Score VALUES('96005','006',89);INSERT INTO Score VALUES('96005','007',76);INSERT INTO Score VALUES('96003','001',69);INSERT INTO Score VALUES('96001','001',96);INSERT INTO Score VALUES('96001','008',95);INSERT INTO Score VALUES('96004','001',87);INSERT INTO Score VALUES('96003','003',91);INSERT INTO Score VALUES('96002','003',91);INSERT INTO Score(SNO,CNO) VALUES('96002','004');INSERT INTO Score VALUES('96002','006',92);INSERT INTO Score VALUES('96004','005',90);INSERT INTO Score VALUES('96004','006',85);INSERT INTO Score VALUES('96004','008',75);INSERT INTO Score VALUES('96003','001',59); 数据库系统概论实验报告书安徽工业大学计算机学院2-2SQL> INSERT INTO Student_Temp SElECT SNO,SNAME,SDEPT,SAGE FROM Student WHEREStudent.SDEPT='CS'2-3:SQL>INSERT INTO Student_Gr(SNO,AVGSCORE) SELECT SNO,AVG(Score) FROM SCORE GROUPBY SNO;SQL>UPDATE Course SET CTIME=(SELECT CTIME FROM Course WHERE CNAME='数据结构')WHERE CNAME='程序设计'因为违反了完整性约束 CONSTRAINT SSno_fk FOREIGN KEY(SNO) REFERENCES Student(SNO)Student表中没有建立 98001的学生因为违反了完整性约束 CONSTRAINT Cno_fk FOREIGN KEY(CNO) REFERENCES Course(CNO)Course表中没有 010的课程号因为违反了完整性约束 CONSTRAINT SSno_fk FOREIGN KEY(SNO) REFERENCES Student(SNO)SQL>DELETE FROM Course WHERE CNO='003' 数据库系统概论实验报告书安徽工业大学计算机学院因为违反了完整性约束 CONSTRAINT Cno_fk FOREIGN KEY(CNO) REFERENCES Course(CNO)SQL>DROP TABLE Student_Temp CASCADE CONSTRAINT;SQL>DROP TABLE Student_Gr CASCADE CONSTRAINT;通过这一节的实验,我对数据库表进行插入、修改和删除等数据的操作已经能熟练运用,(INSERT、UPDATE、DELETE 等),这些语句和上一节实验的用法基本上都差不多,比较容易。 数据库系统概论实验报告书安徽工业大学计算机学院实验三:数据查询语言 实验日期 实验目的 2012 年 12 月 11 日体会 SQL语言数据查询功能的丰富和复杂。 实验内容 3 SQL数据查询语句:例 3-1: (选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。例 3-2: (不选择重复行) 求选修了课程的学生学号。例 3-3: (选择表中的所有列) 求全体学生的详细信息。例 3-4: (使用表达式) 求全体学生的学号、姓名和出生年份。例 3-5: (使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。例 3-6: (比较大小条件) 求年龄大于 19岁的学生的姓名和年龄。例 3-7: (比较大小条件) 求计算机系或信息系年龄大于 18岁的学生的姓名、系和年龄。例 3-8: (确定范围条件) 求年龄在 19岁与 22岁(含 20岁和 22岁)之间的学生的学号和年龄。例 3-9: (确定范围条件) 求年龄不在 19岁与 22岁之间的学生的学号和年龄。例 3-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。例 3-11:(确定集合条件) 求不是数学系、计算机系的学生信息。例 3-12:(匹配查询) 求姓名是以“李”打头的学生。例 3-13:(匹配查询) 求姓名中含有“志”的学生。例 3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。例 3-15:(匹配查询) 求选修课程 001或 003,成绩在80至 90之间,学号为96xxx的学生的学号、课程号和成绩。例 3-16:(匹配查询) 求课程名中包含 _ 字符的课程号、课程名和学时数。例 3-17:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。例 3-18:(控制行的显示顺序) 求选修 003课程或 004课程的学生的学号、课程号和分数,要求按课程号升序、分数降序的顺序显示结果。例 3-19:(组函数) 求学生总人数。例 3-20:(组函数) 求选修了课程的学生人数。例 3-21:(组函数) 求计算机系学生的平均年龄。例 3-22:(组函数) 求选修了课程 001的最高、最低与平均成绩。例 3-23:(分组查询) 求各门课程的平均成绩与总成绩。例 3-24:(分组查询) 求各系、各班级的人数和平均年龄。 数据库系统概论实验报告书安徽工业大学计算机学院例 3-25:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。SELECT SNAME,SDEPT,COUNT(*)FROM STUDENTWHERE SDEPT=CS GROUP BY SDEPT;例 3-26:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。SELECT SAGE FROM STUDENT GROUP BY SNO;例 3-27:(分组查询) 求学生人数不足 3人的系及其相应的学生数。例 3-28:(分组查询) 求各系中除 01班之外的各班的学生人数。例 3-29:(涉及空值的查询) 分别观察各组函数、行的显示顺序以及分组查询与空值的关系。例 3-30:(连接查询) 求选修了课程 001且成绩在 70分以下或成绩在 90分以上的学生的姓名、课程名称和成绩。例 3-31:(连接查询与表的别名) 求选修了课程的学生的学生姓名、课程号和成绩。例 3-32:(自身连接查询) 求年龄大于 李丽 的所有学生的姓名、系和年龄。例 3-33:(外部连接查询) 求选修了课程 002或 003的学生的学号、课程号、课程名和成绩,要求必须将 002和 003课程的相关信息显示出来。例 3-34:(子查询) 求与 黎明 年龄相同的学生的姓名和系。例 3-35:(子查询) 求选修了课程名为 数据结构 的学生的学号和姓名。例 3-36:(子查询 ANY) 求比数学系中某一学生年龄大的学生的姓名和系。例 3-37:(子查询 ALL) 求比数学系中全体学生年龄大的学生的姓名和系。例 3-38:(子查询 EXISTS) 求选修了课程 004的学生的姓名和系。例 3-39:(返回多列的子查询) 求与 李丽 同系且同龄的学生的姓名和系。例 3-40:(多个子查询) 求与 黎明 同系,且年龄大于 李丽 的学生的信息。例 3-41:(子查询中使用表连接) 求数学系中年龄相同的学生的姓名和年龄。例 3-42:(连接或嵌套查询) 检索至少选修王成刚老师所授课程中一门课程的女学生姓名。例 3-43:(嵌套与分组查询) 检索选修某课程的学生人数多于 3人的教师姓名。例 3-44:(集合查询) 列出所有教师和同学的姓名和性别。例 3-45:(相关子查询) 求未选修课程 004的学生的姓名。例 3-46:(相关子查询) 求选修了全部课程的学生的姓名。例 3-47:(相关子查询) 求至少选修了学生 96002 所选修的全部课程的学生的学号。例 3-48:(相关子查询) 求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。例 3-49:(相关子查询) 查询被一个以上的学生选修的课程号。例 3-50:(相关子查询) 查询所有未选课程的学生姓名和所在系。 数据库系统概论实验报告书安徽工业大学计算机学院 实验要求 对数据库表进行各种查询操作。 实验方法 将实验需求用 SQL语句表示; 执行 SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。3-13-23-33-43-53-63-7SQL> SELECT SNAME,SDEPT,SAGE FROM Student WHERE SAGE>18 AND SDEPT IN('IS','CS');3-83-9SQL> SELECT * FROM Student WHERE SDEPT IN ('MA','CS'); 数据库系统概论实验报告书安徽工业大学计算机学院3-13SQL> SELECT CNO,CNAME,CTIME FROM Course WHERE CNAME LIKE '%_%' ESCAPE ''SQL> SELECT COUNT (DISTINCT SNO) FROM Score;SQL> SELECT MAX(Score),MIN(Score),AVG(Score) FROM SCORE WHERE CNO='001'SQL> SELECT COUNT(SNO),AVG(SAGE) FROM Student GROUP BY SDEPT,SCLASS ORDER BY 数据库系统概论实验报告书安徽工业大学计算机学院SQL> SELECT SNAME,SDEPT,COUNT(*) FROM STUDENT WHERE SDEPT='CS' GROUP BYSDEPT,SNAME;SQL> SELECT SDEPT,COUNT(SNO) FROM StudentSQL> SELECT SNAME,CNO,SCORE FROM Student,ScoreFROM Student X,Student YWHERE Y.SNAME='李丽' AND X.SAGE>Y.SAGE;23WHERE SAGE=(SELECT SAGE FROM Student WHERE SNAME='黎明' 数据库系统概论实验报告书安徽工业大学计算机学院SQL> SELECT SNAME,SDEPTWHERE SAGE>ANY(SELECT SAGE FROM StudentWHERE SDEPT='MA');SQL> SELECT SNAME,SDEPTWHERE SAGE>ALL(SELECT SAGE FROM StudentWHERE SDEPT='MA');SQL> SELECT SNAME,SDEPTWHERE SDEPT=(SELECT SDEPT FROM StudentWHERE SNAME='李丽') AND SAGE=(SELECT SAGEFROM StudentSQL> SELECT SNAME,SAGEFROM Student S12 数据库系统概论实验报告书安徽工业大学计算机学院WHERE NOT EXISTS(SELECT * FROM CourseWHERE NOT EXISTS2345(SELECT * FROM Score S2WHERE S2.SNO='96002'AND NOT EXISTS 数据库系统概论实验报告书安徽工业大学计算机学院(SELECT * FROM Score S3SQL> SELECT SNO,CNO,SCORE FROM Score S1(SELECT * FROM StudentWHERE EXISTSWHERE NOT EXISTS(SELECT * FROM CourseWHERE EXISTS注意:如果不是固定字符串长度固定的字段最好设为 varchar2类型,如本章 14题。车是一个字符,可以代替为_Char(10)不足 10个字节,则用占用 1个字节的字符填充。这次实验的目的主要是掌握 SELECT 语句的用法,对数据库表进行各种查询操作,它能搭配很多查询条件,但经过这些题,我已经能熟练地运用了。 数据库系统概论实验报告书安徽工业大学计算机学院实验四:视图、授权控制与事务处理 实验日期 实验目的 2012 年 12 月 13 日通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 实验内容 4 SQL视图的定义与操纵:例 4-1: (建立视图) 建立计算机系的学生的视图 STUDENT_CS。例 4-2: (建立视图) 建立由学号和平均成绩两个字段的视图 STUDENT_GR。例 4-3: (视图查询) 利用视图 STUDENT_CS,求年龄大于 19岁的学生的全部信息。例 4-4: (视图查询) 利用视图 STUDENT_GR,求平均成绩为 88分以上的学生的学号和平均成绩。例 4-5: (视图更新) 利用视图 STUDENT_CS,增加学生(96006,张然,CS,02,男,19 )。例 4-6: (视图更新) 利用视图 STUDENT_CS,将学生年龄增加 1岁。观察其运行结果并分析原因。例 4-7: (视图更新) 利用视图 STUDENT_GR,将平均成绩增加 2分。观察其运行结果并分析原因。例 4-8: (视图更新) 删除视图 STUDENT_CS中学号为 96006 的学生的全部数据。例 4-9: (视图更新) 删除视图 STUDENT_GR的全部数据。例 4-10:(删除视图) 删除视图 STUDENT_CS和 STUDENT_GR。5 SQL数据控制语句:例 5-1: (授权) 给左右邻近同学(用户)授予在表 Student上的 SELECT权限,并使这两个用户具有给其他用户授予相同权限的权限。例 5-2: (授权) 给邻近同学(用户)授予 Teach表上的所有权限。例 5-3: (授权) 给所有用户授予 Score表上的 SELECT权限。例 5-4: (授权验证) 观察左右邻近同学查询你所授权的表中的内容。例 5-5: (收回授权) 收回上面例子中的所有授予的权限。6 SQL事务处理:例 6-1: (事务回退) 将课程名称表中的 程序设计 课程学时数修改为 80、微机原理 课程学时数修改为 70 学时,查询全部课程的总学时数后,取消所有修改(ROLLBACK)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。例 6-2: (事务提交) 将课程名称表中的 程序设计 课程学时数修改为 80、微机原理 课程学时数修改为 70学时,查询全部课程的总学时数后,确认所有修改(COMMIT)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。 数据库系统概论实验报告书安徽工业大学计算机学院 实验要求 建立视图,视图查询,视图更新; 给某一或全部用户授权和收回授权; 事务回退,事务提交。 实验方法 将实验需求用 SQL语句表示; 执行 SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。4-14-24-3SQL> SELECT * FROM STUDENT_CS WHERE SAGE>19;4-44-5SQL> INSERT INTO STUDENT_CS VALUES('96006','张然','CS','02',19,'男');4-64-7SQL> UPDATE STUDENT_GR SET AVERAGE=AVERAGE+2; 数据库系统概论实验报告书安徽工业大学计算机学院UPDATE STUDENT_GR SET AVERAGE=AVERAGE+2*此次视图更新操作不能有意义地转化成相应基本表的更新,即该视图是不可更新视图。4-8SQL> DELETE FROM STUDENT_CS WHERE SNO='96006'4-95-15-25-35-5SQL> REVOKE SELECT ON Student FROM u109074191;SQL> REVOKE SELECT ON Student FROM U109074198;撤销成功。SQL> REVOKE ALL ON Teach FROM U109074191;撤销成功。6-1 数据库系统概论实验报告书安徽工业大学计算机学院CNO CNAME- - -001 数学分析 144 数据库系统概论实验报告书安徽工业大学计算机学院001 数学分析002 普通物理003 微机原理004 数据结构005 操作系统006 数据库原理007 DB_Design008 程序设计已选择 8行。视图的操作比较简单,主要就是事务处理,把以前的语句全部结合起来,这样才能达到以前知识的熟练运用,通过这次实验我掌握了不少新的东西。 数据库系统概论实验报告书安徽工业大学计算机学院实验五:Oracle存储过程与触发器 实验日期 实验目的 2012 年 12 月 15 日通过实验进一步理解和掌握 Oracle数据库的存储过程和触发器。 实验内容 4 存储过程与触发器:例 7-1: (存储过程) 创建一个显示学生总人数的存储过程。例 7-2: (存储过程) 创建显示学生信息的存储过程 STUDENT_LIST,并引用 STU_COUNT存储过程。例 7-3: (存储过程) 创建一个显示学生平均成绩的存储过程。例 7-4: (存储过程) 创建显示所有学生平均成绩的存储过程。例 7-5: (修改数据库表) 在 Student表中增加 SAVG(N,6,2) 字段。例 7-6: (存储过程) 创建存储过程,计算每个学生的平均成绩保存到学生表SAVG字段中。例 7-7: (触发器) 当更新学生成绩表 SCORE中的学生成绩时,自动计算该学生的平均成绩保存到学生表 SAVG字段中。例 7-8: (触发器) 创建包含插入、删除、修改多种触发事件的触发器 DML_LOG,对 SCORE表的操作进行记录。用 INSERTING、DELETING、UPDATING谓词来区别不同的 DML操作。先创建事件记录表 LOGS,该表用来对操作进行记录。该表的字段含义解释如下:LOG_ID:操作记录的编号,数值型,它是该表的主键,自动增1,可由序列自动生成。LOG_TABLE:进行操作的表名,字符型,非空,该表设计成可以由多个触发器共享使用。比如我们可以为 Student表创建类似的触发器,同样将操作记录到该表。LOG_DML:操作的动作,即 INSERT、DELETE或 UPDATE三种之一。LOG_KEY_ID:操作时表的主键值,数值型。之所以记录表的主键,是因为主键是表的记录的惟一标识,可以识别是对哪一条记录进行了操作。对于Score表,主键是由 SNO_CNO构成。LOG_DATE:操作的日期,日期型,取当前的系统时间。LOG_USER:操作者,字符型,取当时的操作者账户名。比如登录 SCOTT 账户进行操作,在该字段中,记录账户名为 SCOTT。 实验要求 创建、调试和修改、调用和执行 Oracle存储过程; 创建、调试和修改、测试 Oracle触发器。 实验方法 将实验需求用 SQL语句表示; 执行 SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。实验总结 数据库系统概论实验报告书安徽工业大学计算机学院 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。7-17-2P1 STUDENT.SNO%TYPE;P2 STUDENT.SNAME%TYPE;P3 STUDENT.SDEPT%TYPE;P4 STUDENT.SCLASS%TYPE;P5 STUDENT.SAGE%TYPE;P6 STUDENT.SSEX%TYPE;NUM1 NUMBER;7-3SELECT SNAME INTO S_NAME FROM STUDENT WHERE SNO = S_SNO;SELECT AVG(SCORE) INTO S_AVG FROM SCORE WHERE SNO = S_SNO; 数据库系统概论实验报告书安徽工业大学计算机学院DBMS_OUTPUT.PUT_LINE('SNAME:'|S_NAME|' AVG_SCORE:'|S_AVG);END;EXECUTE SAVG('96001');7-4CREATE OR REPLACE PROCEDURE SC_AVGASS_AVG NUMBER(5,2);BEGINSELECT AVG(SCORE) INTO S_AVG FROM SCORE;DBMS_OUTPUT.PUT_LINE('S_AVG:'|S_AVG);END;SET SERVEROUTPUT ON;EXECUTE SC_AVG;7-5ALTER TABLE STUDENT ADD SAVG NUMBER(6,2);7-6CREATE OR REPLACE PROCEDURE SAVE_AVGASS_SNO STUDENT.SNO%TYPE;NUM NUMBER(2);I NUMBER;CURSOR C_ADD IS SELECT SNO FROM STUDENT;BEGINSTU_COUNT(NUM);OPEN C_ADD;FOR I IN 1.NUM LOOPFETCH C_ADD INTO S_SNO;UPDATE STUDENT SET SAVG =( SELECT AVG(SCORE) FROM SCOREGROUP BY SNOHAVING SNO = S_SNO )WHERE SNO = S_SNO ;END LOOP;CLOSE C_ADD;END SAVE_AVG;EXECUTE SAVE_AVG;7-7CREATE OR REPLACE TRIGGER SC_UP AFTER UPDATE ON SCORE 数据库系统概论实验报告书安徽工业大学计算机学院REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROWLOG_KEY_ID NUMBER(10),LOG_DAT

    注意事项

    本文(安徽工业大学周兵数据库实验报告.docx)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开