数据库实验报告完整版.docx

上传人:b****7 文档编号:15751627 上传时间:2023-07-07 格式:DOCX 页数:25 大小:1.46MB
下载 相关 举报
数据库实验报告完整版.docx_第1页
第1页 / 共25页
数据库实验报告完整版.docx_第2页
第2页 / 共25页
数据库实验报告完整版.docx_第3页
第3页 / 共25页
数据库实验报告完整版.docx_第4页
第4页 / 共25页
数据库实验报告完整版.docx_第5页
第5页 / 共25页
数据库实验报告完整版.docx_第6页
第6页 / 共25页
数据库实验报告完整版.docx_第7页
第7页 / 共25页
数据库实验报告完整版.docx_第8页
第8页 / 共25页
数据库实验报告完整版.docx_第9页
第9页 / 共25页
数据库实验报告完整版.docx_第10页
第10页 / 共25页
数据库实验报告完整版.docx_第11页
第11页 / 共25页
数据库实验报告完整版.docx_第12页
第12页 / 共25页
数据库实验报告完整版.docx_第13页
第13页 / 共25页
数据库实验报告完整版.docx_第14页
第14页 / 共25页
数据库实验报告完整版.docx_第15页
第15页 / 共25页
数据库实验报告完整版.docx_第16页
第16页 / 共25页
数据库实验报告完整版.docx_第17页
第17页 / 共25页
数据库实验报告完整版.docx_第18页
第18页 / 共25页
数据库实验报告完整版.docx_第19页
第19页 / 共25页
数据库实验报告完整版.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库实验报告完整版.docx

《数据库实验报告完整版.docx》由会员分享,可在线阅读,更多相关《数据库实验报告完整版.docx(25页珍藏版)》请在冰点文库上搜索。

数据库实验报告完整版.docx

数据库实验报告完整版

数据库实验报告

 

班级:

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,不过总的来说通过这次实验收获了好多的知识,上机操作的收获是看书所无法体会的,非常感谢老师这么辛苦的教授大家知识,谢谢老师。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2