SQL SERVER数据库系统设计与实现实验报告.docx
《SQL SERVER数据库系统设计与实现实验报告.docx》由会员分享,可在线阅读,更多相关《SQL SERVER数据库系统设计与实现实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
SQLSERVER数据库系统设计与实现实验报告
SQLSERVER数据库系统设计与实现
实验报告
编制教师傅荣会
(适用于计算机科学学院各专业)
专业:
班级:
级班
学号:
________________________
姓名:
________________________
计算机科学学院
实验一:
数据库的定义、建立和维护指导教师:
实验日期:
年月日实验地点:
成绩:
实验目的:
了解SQLServer数据库的逻辑结构和物理结构;
了解表的结构特点;
了解SQLServer的基本数据类型;
了解空值概念;
学会在“对象资源管理器”中创建数据库和表;
学会使用T-SQL语句创建数据库和表。
实验内容及基本要求:
l、创建一个新的数据库。
创建用于企业管理的员工管理数据库,数据库名为YGGL。
数据库YGGL的逻辑文件初始大小为10MB,最大大小50MB,数据库自动增长,增长方式是按5%比例增长。
日志文件初始大小为2MB,最大可增长为5MB(默认为不限制),按1MB增长(默认是按5%比例增长)。
数据库的逻辑文件名和物理文件名均采用缺省值。
事务日志的逻辑文件名和物理文件名也均采用缺省值。
要求分别使用“对象资源管理器”和T-SQL命令完成数据库的创建工作。
2、在创建好的数据库YGGL中创建数据表。
考虑到数据库YGGL要求包含员工的信息、部门信息以及员工的薪水信息,所以数据库YGGL应包含下列3个表:
Employees(员工信息)表、Departments(部门信息)表、Salary(员工薪水情况)表。
各表的结构分别为表T2.1、T2.2和表T2.3所示。
表T2.1Employees表结构
列名
数据类型
长度
是否为空
说明
Employeeid
Char
6
×
员工编号,主键
Name
Char
10
×
姓名
Education
Char
4
×
学历
Birthday
Datetime
×
出生日期
Sex
Bit
×
性别,默认为1
Workyear
Tinyint
√
工作时间
Address
Varchar
40
√
地址
Phonenumber
Char
12
√
电话号码
Departmentid
char
3
×
员工部门号
表T2.2Departments表结构
列名
数据类型
长度
是否为空
说明
Departmentid
Char
3
×
部门编号,主键
Departmentname
Char
20
×
部门名
Note
varChar
100
√
备注
表T2.3Salary表结构
列名
数据类型
长度
是否为空
说明
Employeeid
Char
6
×
员工编号,主键
Income
Float
×
收入
Outcome
Float
×
支出
要求分别使用“对象资源管理器”和T-SQL语句完成数据表的创建工作。
基本要求:
1.写出实验步骤
2.写出实验中遇到的问题及解决的方法
实验总结:
实验评价(教师):
实验二:
数据查询指导教师:
实验日期:
年月日实验地点:
成绩:
实验目的:
掌握SELECT语句的基本语法;
掌握子查询的表示;
掌握连接查询的表示;
掌握SELECT语句的GROUPBY子句的作用和使用方法;
掌握SELECT语句的ORDERBY子句的作用和使用方法;
实验内容及基本要求:
在企业管理器中向数据库YGGL表加入数据
在企业管理器中向表Employees中加入如表1所示的记录。
表1Employees表记录
employeeid
name
education
birthday
sex
workyear
address
phonenumer
departmentid
000001
王林
大专
1956-01-23
1
8
中山路-1-508
83355668
2
010008
伍容华
本科
1966-03-28
1
3
北京东路-2
83321321
1
020010
王向容
硕士
1972-12-09
1
2
四牌楼-10-108
83792361
1
020018
李丽
大专
1950-07-30
0
6
中山东路-2
83413301
1
102201
刘明
本科
1962-10-18
1
3
虎距路-2
83606608
5
102208
朱俊
硕士
1956-01-23
1
2
牌楼巷-3-1086
4708817
5
108991
钟敏
硕士
1969-08-10
0
4
中山路-1-508
83355668
3
111006
张石兵
本科
1964-10-01
1
1
解放路-9-1-203
84563418
5
210678
林涛
大专
1967-04-02
1
2
中山北路-2-305
3467336
3
302566
李玉珉
本科
1958-09-20
1
3
热和路-3
58765991
4
308759
叶凡
本科
1968-11-18
1
2
北京西路-7-502
83308901
4
504209
陈林琳
大专
1959-09-03
0
5
汉中路-4-102
84468158
4
在企业管理器中向表Departments插入如表2所示的记录。
表2Departments表记录
DepartmentID
Departmentname
note
1
财务部
NULL
2
人力资源部
NULL
3
经理办公室
NULL
4
研发部
NULL
5
市场部
NULL
在企业管理器中向表Salary插入如表3所示的记录。
表3Departments表记录
EmployeeID
income
outcome
000001
2100.8
123.09
010008
1582.62
88.03
102201
2569.88
185.65
111006
1987.01
79.58
504209
2066.15
108.0
302566
2980.7
210.2
108991
3259.98
281.52
020010
2860.0
198.0
020018
2347.68
180.0
308759
2531.98
199.08
210678
2240.0
121.0
102208
1980.0
100.0
参照以上数据完成以下操作:
1.查询Employees中员工姓名和性别,要求SEX值为1时显示为“男”,为0时显示为“女”;
2.计算每个雇员的实际收入;
3.用子查询的方法查询研发部比所有财务部雇员收入都高的雇员姓名;
4.使用外连接方法查询所有员工的月收入;
5.查询研发部在1976年以前出生的雇员姓名及其薪水详情。
6.查询财务部雇员的最高和最低收入;
7.统计财务部收入在2500以上雇员的人数。
8.按员工的学历分组,排列出格科、大专和硕士的人数;
9.将员工作信息按出生时间从小到大排列。
10.创建YGGL数据库上的视图DS_view,视图包含Departments表的全部列;
11.向视图DS_view中插入一行数据“6,广告部,广告业务”;
基本要求:
1.写出实验步骤
2.写出实验中遇到的问题及解决的方法
实验总结及意见:
实验评价(教师):
实验三:
T-SQL编程指导教师:
实验日期:
年月日实验地点:
成绩:
实验目的:
掌握用户自定义类型的使用;
掌握变量的分类及其使用;
掌握各种运算符的使用;
掌握各种控制语句的使用;
掌握系统函数及用户自定义函数的使用。
实验内容及基本要求:
1.自定义一数据类型ID_type,用于描述员工编号。
2.在YGGL数据库中创建Employees3表,表结构与Employees类似,只是EmployeeID列使用的数据类型为用户自定义数据类型ID_type。
3.创建一个名为female的用户变量,并在SELECT语句中使用该局部变理查找表在所有女员工的编号、姓名。
4.使用比较运算符“>”查询Employees表在工作时间大于5年的员工信息。
5.判断姓名为“王林”的员工实验收入是否高于3000,如果是则显示其收入,否则显示“收入不高于3000”;
6.使用循环输出一个用“*”组成的三角形;
7.定义一个函数实现如下功能:
对于一个给定的DepartmentID值,查询该址在Departments表中是否存在,若存在返回“YES”,否则返加“NO”,并定一段T-SQL程序调用上述函数。
8.设计一个函数用于判断一个整数是否为素数。
基本要求:
1.写出实验步骤
2.写出实验中遇到的问题及解决的方法
实验总结及意见:
实验评价(教师):
实验四:
存储过程与触发器指导教师:
实验日期:
年月日实验地点:
成绩:
实验目的:
掌握存储过程的使用方法。
掌握触发器的使用方法。
实验内容及基本要求:
1、存储过程
创建存储过程,比较两个员工的实际收入,若前者收入比后者高就输出0,否则输出1;
创建添加职员记录的存储过程EmployeeAdd;
创建删除职员记录的存储过程EmployeeDel;
创建一个带有OUTPUT游标参数的存储过程,在Employees表中声明并打开一个游标。
然后编写T-SQL程序通过该游标变量读取记录;
创建存储过程,使用游标计算本科及以上学历的员工在总员工数中所占的比例。
2、触发器
对于YGGL数据库,表Employees的DepallmentID列与表Department的DepartmentID列应满足参照完整性规则,即:
.向Employees表添加一记录时,该记录的DepartmentID值在Departments表中应存在;
.修改Departments表的DepartmntID字段值时,该字段在Employees表中的对应值也应修改;
.删除Departments表中一记录时,该记录DepartmentID字段值在Employees表中对应的记录也应删除。
上述参照完整性规则,在此通过触发器实现。
并在查询分析器编辑窗口输入各触发器的代码并执行。
创建INSTEADOF触发器,当向SALARY表中插入记录时,先检查Employeeid列上的值在Employees中是否存在,如果存在则执行插入操作,否则提示“员工号不存在”。
创建DDL触发器,当删除数据库里,提示“无法删除”并回滚删除操作。
基本要求:
1.写出实验步骤
2.写出实验中遇到的问题及解决的方法
实验总结及意见:
实验评价(教师):
实验五:
数据库备份和恢复指导教师:
实验日期:
年月日实验地点:
成绩:
实验目的:
掌握在“对象资源管理器”中创建命名备份设备的方法;
掌握在“对象资源管理器”中进行备份操作的步骤;
掌握使用T-SQL语句对数据库时行完全备份的方法;
掌握在“对象资源管理器”中进行数据恢复的步骤;
掌握使用T-SQL语句进行数据库恢复的方法。
实验内容及基本要求:
1)数据库备份。
在“对象资源管理器”中对数据库YGGL通过行备份设备进行完全备份、差异备份、日志备份;
使用T-SQL对数据库YGGL通过行备份设备进行完全备份、差异备份、日志备份;
2)数据库恢复。
在“对象资源管理器”中对数据库YGGL进行完全恢复、差异恢复、日志恢复;
使用T-SQL对数据库YGGL进行完全恢复、差异恢复、日志恢复;
基本要求:
1.写出实验步骤
2.写出实验中遇到的问题及解决的方法
实验总结及意见:
实验评价(教师):