1、河南财经政法大学河南财经政法大学计算机与信息工程学院计算机与信息工程学院20132014 学年第学年第 2 学期学期专 业:信息管理与信息系统 课程名称:数据库原理与应用 班 级:120705 姓 名:学号:指导教师:赵静玉 实验报告实验报告实验报告河南财经政法大学计算机与信息工程学院 第 0 页 共 17 页实验一:熟悉 SQL Server 数据库管理系统数据库管理系统实验目的1.了解 SQL Server 系统;2.熟悉 SQL Server 服务的启动和停止;3.熟悉 SQL Server 管理器/企业管理器的使用。实验内容1.启动 SQL Server 服务;2.启动 SQL Ser
2、ver 管理器/企业管理器,熟悉其界面环境;3.停止 SQL Server 服务。实验数据记录及分析(或程序及运行结果)思考:1.启动 SQL Server 服务的方法有哪几种?怎样实现该服务的自动启动?2.假如你是一个 SQL Server 数据库的管理员,为了释放一部分存储空间,你可以删除哪些数据库?为什么?评语:日期:年 月 日实验报告河南财经政法大学计算机与信息工程学院 第 1 页 共 17 页实验二:数据库操作实验目的1.了解数据库的结构;2.学会使用图形化的方法创建、修改、删除数据库;3.学会使用 T-SQL 命令创建、修改、删除数据库。实验内容1.启动 SQL Server 服务
3、;2.启动 SQL Server 管理器/企业管理器,利用图形化的方法创建数据库student(如下表所示);3.利用图形化的方法修改数据库 student,增加一个数据文件到新建的文件组stufile 中,其中:逻辑文件名为 student_data1,物理文件名为D:DATAstudent_data1.ndf,初始大小为 50MB,以 30%的速度增长,最大文件大小为 200MB;4.利用图形化的方法删除数据库 student;5.利用 T-SQL 命令重复上述工作。选项参数数据库名称student逻辑文件名student_data物理文件名C:DATAstudent_data.mdf文件
4、组PRIMARY初始大小3MB最大文件大小不受限制数据文件增量1MB逻辑文件名student_log物理文件名C:DATAstudent_log.ldf初始大小1MB最大文件大小20MB日志文件增量10%实验数据记录及分析(或程序及运行结果)思考:1.你的老板要求你创建一个初始大小为 20G 的数据库,但是你现在的硬盘上没有一个这么大容量的分区,只有几个大小为 8G 的分区,请问,你该如何完成这个任务?2.你想创建一个初始大小为 2MB 的数据库,但是你却发现你创建的数据库的初始大小是 5MB,而且不能小于这个值,请问是什么原因?实验报告河南财经政法大学计算机与信息工程学院 第 2 页 共 1
5、7 页评语:日期:年 月 日实验报告河南财经政法大学计算机与信息工程学院 第 3 页 共 17 页实验三:数据表操作实验目的1.了解表的结构和 SQL Server 的基本数据类型;2.学会使用图形化的方法创建、修改、删除数据表;3.学会使用 T-SQL 命令创建、修改、删除数据表;4.学会创建各种约束。实验内容1.启动 SQL Server 服务;2.启动 SQL Server 管理器/企业管理器,利用图形化的方法在数据库 student 中创建学生信息表 stu_info、课程信息表 course_info 和学生成绩表 stu_grade,其结构如下表所示;3.利用图形化的方法对数据表进
6、行如下修改:在表 stu_info 中,增加备注字段,字段名 memo,字段类型 nvarchar,字段长度 200;在表 course_info 中,对于字段 course_name 设置 UNIQUE 约束;在表 stu_grade 中,对于字段 grade 设置 CHECK 约束,其取值在 0 到 100之间;在表 stu_grade 中,对于字段 stu_id 设置 FOREIGN KEY 约束,其取值参考表 stu_info 中 stu_id 字段的取值;4.利用图形化的方法删除表 stu_info、course_info、stu_grade;5.利用 CREATE TABLE 命令
7、在数据库 student 中创建学生信息表 stu_info、课程信息表 course_info 和学生成绩表 stu_grade,其结构如下表所示;6.利用 ALTER TABLE 命令对表进行如下修改:在表 stu_info 中,增加身份证号码字段,字段名 code,字段类型 char,字段长度 18,不允许为空;在表 stu_info 中,对于字段 code 设置 UNIQUE 约束;在表 stu_info 中,删除身份证号码字段 code;在表 stu_info 中,对于字段 sex 设置 CHECK 约束,其取值仅为“男”或“女”;在表 course_info 中,增加先行课字段,字
8、段名 pre_course_id,其取值参考 course_id 字段的取值;7.利用 DROP TABLE 命令删除表 stu_info;8.利用图形化的方法向以上表中输入一些数据,体会约束的作用。学生信息表(stu_info)列名数据类型大小小数位 是否为空 默认值约束含义stu_idchar10否主键学号namenvarchar20否姓名birthdaydate生日sexnchar2男性别实验报告河南财经政法大学计算机与信息工程学院 第 4 页 共 17 页addressnvarchar20籍贯markint入学成绩majornvarchar20专业sdeptnvarchar20院系课程
9、信息表(stu_info)列名数据类型大小小数位 是否为空 默认值约束含义course_idchar3否主键课程编号course_namenvarchar20否课程名course_typenvarchar20考试课程类型course_markint课程学分学生成绩表(stu_grade)列名数据类型大小小数位 是否为空 默认值约束含义stu_idchar10否主键学号course_idchar3否主键外键课程编号gradeint成绩实验数据记录及分析(或程序及运行结果)思考:1.创建和删除表 stu_info、course_info 和 stu_grade 在顺序上分别有什么样的要求?2.如何
10、为表增加不允许为空的字段?3.什么样的字段不允许删除?如何才能删除之?实验报告河南财经政法大学计算机与信息工程学院 第 5 页 共 17 页评语:日期:年 月 日实验报告河南财经政法大学计算机与信息工程学院 第 6 页 共 17 页实验四:数据的插入、修改和删除实验目的1.学会使用图形化的方法对表中数据进行插入、修改和删除;2.学会使用 T-SQL 命令对对表中数据进行插入、修改和删除;3.了解数据在插入、修改和删除时要注意数据的完整性。实验内容1 启动 SQL Server 服务;2 启动 SQL Server 管理器/企业管理器,利用图形化的方法向学生信息表stu_info、课程信息表 c
11、ourse_info 和学生成绩表 stu_grade 中添加数据,其数据内容参考下表。3 利用图形化的方法对表数据进行如下修改:在表 stu_info 中,将学号(stu_id)为“2007070101”同学的籍贯(address)改为“河南洛阳”;在表 stu_grade 中,将成绩(grade)小于 60 分的所有同学成绩增加10%;4 利用图形化的方法删除数据表 stu_grade 中成绩(grade)小于 60 分的选课记录;5 利用 INSERT INTO 命令向学生信息表 stu_info、课程信息表 course_info 和学生成绩表 stu_grade 中添加数据,其数据内
12、容参考下表;6 利用 UPDATE 命令修改表数据:在表 stu_info 中,将学号(stu_id)为“2007070102”同学的院系(sdept)改为“会计学院”;在数据表 stu_grade 中,将信息学院成绩(grade)小于 60 分的所有同学成绩置空;7 利用 DELETE 命令删除表数据:在表 stu_info 中,删除所有籍贯(address)为“河南洛阳”的同学信息;在表 stu_grade 中,删除“张元选修操作系统”这一选课信息;8 假设有表“借阅(借书证号,书名,借阅日期,是否到期)”,修改表中各记录在字段“是否到期”上的值,用借阅日期与当前日期比较,当差值大于规定期
13、限(60 天)时,将字段“是否到期”的值由“否”改为“是”。学生信息表(stu_info)stu_idnamebirthdaysexaddressmarkmajorsdept2007070101张元1985-10-09男河南郑州576计算机科学与技术 信息学院2007070102张红1985-01-14女河南开封565计算机科学与技术 信息学院2007070103王明1986-07-08男河南洛阳570计算机科学与技术 信息学院2007070104李伟1986-03-11男河南郑州564计算机科学与技术 信息学院实验报告河南财经政法大学计算机与信息工程学院 第 7 页 共 17 页200707
14、0201郑澜1985-12-01女 河南平顶山 567电子商务信息学院2007070202赵恒1986-02-03男河南周口566电子商务信息学院2007070203张兰1986-04-06女河南许昌571电子商务信息学院2007080101李伟1985-09-12男河南郑州578会计学会计学院2007080102钱丽1985-11-23女河南安阳573会计学会计学院2007080201孙楠1986-11-19男河南南阳578财务管理会计学院课程信息表(stu_info)course_idcourse_namecourse_typecourse_markcourse_time701计算机基础考
15、试350702操作系统考试450703计算机网络考试450704数据库原理考查350706Java考查340801宏观经济学考试450802初级会计考试450803财政学考试350804会计电算化考查3学生成绩表(stu_grade)stu_idcourse_idgradestu_idcourse_idgrade20070701017018920070701047028820070701017028120070801017012007070101703962007080101802912007070102701852007080102801872007070102702742007080102
16、80250200707010270355200708020180375200707010470135200708020180482实验数据记录及分析(或程序及运行结果)实验报告河南财经政法大学计算机与信息工程学院 第 8 页 共 17 页6update stu_infoset sedpt=会计学院where stu_id=2007070102update stu_gradeset grade=nullwhere grade60实验报告河南财经政法大学计算机与信息工程学院 第 9 页 共 17 页评语:日期:年 月 日实验五:数据查询实验目的1.掌握 SELECT 语句的基本语法;2.掌握模糊查
17、询的用法;3.掌握连接查询的用法;4.掌握子查询的用法。实验内容针对数据库 student 中的数据表,完成下列查询:1.SELECT 基本使用查询每位同学的所有信息;查询学号为“2007070103”的同学的姓名、性别、籍贯和院系信息;查询每位女同学的学号、姓名和院系信息,并将结果中各列的标题指定实验报告河南财经政法大学计算机与信息工程学院 第 10 页 共 17 页为学号、姓名和院系;查询每位同学的年龄信息;查询所有其籍贯含有“阳”字的同学的姓名、性别和籍贯信息;查询选修了“701”号课程且成绩在 7080 之间的同学的学号;2.嵌套查询查询选修“计算机基础”号课程的同学的学号、姓名和院系
18、信息;查询没有选修“701”号课程的同学的学号、姓名和院系信息;查询比会计学院所有入学成绩都高的同学的学号、姓名、专业和院系信息;3.连接查询查询每位同学的学号、姓名、课程名和成绩信息;查询入学成绩大于 575 分的同学的学号、姓名、课程名和成绩信息;查询成绩在 90 分以上的同学的学号、姓名、课程名和成绩信息;4.数据汇总查询信息学院同学的入学平均分;查询全体同学的入学最高分和最低分;查询会计学院同学的总人数;查询所有其籍贯含有“阳”字的同学人数;查询学号为“2007070101”的同学的选课门数、平均分和总分;5.GROUP BY查询每个院系的总人数;查询每位同学的选课门数和平均分;查询平
19、均分在 80 分以上的同学的学号、姓名、选课门数和平均分;查询专业人数在 3 人以上的专业名称及其所在院系信息;6.ORDER BY将信息学院同学的信息按入学成绩由高到低排列输出;查询选修“计算机基础”课程的每位同学的学号、姓名和成绩信息,并按成绩由低到高排列输出。实验数据记录及分析(或程序及运行结果)1 select*from stu_info select name,sex,address,sedpt from stu_info where stu_id=2007070103select stu_id 学号,name 姓名,sedpt 院系from stu_info where sex=女
20、 实验报告河南财经政法大学计算机与信息工程学院 第 11 页 共 17 页select 2014-YEAR(birthday)年龄from stu_info select name,sex,address from stu_info where address like%阳%select stu_idfrom stu_gradewhere course_id=701 and grade80 and grade (select MAX(mark)from stu_info where sedpt=信息学院 )3select stu_grade.stu_id,name,course_name,gr
21、ade from stu_info,course_info,stu_grade where stu_grade.stu_id=stu_info.stu_id and stu_grade.course_id=course_info.course_id 实验报告河南财经政法大学计算机与信息工程学院 第 12 页 共 17 页 select stu_grade.stu_id,name,course_name,grade from stu_info,course_info,stu_grade where stu_grade.stu_id=stu_info.stu_id and stu_grade.co
22、urse_id=course_info.course_id and mark 575 select stu_grade.stu_id,name,course_name,grade from stu_info,course_info,stu_grade where stu_grade.stu_id=stu_info.stu_id and stu_grade.course_id=course_info.course_id and grade 90 4select AVG(mark)信息学院平均入学成绩 from stu_info where sedpt=信息学院select max(mark)最高
23、分,MIN(mark)最低分 from stu_info select COUNT(*)会计学院人数 from stu_info where sedpt=会计学院 select COUNT(*)籍贯含有阳的个数 from stu_info where address like%阳%select COUNT(course_id)选课总数,AVG(grade)平均成绩,SUM(grade)总成绩 from stu_grade 实验报告河南财经政法大学计算机与信息工程学院 第 13 页 共 17 页 where stu_id=2007070101 5select COUNT(sedpt)from s
24、tu_info group by sedpt select COUNT(stu_id),AVG(grade)from stu_grade group by stu_id select stu_grade.stu_id,name,COUNT(stu_grade.stu_id),AVG(grade)from stu_grade,stu_info where stu_grade.stu_id=stu_info.stu_id group by stu_grade.stu_id,name having AVG(grade)80select major,sedpt from stu_info group
25、by sedpt,major having count(major)36select*from stu_info where sedpt=信息学院 order by mark descselect stu_grade.stu_id,name,grade from stu_info,stu_grade,course_info where stu_grade.stu_id=stu_info.stu_id and stu_grade.course_id=course_info.course_id and course_name=计算机基础 order by grade 实验报告河南财经政法大学计算机
26、与信息工程学院 第 14 页 共 17 页评语:实验报告河南财经政法大学计算机与信息工程学院 第 15 页 共 17 页 日期:年 月 日实验六:索引实验目的1.掌握索引的概念;2.掌握利用管理器/企业管理器图形化的方法创建、删除索引;3.掌握使用 T-SQL 命令创建、删除索引;4.掌握索引分析的方法。实验内容1.启动 SQL Server 服务;2.启动 SQL Server 管理器/企业管理器,利用图形化的方法创建下列索引:对学生信息表 stu_info 中的 name 列创建非聚集唯一索引 idx_name;对学生信息表 stu_info 中的 sex 列创建聚集索引 idx_sex;
27、create clustered index indexsexon stu_info(sex)对学生成绩表 stu_grade 中的 stu_id、course_id 列创建复合索引idx_stu_course_id;3.利用图形化的方法删除索引 idx_stu_course_id;4.利用 T-SQL 命令重复以上工作;5.分析索引建立前后对查询效率的影响,写出分析结果。实验数据记录及分析(或程序及运行结果)评语:实验报告河南财经政法大学计算机与信息工程学院 第 16 页 共 17 页 日期:年 月 日实验七:视图实验目的1.理解视图的重要性;2.掌握视图的建立;3.掌握视图的使用。实验内容
28、1.启动 SQL Server 服务;2.启动 SQL Server 管理器/企业管理器,利用图形化的方法创建下列视图:视图 view_male,包含学生信息表中所有男生信息;视图 view_stu_grade,包含每个同学的学号、姓名、课程名和成绩信息;视图 view_avg,包含每个同学的学号、姓名、平均成绩信息;3.利用图形化的方法查询视图 view_male 中的信息;4.利用图形化的方法删除视图 view_male;5.利用 CREATE VIEW 命令创建下列视图:视图 view_female,包含学生信息表中所有女生信息;视图 view_count,包含每个院系的名称和学生人数信
29、息;视图 view_sum,包含每个同学的学号、姓名、课程总成绩信息;6.利用 DROP VIEW 命令删除视图 view_female;7.通过视图,查询下列信息:查询“信息学院”的学生人数;查询学号“2007070101”同学的课程总成绩。实验数据记录及分析(或程序及运行结果)2create view view_maleas select distinct*from stu_info where sex=男create view view_stu_grade(stu_id,name,course_name,grade)as Select stu_grade.stu_id,name,cour
30、se_name,gradefrom stu_info,course_info,stu_grade where stu_grade.stu_id=stu_info.stu_id 实验报告河南财经政法大学计算机与信息工程学院 第 17 页 共 17 页 and course_info.course_id=stu_grade.course_id create view view_avg(stu_id,name,grade)as select distinct stu_grade.stu_id,name,avg(grade)from stu_info,stu_grade where stu_grade
31、.stu_id=stu_info.stu_id group by name,stu_grade.stu_id 5create view view_femaleas select*from stu_info where sex=女create view view_count(sedpt,stu_count)as select sedpt,COUNT(stu_id)from stu_info group by sedpt create view view_sum(stu_id,name,sum_grade)asselect stu_grade.stu_id,name,sum(grade)from
32、stu_grade,stu_info where stu_grade.stu_id=stu_info.stu_id group by stu_grade.stu_id,name 6drop view view_female7create view view_count(sedpt,stu_count)as select sedpt,COUNT(stu_id)from stu_info group by sedpt 实验报告河南财经政法大学计算机与信息工程学院 第 18 页 共 17 页select sum_gradefrom view_sum where stu_id=2007070101评语
33、:日期:年 月 日实验八:数据库安全数据库安全实验目的1.掌握数据库的安全性能;2.掌握使用用户实现数据库安全性的方法;3.掌握使用角色实现数据库安全性的方法;4.掌握权限分配的方法。实验报告河南财经政法大学计算机与信息工程学院 第 19 页 共 17 页实验内容1.以你的学号创建一个登录帐号;2.在数据库 student 中为刚创建的登录帐号创建用户 User1;3.给用户 User1 授予对学生信息表进行插入、修改和删除记录的权利;4.在数据库 student 中创建角色 Role1;5.给角色 Role1 授予对学生信息表进行查询和插入记录的权利,禁止对学生信息表进行删除记录的权利;6.
34、将用户 User1 加入到角色 Role1 中;7.你最后具有什么样的权限?试验证之。实验数据记录及分析(或程序及运行结果)评语:日期:年 月 日实验九:数据库维护实验目的1.掌握导入/导出的使用方法;2.掌握备份/恢复(还原)的使用方法。实验内容1.将数据库 student 中的学生信息表导出到 excel 文件 xsxx.xls 中;2.将 excel 文件 xsxx.xls 中的数据导入到数据库 student 中;实验报告河南财经政法大学计算机与信息工程学院 第 20 页 共 17 页3.对数据库 student 进行完整备份;4.恢复数据库 student。实验数据记录及分析(或程序及运行结果)评语:日期:年 月 日