工作范文数据库实验Word文件下载.docx
- 文档编号:16520815
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:45
- 大小:2.06MB
工作范文数据库实验Word文件下载.docx
《工作范文数据库实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《工作范文数据库实验Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。
6.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;
7.列出选修了‘1’课程的学生,按成绩的降序排列;
8.列出同时选修“1”号课程和“2”号课程的所有学生的学号;
9.列出课程表中全部信息,按先修课的升序排列;
10.列出年龄超过平均值的所有学生名单,按年龄的降序显示;
11.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;
12.按照院系降序显示所有学生的“院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:
院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;
13.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>
=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”,若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;
14.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;
15.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;
16.显示选修的课程数大于3的各个学生的选修课程数;
17.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;
18.显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩;
19.显示选修各个课程的及格的人数、及格比率;
20.显示选修课程数最多的学号及选修课程数最少的学号;
21.显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”;
22.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
23.查询倒数第2个字符为‘系’的课程的详细情况;
24.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;
25.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;
26.查询缺少成绩的所有学生的详细情况;
27.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;
28.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
29.其中已修学分为考试已经及格的课程学分之和;
28题与29题合并
30.列出只选修一门课程的学生的学号
、姓名、院系及成绩;
31.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;
32.只选修“数据库”和“数据结构”两门课程的学生的基本信息;
33.至少选修“数据库”或“数据结构”课程的学生的基本信息;
34.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;
35.查询只被一名学生选修的课程的课程号、课程名;
36.检索所学课程包含学生‘张向东’所学课程的学生学号、姓名;
37.使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;
38.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;
39.使用ANY、ALL查询,列出其他院系中比CS系所有学生年龄小的学生;
40.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;
连接嵌套
41.使用集合查询列出CS系的学生以及性别为女的学生名单;
42.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;
43.使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集;
(以下选做)
44.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;
45.思考题:
按照课程名顺序显示各个学生选修的课程(如200515001数据库数据结构数学);
实验四:
数据库综合实验
1.了解DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握查询条件表达式和使用方法;
2.掌握WindowsNT认证模式下数据库用户帐号的建立与取消方法;
3.掌握混合模式下数据库用户帐号的建立与取消方法;
4.掌握数据库用户权限的设置方法;
5.熟悉数据库数据库用户帐号的权限分配、回收等方法;
6.了解数据库角色的分类、作用及使用方法。
7.掌握主键约束、外键约束及及check约束的用法;
8.掌握默认值约束的应用;
9.了解规则、触发器的使用。
10.熟悉数据库备份及恢复机制;
11.了解SQLServer的数据备份和恢复机制;
12.掌握SQL-Server中数据库备份和恢复的方法。
1.学会用DDL语言进行对表、索引、视图的增加、删除和改动;
2.了解SQLServer2005系统安全;
3.熟悉数据库用户、服务器角色及数据库角色的用法;
4.熟悉数据库完整性相关概念及约束;
5.了解约束、默认值及规则;
6.了解创建备份设备和进行数据库完全备份操作的方法;
7.了解进行数据库恢复的步骤;
8.完成实验报告;
四、实验内容及步骤
(一)用T-SQL语句操作索引、视图
1.建立计算机科学系学生的视图
2.由学生、课程和选修课三个表,定义一个计算机科学系的学生成绩视图,其属性包括学号、姓名、课程名和成绩
3.将学生的学号、总成绩、平均成绩定义成一个视图
4.对student表按学号降序建唯一索引,索引名stunods。
5.删除索引stunods。
(二)数据库的安全性
以系统管理员身份登录到SQLServer服务器,在SQLServer2005界面中实现以下操作,并独立写出部分题目的程序代码;
1.在当前计算机中增加一个用户zhang和cheng,密码为secret。
使此用户通过winowsnt模式下登录SQLServer服务器,登录名分别为zhang和cheng;
2.新建以混合模式登录SQLServer服务器的用户登录名为stu1、stu2和stu3,登录密码为secret,默认登录数据库为专用数据库(用完整学号命名);
3.将帐号zhang添加为专用数据库(用完整学号命名)的用户,用户名为zhang;
4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3;
5.给数据库用户zhang赋予创建数据库的权限;
6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;
7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;
8.收回数据库用户stu2对student表和course表的删除操作的权限;
9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限如下:
1)对于student、course表只能进行数据查询;
2)只能对student表中sname进行更改;
3)对于sc表只能进行修改、删除或插入;
10.思考题:
将登录帐号zhang、stu1、stu2和stu3加入到服务器角色sysadmin中;
11.将登录帐号cheng同时拥有服务器角色serveradmin和securityadmin的权限;
12.删除服务器角色sysadmin的成员stu2和stu3;
(三)数据库的完整性
以系统管理员身份登录到SQLServer服务器,并使用T-SQL语句实现以下操作;
1.请用至少2种方法定义stu数据库中student表的主键sno;
2.将表course的cno字段定义为主键,约束名称为cno_pk;
3.为表course中的字段cname添加唯一值约束;
4.将表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;
5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:
1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;
2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;
3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;
4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;
5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入;
6.定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;
7.定义student表中学生年龄值在16-25范围内;
8.定义student表中学生姓名长度在2-8之间;
9.定义student表中学生性别列中只能输入“男”或“女”;
10.定义stu数据库student表中学生年龄值默认值为20;
11.修改student表学生的年龄值约束可以为15-30范围内;
12.删除上述唯一值约束、外键约束及check约束;
13.
Createtriggersc_insupdonsc
Forinsert,update
ASdeclare@cjsmallint
Select@cj=inserted.gradefrominserted
If(@cj<
0or@cj>
100
Begin
Raiserror(’成绩必须在0到100之间’,16,1)
Rollbacktransaction
end
设计一个触发器,当插入或更新成绩列时,该触发器检查插入的数据是否处于设定的范围内.请自行举例测试.
14.思考题:
定义规则对象,用于保证course表中cno字段值为5个数字字符;
15.思考题:
向sc表中插入或修改一条记录时,通过触发器检查记录sno字段的值在student表中是否存在,若不存在,则取消插入或修改操作;
16.思考题:
删除student表中一条记录的同时删除其在sc表中对应的记录;
(四)数据库的备份和恢复
以管理员帐号登录SQLServerManagementStudio,以专用数据库(用完整学号命名)为基础,请使用ManagementStuio界面方式或T-SQL语句实现以下操作:
1.针对数据库创建完全数据库备份集stu.bak,目标磁盘为D:
\user\stu.bak;
2.在数据库中新建数据表ceshi,内容自定,然后针对数据库stu创建差异备份;
3.向数据库的数据表ceshi插入部分记录,然后针对数据库stu创建事务日志备份;
4.根据需要,将数据库恢复到数据库stu的最初状态;
5.根据需要,将数据库恢复到创建数据表ceshi后的状态;
6.根据需要,将数据库恢复到在ceshi表插入记录后的状态;
7.针对现有数据库stu创建完全文件和文件组备份集stu_file,目标磁盘为D:
\user\stu_file.bak;
8.在当前数据库中新建数据表ceshi2,然后针对数据库stu创建差异文件和文件组备份;
9.向数据库stu的数据表ceshi2插入部分记录,然后针对数据库stu创建事务日志文件和文件组备份;
10.根据需要,将数据库以文件和文件组方式恢复到创建数据表ceshi2后的状态;
11.根据需要,将数据库以文件和文件组方式恢复到数据表ceshi2插入记录后的状态;
12.为数据库stu设置一个备份计划1(建议使用数据库维护计划向导,【服务器】→【管理】→【维护计划】→【维护计划向导】);
13.为数据库stu设置一个备份计划2,并比较各自优缺点。
(五)数据库的的其他功能实验(选做)
1.将student表的数据导出到EXCEL中。
2.SQL定义功能
1)用以下SQL语句添加规则XB;
打开表,添加数据,输入不同性别,看系统反应.
Createrule[dbo].[XB]AS@性别=’男’or@性别=‘女’
2)用以下SQL语句增加一个默认值defaultaaa,
Createdefault[dbo].[defaultaaa]AS20
将该默认值绑定到表的sage字段上,然后打开表,添加数据,看结果。
3)查询表student的前10个记录内容的存储过程
createproceduresp_query_student
as
selecttop10*fromstudent
go
execsp_query_student
《数据库管理系统》实验报告
2011/2012学年第2学期
实验项目:
班级:
学生:
(学号)
地点:
经管院A实验室
机器号:
指导教师:
夏勇
时间:
年月日
经济管理学院信息管理教研室
实验要求:
将实验成果文件压缩,以<
班级>
_<
学号>
实验X>
.RAR文件形式交付指导老师,需包含对作品的说明文件。
1.记录实验内容
2.总结分析实验中的收获心得
教师评语
实验一:
_______________________________________________
1、
实验内容和步骤:
(写出实验主要内容和关键步骤及完成情况以及出现问题及解决方案,记录关键屏幕截图。
)
1)
2)
3)
2、实验总结:
如何备份数据库(SQLServerManagementStudio)
SQLServer2005
其他版本
∙SQLServer2008R2
∙SQLServer2008
本主题说明如何创建完整数据库备份。
注意:
使用SQLServerManagementStudio指定备份任务时,可以通过单击“脚本”按钮并选择脚本目标生成相应的Transact-SQLBACKUP脚本。
备份数据库
1.连接到相应的MicrosoftSQLServer数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。
2.展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。
3.右键单击数据库,指向“任务”,再单击“备份”。
将出现“备份数据库”对话框。
4.在“数据库”列表框中,验证数据库名称。
您也可以从列表中选择其他数据库。
5.可以对任意恢复模式(FULL、BULK_LOGGED或SIMPLE)执行数据库备份。
6.在“备份类型”列表框中,选择“完整”。
请注意,创建完整数据库备份之后,可以创建差异数据库备份;
有关详细信息,请参阅如何创建差异数据库备份(SQLServerManagementStudio)。
7.对于“备份组件”,请单击“数据库”。
8.可以接受“名称”文本框中建议的默认备份集名称,也可以为备份集输入其他名称。
9.或者,在“说明”文本框中,输入备份集的说明。
10.指定备份集何时过期以及何时可以覆盖备份集而不用显式跳过过期数据验证:
∙若要使备份集在特定天数后过期,请单击“之后”(默认选项),并输入备份集从创建到过期所需的天数。
此值范围为0到99999天;
0天表示备份集将永不过期。
默认值在“服务器属性”对话框(“数据库设置”页)的“默认备份媒体保持期(天)”选项中进行设置。
若要访问它,请在对象资源管理器中右键单击服务器名称,选择属性,再选择“数据库设置”页。
∙若要使备份集在特定日期过期,请单击“在”,并输入备份集的过期日期。
有关备份过期日期的详细信息,请参阅BACKUP(Transact-SQL)。
11.通过单击“磁盘”或“磁带”,选择备份目标的类型。
若要选择包含单个媒体集的多个磁盘或磁带机(最多为64个)的路径,请单击“添加”。
选择的路径将显示在“备份到”列表框中。
若要删除备份目标,请选择该备份目标并单击“删除”。
若要查看备份目标的内容,请选择该备份目标并单击“内容”。
12.若要查看或选择高级选项,请在“选择页”窗格中单击“选项”。
13.通过单击下列选项之一来选择“覆盖媒体”选项:
∙备份到现有媒体集
对于此选项,请单击“追加到现有备份集”或“覆盖所有现有备份集”。
有关详细信息,请参阅追加到现有备份集和覆盖备份集。
也可以选择“检查媒体集名称和备份集过期时间”让备份操作验证媒体集和备份集国过期的日期和时间。
还可以在“媒体集名称”文本框中输入名称。
如果没有指定名称,将使用空白名称创建媒体集。
如果指定了媒体集名称,将检查媒体(磁带或磁盘),以确定实际名称是否与此处输入的名称匹配。
∙备份到新媒体集并清除所有现有备份集
对于该选项,请在“新建媒体集名称”文本框中输入名称,并在“新建媒体集说明”文本框中描述媒体集(可选)。
有关详细信息,请参阅创建新媒体集。
14.在“可靠性”部分中,根据需要选中下列任意选项:
∙完成后验证备份。
∙“写入媒体前检查校验和”和“出现校验和错误时继续”(可选)。
有关校验和的信息,请参阅检测和处理媒体错误。
15.如果备份到磁带机(如同“常规”页的“目标”部分指定的一样),则“备份后卸载磁带”选项处于活动状态。
单击此选项可以激活“卸载前倒带”选项。
除非备份的是事务日志(如同“常规”页的“备份类型”部分中指定的一样),否则“事务日志”部分中的选项处于不活动状态。
此外,还可以使用维护计划向导来创建数据库备份。
如何创建完整数据库备份(Transact-SQL)
本主题说明如何使用BACKUPDATABASE语句创建完整数据库备份。
创建完整数据库备份
1.执行BACKUPDATABASE语句可以创建完整数据库备份,同时指定:
∙要备份的数据库的名称。
∙写入完整数据库备份的备份设备。
2.指定(可选):
∙INIT子句,用于覆盖备份媒体,并在备份媒体上将该备份作为第一个文件写入。
如果没有现有的媒体标头,将自动编写一个。
∙SKIP和INIT子句,用于重写备份媒体,即使备份媒体中的备份未过期,或媒体本身的名称与备份媒体中的名称不匹配也重写。
∙FORMAT子句,通过它可以在第一次使用媒体时对备份媒体进行初始化,并覆盖任何现有的媒体标头。
如果已经指定了FORMAT子句,则不需要指定INIT子句。
重要提示:
当使用BACKUP语句的FORMAT子句或INIT子句时,一定要十分小心,因为它们会破坏以前存储在备份媒体中的所有备份。
示例
A.备份到磁盘设备
下面的示例通过使用FORMAT创建新的媒体集,将整个AdventureWorks数据库备份到磁盘。
复制
'
C:
\AdventureWorks.Bak'
USEAdventureWorks
GO
BACKUPDATABASEAdventureWorks
TODISK='
\MSSQL\BACKUP\AdventureWorks.Bak'
WITHFORMAT,
NAME='
FullBackupofAdventureWorks'
--Optionally,createalogicalbackupdevice,
--AdventureWorks_Backup,forthisbackupfile.
USEmaster
EXECsp_addumpdevice'
disk'
'
AdventureWorks_Backup'
B.备份到磁带设备
下面的示例将把整个MyAdvWorks数据库备份到磁带。
USEMyAdvWorks
BACKUPDATABASEMyAdvWorks
TOTAPE='
\\.\Tape0'
FullBackupofMyAdvWorks'
--AdventureWorks_Backup,forthisbackuptape.
如何创建差异数据库备份(SQLServerManagementStudio)
本主题说明如何创建差异数据库备份。
创建差异数据库备份需要有以前的完整数据库备份。
如果选定的数据库从未进行过备份,则请在创建任何差异备份之前,先执行完整数据库备份。
有关详细信息,请参阅如何备份数据库(SQLServerManagementStudio)。
创建差异数据库备份
1.连接到相应的MicrosoftSQLServer数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作 范文 数据库 实验