数据库实训
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实训报告
学校:计算机工程系
班级:软件1511
学号:1230505151127
姓名:耿露露
页脚内容1
数据库维护实习
实习名称:使用SQL Server 2000对NIT考试成绩进行管理。
目的要求:通过对NIT考试成绩的管理,要求考生掌握SQL Server 2000的应用,包括数据库的创建、表的创建、视图的创建、数据的查询、数据的导入/导出、数据的复制和备份、T-SQL 编程、创建存储过程、创建触发器、SQL Server 2000安全管理等。
实习内容:
1.建立数据库、导入数据
(1)在D盘新建文件夹<班级_学号>。
(2)注册数据库服务器。
页脚内容2
(3)使用SQL-EM创建数据库<班级_学号>,将数据文件、事务日志文件设置在D盘文件夹<班级_学号>。
(4)将给定的Excel数据nit.xls,导入到自己所创建的库中,并将表命名为<班级_学号_nit>。
页脚内容3
(5)修改表<班级_学号_nit>的结构为:姓名char(8),拼音(18),性别char(2),证件号char(18),报名点名称char(30),报名点编号char(10),学员编号char(18),报考科目ID char(4),报考科目名称char(40),报名日期datetime,成绩int。
页脚内容4
2.建立表及表间关系
(1)将表<班级_学号_nit>分解如下3个表。
考生表:<班级_学号_ks>,结构为:证件号char(18),姓名char(8),性别char(2),报名点编号char(10)。主键为证件号。
页脚内容5
科目表:<班级_学号_km>,结构为:科目编号char(4),科目名称char(40)。主键为科目编号。
、
页脚内容6
成绩表:<班级_学号_cj>,结构为:证件号char(18),科目编号char(4),报名日期datetime,成绩int。主键为证件号、科目编号。指定证件号为外键,参照考生表的证件号。指定科目编号为外键,参照科目表的科目编号。
(2)使用企业管理器创建上述3个表。
页脚内容7
(3)使用SQL语句将表<班级_学号_nit>中数据插入到上述3个表中。
页脚内容8
页脚内容9
页脚内容10
3.数据检索
(1)检索所有考生的姓名、证件号。
页脚内容11
(2)检索所有考生成绩。
页脚内容12
(3)检索至少报考一个科目的女考生的姓名。
页脚内容13
(4)检索证件号为610303************的考生没有报考的科目。
页脚内容14
(5)检索至少报考2个科目的考生。
页脚内容15
(6)检索全部考生都报考的科目的科目编号、科目名称。
页脚内容16
页脚内容17
(7)检索所有姓张的考生的姓名和性别。
页脚内容18
(8)统计报考科目编号为1012科目的考生的平均成绩。
页脚内容19
(9)统计每个科目的考生人数、平均成绩。
页脚内容20
(10)统计每个科目及格的人数。
页脚内容21
(11)检索年龄大于20岁的男考生的平均年龄。
页脚内容22
(12)检索年龄大于20岁的男生的姓名、年龄。
页脚内容23
(13)统计年龄大于女考生平均年龄的男考生的姓名和年龄。
(14)统计年龄大于所有女考生年龄的男考生的姓名和年龄。
页脚内容24
4.Transact-SQL
(1)启动查询管理器
(2)用Transact-SQL语言编写程序,统计每个科目的考生人数,及格人数,不及格人数
页脚内容25
(3)用Transact-SQL语言编写程序,在考生表中修改科目编号为1011考生的成绩,如成绩不及格时成绩提高5%,若及格时成绩提高3%
页脚内容26
5创建视图
(1)在考生表上创建视图V_<班级_学号_ks>,包括证件号,姓名,性别,年龄,报名点编号char(10).
页脚内容27
(2)在视图V_<班级_学号_ks>上,将实习内容检索数据中(11)~(14)题分别创建视图,视图名要求为V_<班级_学号>_<题号>。
页脚内容28
页脚内容29
页脚内容30
6. 创建存储过程和触发器
(1) 使用SQL-EM 在数据库<班级_学号>中创建统计考生报考模块数的统计表,表名要求为<班级>_<学号>_n,包含列:科目编号、char(4),总人数、smallint,男考生、smallint,女考生、smallint。主键为科目编号。其中,总人数字段用于统计报考该模块的考生总人数,男生字段用于统计报考该模块的男考生总人数,女考生字段用于统计报考该模块的女考生总人数。
页脚内容31
(2) 实用SQL-EM编写一个存储过程,存储过程名要求为:<班级>_<学号>_total,用于有成绩表统计出数据插入数据统计表,并执行该存储过程。
页脚内容32
(3)使用SQL-EM在成绩表上创建insert、delete 以及update 触发器,用于维护成绩表与统计表间数据的一致性。
页脚内容33
页脚内容34
页脚内容35
(4)编写存储过程ks_insert,插入考生的成绩信息,要求该存储过程有两个参数@证件号、@科目编号分别表示证件号、科目编号,并要求具有错误的捕获和处理能力。
页脚内容36