《数据库管理系统》实验指导书刘颖长沙理工大学经管学院《数据库管理系统》实验指导书课程代码:英文名称:Database Management System适用对象:会计学、财务管理专业学时学分:共32,实验10学时,2.0分。
一、实验的目的数据库系统产生于20世纪60年代末。
30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。
随着网络技术的迅猛发展,以及数据库技术与网络技术的紧密结合,数据库技术已经广泛应用于各种领域,小到工资管理、人事管理,大到企业信息的管理等,数据库技术已成为计算机系统应用最广的技术之一。
同时,数据库技术及其应用也成为国内外高等学校计算机专业和许多非计算机专业的必修或选修内容。
本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库应用的基本训练,提高其解决实际问题的能力。
二、实验开设对象本实验开设对象为《数据库管理系统》课程的学习者,其中主要是会计学、财务管理专业的学生。
三、基本原理及课程简介SQL Server 2008是当今深受欢迎的关系数据库管理系统,是一个杰出的数据库平台,它建立在成熟而强大的关系数据模型的基础之上,可以很好地支持客户机/服务器模式,可用于大型联机事务处理、数据仓库以及电子商务等,能够满足各种类型的企事业单位构建网络数据库的要求,是目前各类学校学习大型数据库管理系统的首选对象。
本课程主要介绍数据库管理系统的基本概念和基本原理以及SQL Server 2008关系数据库管理系统的主要功能及其使用。
具体内容包括SQL Server 2008的安装、服务器与客户端配置、Transact-SQL基础、数据库管理、表和视图管理、存储过程和触发器管理、游标管理、维护数据库、SQL Server 安全管理和SQL Server 代理服务。
本实验课程内容共设3个大的子实验项目。
四、指导教师要求本实验课程教学指导原则上由《管理信息系统》课程讲授教师负责,在人数较多时配1-2名教师担任实验指导教师,实验室人员配合指导。
指导教师应在实验前阐述实验目的、基本方法、基本技术、实验要求等,指导学生在规定的时间内完成相关课程实验任务。
五、实验设备配置每人配置1台电脑,安装SQL Server 2008软件,并能访问Internet。
六、考核与报告1、实验完成后,学生将实验结果从系统中打印出来,并撰写实验报告,符合实验教学的要求,并得到指导教师的认可。
2、指导教师对每份实验报告进行审阅、评分。
3、该实验程依附于理论课,实验课的成绩记入课程平时成绩,占总成绩的40%。
实验一数据库的创建与管理一、实验题目数据库的管理二、实验课时课内2课时三、实验目的通过本课程实验,让学生熟练掌握数据库的创建、修改和删除操作。
理解数据分离和附加的概念,并掌握数据的分离、附加和移动操作。
四、实验内容和步骤1、在D盘根目录下简历两个文件夹sql—data和sql—log。
打开SQL Server Management Studio,注意选择所连接的SQL Server为你自己的机器,连接使用“Windows身份验证”。
用CREATE DATABASE语句按以下要求在本地SQL Server下建立数据库。
数据库名称----mydb1主数据文件逻辑名称----f1主数据文件物理名称----D:\sql—data\f1.mdf初始大小----2MB;最大尺寸----无限大;增长速度----5%次数据文件逻辑名称----f2次数据文件物理名称----D:\sql—data\f2.mdf初始大小----3MB;最大尺寸----200MB;增长速度----2MB事务日志文件逻辑名称----lg1事务日志文件物理名称----D:\sql—log\lg1.ldf初始大小----1MB;最大尺寸----10MB;增长速度----1MB调试成功后,在SQL Server Management Studio中找到所建立的数据库,打开其属性窗口,观察其所建立的数据是否和以上要求一致。
确认正确后记录下所使用的CREATE DATABASE语句。
2、用ALTER DATABASE语句完成以下操作。
(1)向第2题创建的mydb1数据库的primary文件组中添加文件:次数据文件逻辑名称----f3次数据文件物理名称----D:\sql—data\f3.ndf初始大小----2MB;最大尺寸----5MB;增长速度----1MB(2)修改以上生成的数据库文件f3,使其初始大小为3MB,最大尺寸为10MB。
(3)将数据库名称mydb1修改为mydb2。
五、实验要求1、掌握利用图形界面工具创建和管理数据库。
2.掌握利用CREATE DATABASE 命令创建和管理数据库3.要求提交对各个实验步骤的实验结果。
六、实验参考资料学生在设计方案与实验时,可以参考有关教材、教学案例与CAI课件。
实验二表和视图的创建与管理一、实验题目表和视图的创建与管理二、实验课时课内4课时。
三、实验目的通过本课程实验,让学生掌握表的创建、修改、更新、查询过程;理解表约束的内容;掌握利用SELECT查询命令进行表的查询操作;掌握视图的创建过程。
四、实验内容与步骤(一)表的定义及约束。
1、建立名称为“职工”的数据库,数据库属性自定。
按以下要求完成各步操作,保存或记录完成各题功能的Transact-SQL语句。
2、使用CREATE TABLE 语句在“职工”数据库中按以下要求创建各表。
(1)“职工基本信息”表:表结构如表6-8所示。
表6-8 “职工基本信息”表(2)“工资”表:表结构如表6-9所示。
表6-9 “工资”表(3)“部门信息”表:表结构如表6-10所示。
表6-10 “部门信息”表3、使用ALTER TABLE语句向“职工基本信息”表中添加一项,列名称为“职称”,类型为char,长度为10。
4、使用ALTER TABLE语句删除第3题添加的职称列。
5、为“部门信息”表的部门名称字段添加一个唯一性约束,以限制部门名称的唯一性。
6、限制“职工基本信息”标的“性别”子短板只接受“男”和“女”两个值。
7、限制“工资”表的“基本工资”字段的值为不小于0的数。
8、限制“工资”表的“基本工资”和“奖金”字段的默认值为0。
9、设“职工基本信息”表的“性别”字段的默认值为“男”10、创建外部键约束,定义职工基本信息表的“默认编号”为外部键,引用“部门信息”表的“部门编号”;定义“工资”表的“职工编号”为外部键,引用“职工基本信息”表的“职工编号”。
11、删除第9题创建的外部键约束。
(二)表的更新继续使用第(一)创建的“职工”数据库,完成以下各题功能,保存或记录相应的FSQL 语句。
1、用INSERT语句向“职工基本信息”表中插入如表6-11所示的4行数据。
表6-11 “职工基本信息”表中的数据2、用INSERT语句向“工资”表中插入如6-12所示的两行数据(即部门编号为“001”的职工工资信息)。
表6-12 部门编号为“001”的职工工资信息3、在“职工”数据表中在创建一张新表,表名为“临时工资信息”,其结构和内容如表6-13所示表6-13 “临时工资信息”表用带子查询的INSERT语句将该新表的有关数据添加到“工资”表中。
4、有CREATE TABLE语句在“职工”数据库中创建一个新表“部门平均年龄”,包含“部门编号”和“平均年龄”两个字段。
5、使用INSERT语句将每一个部门编号及对应的职工平均年龄添加到以上“部门平均年龄”表中。
(提示:在子查询语句中可以使用“YEAR(GETDATE())-YEAR(出生日期)”求每一个职工的年龄,在对其使用AVG函数求平均。
6、用UPDATE语句给“工资”表中所有所属部门编号为“001”的职工的奖金增加10%。
7、用UPDATE语句求所有职工的实发工资(即计算“工资”表的实发工资一列的值,等于基本工资+奖金)。
8、删除职工编号为“10001”的职工工资信息。
9、删除“工资”表中所属部门编号为“001”的所有职工的工资信息。
(三)表的查询以下各题基于数据库HrSystem,编写SECLECT语句,完成以下各题的要求,保存或记录下实现各题功能的查询语句。
1、查询员工表Employees的全部信息。
2、查询员工表Employees的姓名、性别及工资。
3、要将所有员工工资上涨20%明显是所有员工的姓名、性别和上涨后的工资。
将上涨后的工资一列的标题显示为“New Wage”。
4、查询员工表Employees中有哪些职务(使用title字段,这里需要去掉重复的职务)。
5、查询部门编号为1的员工姓名和职务。
6、查询图书类型职务为“部门经理”且性别为女的员工的姓名。
7、使用BETWEEN表示范围,找出工资在3000-4000员的所有员工信息。
8、使用BETWEEN表示范围,找出工资不在3000-4000员的所有员工信息。
9、找出部门为人事部(编号为1)和办公室(编号为2)的所有员工信息(条件使用IN)。
10、从Employees表中找出所有身份证以“110”开头的员工的所有信息。
11、查询Employees表中所有身份证第1个字母在0-3之间的员工的所有信息。
12、统计员工的最高工资、最低工资、总工资和平均工资。
13、统计一共有几种职务。
14、统计职务为“部门经理”的员工总人数。
15、统计每一个部门的员工人数,统计结果中包含部门编号和员工人数。
(提示:使用groupby实现分类汇总)。
16、统计每一部门(按Dep—id分类)的平均工资(wage),要求统计结果列标题显示为“部门编号”及“平均工资”。
(提示:使用groupby实现分类汇总)。
17、统计每一部门(按Dep—id分类)的平均工资(wage),要求显示每一个部门的明细内容后再显示该部门的平均工资,明细中要求显示部门编号、部门名称、姓名和工资。
(提示:使用COMPUTE···BY···)。
18、查询每一个员工的明细信息,查询结果包括姓名、性别、职务和对应的部门名称。
使用where条件指定表间的连接。
(提示:使用EMployees和表Departments)19、实现第18题功能,改成使用INNER JOIN实现表间连接。
20、查询每一个部门所包含的员工信息。
查询结果包括姓名、性别、职务和对应的部门名称。
对于没有员工的部门,在查询结果中要同样列出,其对应的员工信息为空(NULL)。
(提示:使用外连接,使用Employees和表Departments)21、使用子查询实现:查询此部门为“办公室”的员工。