数据库实验报告完整版.docx
- 文档编号:12783262
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:25
- 大小:1.46MB
数据库实验报告完整版.docx
《数据库实验报告完整版.docx》由会员分享,可在线阅读,更多相关《数据库实验报告完整版.docx(25页珍藏版)》请在冰点文库上搜索。
数据库实验报告完整版
数据库实验报告
班级:
07111103
学号:
**********
姓名:
***
实验一:
[实验内容1创建和修改数据库]
分别使用SQLServerManagementStudio和Transact-SQL语句,按下列要求创建和修改用户数据库。
1.创建一个数据库,要求如下:
(1)数据库名"testDB"。
(2)数据库中包含一个数据文件,逻辑文件名为testDB_data,磁盘文件名为testDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。
(3)事务日志文件,逻辑文件名为TestDB_log,磁盘文件名为TestDB_log.ldf,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB。
2.对该数据库做如下修改:
(1)添加一个数据文件,逻辑文件名为TestDB2_data,实际文件为TestDB2_data.ndf,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。
(2)将日志文件的最大容量增加为15MB,递增值改为2MB。
方法一:
使用SQLServerManagementStudio创建和修改数据库TestDB
方法二:
使用Transact-SQL语句创建和修改数据库TestDB
方法一过于简单,暂不做讨论。
下面学习方法二。
首先,在sqlsever2008中单击新建查询。
然后键入下面的代码。
建立新的数据库。
1.创建一个数据库,要求如下:
2.对该数据库做如下修改:
对刚刚的操作进行验证
数据均已更新完毕。
[实验内容2数据表的创建、修改和查询]
1.熟悉有关数据表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌握使用SQLServerManagementStudio和CREATETABLE、ALTERTABLE等Transact-SQL语句对数据表的操作方法
项目表(Project)
字段名
数据类型
字段长度
注释
项目编码
char
10
主键
名称
varchar
负责人编码
char
10
客户
int
开始日期
datetime
结束日期
datetime
员工数据表(Employee)
字段名
数据类型
字段长度
注释
员工编码
char
10
主键
姓名
varchar
性别
varchar
所属部门
varchar
工资
money
方法一:
使用SQLServerManagementStudio创建数据表并添加约束
方法二:
使用Transact-SQL语句创建数据表并添加约束
2.向数据库TestDB中的两个数据表"项目数据表"和"员工数据表"中添加记录
3.在查询分析器中书写Transact-SQL语句完成数据查询。
(1)查询项目数据表中客户字段的唯一值,并查看查询结果。
(2)查询工资高于2000的项目部的人员的姓名。
(3)查询来自CCH公司的项目名称(以CCH开始)和负责人姓名
(4)查询每个部门的平均工资,结果按照平均工资的多少排序
(5)查询所有的员工姓名和负责人的项目名称
(6)使用子查询输出所有负责CCH公司项目(以CCH开始)的员工姓名,以及没有负责REALIDEA公司(以REALIDEA开始)项目的员工姓名
(7)将所有REALIDEA公司的项目的结束日期更改为2011年1月8日
(8)录入部的张晓峰决定辞职,请将员工数据库中有关他的记录删除,并将他负责的项目移交给杨亭亭。
书写语句对数据表做相应的更改
4.掌握使用T-SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。
(1)基于表"项目数据表"和"员工数据表"创建视图,要求为:
Ø视图名为"员工项目"。
Ø包含字段"编号"、"姓名"、"名称"和"开始日期"。
Ø字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。
(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。
(3)建立适当的视图,将所有的表连接起来,观察数据,体会建立多个表的好处
下面演示建立表的过程:
1.首先运行涂蓝代码,建立员工数据表,并设立主键。
因为在项目数据表中需要添加员工数据表的主键为外键。
二.建立项目数据表:
然后向两表中添加元素。
注:
在这里有血的教训,没有给varchar限定值的范围导致数据录入不了。
。
。
。
。
好悲惨,又推到重写的一遍。
下面是建好的表:
员工数据表
项目数据表
三、
1.查询项目数据表中客户字段的唯一值,并查看查询结果。
2.查询工资高于2000的项目部的人员的姓名。
3.查询来自CCH公司的项目名称(以CCH开始)和负责人姓名
4.查询每个部门的平均工资,结果按照平均工资的多少排序
5.查询所有的员工姓名和负责人的项目名称
6.使用子查询输出所有负责CCH公司项目(以CCH开始)的员工姓名,以及没有负责REALIDEA公司(以REALIDEA开始)项目的员工姓名
*由于编造数据的疏忽,没有加入REALIDEA公司,这时希望改为以KK开头的公司的项目
注意到这张表中没有了负责KKK项目的王一飞这个人,现在表有9个元素,原表有10个元素。
7.将所有REALIDEA公司的项目的结束日期更改为2011年1月8日
先建立试图,然后在视图上操作,经验证结果完全正确(下图第二行)
练习一下视图的建立,哈哈
8.录入部的张晓峰决定辞职,请将员工数据库中有关他的记录删除,并将他负责的项目移交给杨亭亭。
书写语句对数据表做相应的更改
/*录入部的张晓峰决定辞职,请将员工数据库中有关他的记录删除,
并将他负责的项目移交给杨亭亭。
书写语句对数据表做相应的更改*/
UPDATE项目数据表
SET负责人编码=
(
SELECT员工编码
FROM员工数据表
WHERE姓名='刘楠'
)
WHERE负责人编码
IN
(
SELECT员工数据表.员工编码
FROM员工数据表
WHERE员工数据表.姓名='刘哲'
)
{消息2627,级别14,状态1,第1行
违反了PRIMARYKEY约束'表一约束'。
不能在对象'dbo.项目数据表'中插入重复键。
语句已终止。
}
DELETEFROM员工数据表WHERE姓名='刘哲'
{消息547,级别16,状态0,第1行
DELETE语句与REFERENCE约束"表一约束"冲突。
该冲突发生于数据库"testDB",表"dbo.项目数据表",column'负责人编码'。
语句已终止。
}
由于设定主键时将员工编码和负责人编码均为主键,且员工编码为负责人编码的外键,导致要想修改负责人编码只能先删除于是不能完成这一操作。
。
。
。
四、掌握使用T-SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。
1.基于表"项目数据表"和"员工数据表"创建视图,要求为:
Ø视图名为"员工项目"。
Ø包含字段"编号"、"姓名"、"名称"和"开始日期"。
Ø字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。
下面打开视图界面
2.使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。
以下是查看图
3.建立适当的视图,将所有的表连接起来,观察数据,体会建立多个表的好处
下面是效果图:
[实验内容3创建触发器和存储过程]
理解触发器的触发过程和类型,掌握创建触发器的方法。
1.创建触发器,将插入员工的工资额限制在5000以内。
2.创建触发器,将员工工资修改变动额限制在2000以内。
3.删除员工数据表数据时,判断该员工是否有负责的项目,如果有,则不允许删除、并给出提示“将负责项目移交后再删除”的提示信息。
4.在视图基础上创建insteadof触发器,实现通过视图修改数据的功能,具体题目自拟。
5.创建存储过程,要求返回某一特定部门所有员工的工资总和,其中特定部门的名称以存储过程的输入参数进行传递。
6.创建函数,题目自拟。
7.创建带有游标的存储过程,题目自拟。
解答:
1.创建触发器,将插入员工的工资额限制在5000以内。
说明已经创建了触发器
第一条说明正常的插入语句是可以的
第二条说明当工资大于5000时不可以被插入。
2.创建触发器,将员工工资修改变动额限制在2000以内。
以下是验证:
3.删除员工数据表数据时,判断该员工是否有负责的项目,如果有,则不允许删除、并给出提示“将负责项目移交后再删除”的提示信息。
USEtestDB
GO
deleteFROM员工数据表
WHERE姓名='赵玉琼'
出现如下语句:
消息547,级别16,状态0,第1行
DELETE语句与REFERENCE约束"表一约束"冲突。
该冲突发生于数据库"testDB",表"dbo.项目数据表",column'负责人编码'。
语句已终止。
由于在建表时的疏忽,故导致无法执行删除操作,望老师原谅啊。
。
。
。
但触发器建立正确(:
4.在视图基础上创建insteadof触发器,实现通过视图修改数据的功能,具体题目自拟。
5.创建存储过程,要求返回某一特定部门所有员工的工资总和,其中特定部门的名称以存储过程的输入参数进行传递。
这时发现并没有输出钱数,回去寻找原因,发现时@总工资后没加OUTPUT
这时输出了正确的结果。
6.计算制员工工资是否高于所在部门的工资平均值
下面是函数测试结果:
[实验内容4备份、恢复数据库及安全控制]
理解数据库备份的过程和属性设置,掌握使用SQLServerManagementStudio备份数据库的方法。
1.使用SQLServerManagementStudio备份和恢复数据库.
2.创建新用户、新用户授予权限、用户权限回收.
1.使用SQLServerManagementStudio备份和恢复数据库
.
关闭数据库再次打开即可恢复,在此不做演示。
2.创建新用户、新用户授予权限、用户权限回收.
第一次在权限设定页面出错,
重新设定用户ccrrpp1,得到正确结果。
用T-SQL语句授予权限:
用T-SQL语句收回权限:
到这里为止实验报告已经完成了。
。
就是有点小遗憾在建表时加了外键限制导致删除操作执行起来有些BUG,不过总的来说通过这次实验收获了好多的知识,上机操作的收获是看书所无法体会的,非常感谢老师这么辛苦的教授大家知识,谢谢老师。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告 完整版