数据库系统原理实验指导书.docx
- 文档编号:5078305
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:19
- 大小:99.32KB
数据库系统原理实验指导书.docx
《数据库系统原理实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验指导书.docx(19页珍藏版)》请在冰点文库上搜索。
数据库系统原理实验指导书
阳光学院计算机工程系
硬件(软件)实验系列指导用书
《数据库系统原理》实验指导书
福州大学阳光学院计算机工程系
2011年8月
前言
随着计算机技术的不断向前发展,数据库技术也随之形成了一套较为完整的理论体系,《数据库系统原理》是计算机领域的重要和基础学科,数据是数据库系统的核心和基础。
因此,在学习数据库的理论知识的同时,数据库管理也是目前计算机领域学习和研究的主要内容。
本实验指导书就是以数据库管理知识为基础,结合SQLServer2005的操作与应用编写而成的实验指导,从而让学生能了解SQLServer2005这一数据库管理系统的操作以及SQL语言的功能和运用。
本实验指导书由5个部分组成:
SQLServer2005基本操作、数据定义、数据操作、数据查询以及数据控制。
采用教师课堂讲授与指导、学生动手实验相结合的形式,让学生能更好的吸收理论课上学习的知识,并且能接收新的上机操作知识,提高动手能力。
编者:
杨曦欧阳林艳
2011年8月10日
目录
实验一SQLServer2005基本操作1
实验二数据定义4
实验三数据操作7
实验四数据查询10
实验五数据管理13
实验一SQLServer2005基本操作
一、实验目的
了解SQLServer2005组件;
了解SQLServer数据库组成;
掌握SQLServer2005界面基本操作。
二、原理说明
SQLServer2005中的数据库由包含数据的表集合以及其他对象(如视图、索引、存储过程等)组成,它的数据库分为系统数据库与用户数据库两大类。
系统数据库包含如下数据库:
master:
记录SQLServer中的所有系统级信息;
msdb:
供SQLServer代理服务调度报警和作业以及记录操作员时使用;
model:
是在SQLServer中创建用户数据库的模板;
tempdb:
临时数据库,为数据的排序操作等提供临时空间。
用户数据库是用户自己根据需要创建的。
SQLServer2005包含两种数据文件:
(1)数据文件:
存放数据库中数据。
分为主数据文件(.mdf)与辅助数据文件(.ndf);
(2)事务日志文件:
存放恢复数据库的所有日志信息(.ldf)。
三、实验环境
安装了MicrosoftSQLServer2005的计算机
四、实验内容
(1)开始->程序->MicrosoftSQLServer2005->SQLServerManagementStudio,打开后进入到SQLServer2005主体界面
图1-1SQLServer2005主体界面
(2)点击“数据库”前面的“+”,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。
(3)了解SQLServer2005菜单栏的一些主要工具的使用。
选择SQL语言操作的数据库检查语法错误
打开SQL语言查询界面执行SQL语言
图1-2SQLServer2005主要工具
(4)学生动手操作SQLServer2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。
五、实验注意事项
1.注意在进行数据库SQL查询界面后,如果以后要对哪个数据库进行操作,就要在上方属性栏选择相应的数据库(如图1-2中的master处);
2.数据库的主数据文件只有1个,辅助数据文件可以有多个。
实验二数据定义
一、实验目的
掌握SQLServer2005的数据库创建;
掌握SQLServer数据定义语言;
掌握SQLServer2005数据定义的SQL语言定义与管理器定义两种方式。
二、原理说明
(1)数据库创建代码:
CreateDatabaseEmployee
OnPrimary
(Name=Empdat1,
Filename=’d:
\你的学号\data\Empdat1.mdf’,
Size=10MB,
MaxSize=50MB,
FileGrowth=5MB),
(Name=Empdat2,
Filename=’d:
\你的学号\data\Empdat2.ndf’,
Size=5MB,
MaxSize=25MB,
FileGrowth=2MB)
LogOn
(Name=Emplog,
Filename=’d:
\你的学号\data\Emplog.ldf’,
Size=5MB,
MaxSize=25MB,
FileGrowth=5%)
(2)定义表代码:
CreateTable<表名>(<列名><数据类型>[列级完整性约束条件]
[,<列名><数据类型>[列级完整性约束条件]...]
[,<表级完整性约束条件>]);
三、实验环境
安装了MicrosoftSQLServer2005的计算机
四、实验内容
(1)创建、修改、删除数据库。
创建要求:
数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。
其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。
修改要求:
增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最大为25MB,以2MB速度增长。
(2)利用SQL创建人员表person、月薪表salary及部门表dept。
要求:
按表2-1、表2-2及表2-3中的字段说明创建。
表2-1person表结构
字段名
数据类型
字段长度
允许空否
字段说明
P_no
Char
6
NotNull
工号,主键
P_name
Varchar
10
NotNull
姓名
Sec
Char
2
NotNull
性别
BirthDate
Datetime
8
Null
出生日期
Prof
Varchar
10
Null
职称
Deptno
Char
4
NotNull
部门代码,外键(参照dept表)
createtableperson(P_nochar(6)primarykeyNotNull,
P_nameVarchar(10)NotNull,
Secchar
(2)NotNull,
BirthDateDatetime,
ProfVarchar(10),
Deptnochar(4)foreignkey(Deptno)referencesdeptNotNull)
表2-2Salary表结构
字段名
数据类型
字段长度
允许空否
字段说明
P_no
Char
6
NotNull
工号,主键,外键(参照person表)
Base
Dec
5
Null
基本工资
Bonus
Dec
5
Null
奖金,要求>50
Fact
实发工资=基本工资+奖金
Month
Int
NotNull
月份
createtableSalary(
P_noChar(6)primarykeyforeignkey(P_no)referencespersonNotNull,
BaseDec(5),
BonusDec(5)check(Bonus>50),
MonthIntNotNull,
FactasBase+Bonus
)
表2-3dept表结构
字段名
数据类型
字段长度
允许空否
字段说明
Deptno
Char
4
NotNull
部门代码,主键
Dname
Varchar
10
NotNull
部门名称
createtabledept(DeptnoChar(4)primarykeyNotNull,
DnameVarchar(10)NotNull)
(3)利用SQL语句创建视图。
要求:
在基表person上创建员工视图PersonView,其中包含工号、姓名、性别、职称和部门代码等字段。
createviewPersonView
as
selectP_no,P_name,Sec,Prof,Deptno
fromperson
(4)创建索引。
要求:
①在人员表的姓名列上创建一个单列索引name_sort
createindexname_sort
onperson(P_name)
②在人员表的出生日期列和姓名列上创建一个组合索引birth_name
createindexbirth_name
onperson(BirthDate,P_name)
③在人员表的姓名列上创建一个唯一索引u_name_sort
createuniqueindexu_name_sort
onperson(P_name)
(5)删除索引。
要求:
删除月薪表上的索引fact_idx
createindexFactidx
onSalary(Fact)
DropIndexSalary.Factidx
五、实验注意事项
1.注意合理使用完整性约束短语;
2.注意创建表的顺序,因为表与表之间存在参照关系,所以在创建表时应该先建主表,再建从表;
3.注意索引创建的条件,如唯一索引。
实验三数据操作
一、实验目的
掌握SQLServer的数据操作语言;
掌握SQLServer数据操作的管理器处理方式;
掌握SQLServer2005定义视图语言。
二、原理说明
(1)数据库插入语言:
INSERTINTO<表名>[(<属性列1>[,<属性列2>...])
VALUES(<常量1>[,<常量2>]...)
(2)视图定义语言:
CREATEVIEW<视图名>[(<列名>[,<列名>]...)]
AS
<子查询>
[WITHCHECKOPTION]
三、实验环境
安装了MicrosoftSQLServer2005的计算机
四、实验内容
(1)利用SQL语句向表person、salary和dept中插入数据。
要求:
按表3-1、表3-2及表3-3中的数据插入。
表3-1表person中的数据
P_no
P_name
Sex
BirthDate
Prof
Deptno
000001
王云
男
1973-4-7
中级
0001
000002
谢志文
男
1975-2-14
中级
0001
000003
李浩然
男
1970-8-25
高级
0002
000004
廖小玲
女
1979-8-6
初级
0002
000005
梁玉琼
女
1970-8-25
中级
0003
000006
罗向东
男
1979-5-11
初级
0003
000007
肖家庆
男
1963-7-14
高级
0003
表3-2表salary中的数据
P_no
Base
Bonus
Fact
Month
000001
2100
300
1
000002
1800
300
1
000003
2800
280
1
000004
2500
250
1
000005
2300
275
1
000006
1750
130
1
000007
2400
210
1
表2-3表dept中的数据
Deptno
Dname
0001
人事部
0002
财务部
0003
市场部
(2)用SQL语句修改表中的数据。
要求:
将salary表中工号为000006的员工工资增加为1800,奖金增加为160。
updateSalary
setBase=1800,Bonus=160
whereP_no='000006'
(3)用SQL语句删除表中的数据。
要求:
删除person表中工号为000010的员工数据
DELETE
FROMperson
whereP_no='000001'
(4)更新视图。
要求:
将员工视图PersonView中姓名为王云的员工职称改为高级。
updatePersonView
setProf='高级'
whereP_name='王云'
(5)向视图插入数据。
要求:
向视图PersonView中插入一行数据(‘000008’,‘刘美萍’,‘女’,‘中级’,‘0002’)。
insertintoPersonView
VALUES('000008','刘美萍','女','中级','0002')
(6)删除视图。
要求:
将视图PersonView删除。
dropVIEWPersonView
五、实验注意事项
1.注意插入数据时的先后顺序;
2.注意创建视图的语言。
实验四数据查询
一、实验目的
掌握SQLServer的数据查询语言;
掌握SQL语言在不同情况下的灵活应用。
二、原理说明
(1)查询的一般格式:
SELECT[All|Distinct]<目标列表式>[,<目标列表达式>]...
FROM<表名1或视图名>[,<表名2>]...
[WHERE<条件表达式>]
[GROUPBY<列名1>]
[HAVING<条件表达式>]
[ORDERBY<列名2>[ASC|DESC]]
(2)嵌套查询;SELECTFROMWHERE…(SELECTFROM)
(3)连接查询。
(连接条件:
WHERE…=…)
三、实验环境
安装了MicrosoftSQLServer2005的计算机
四、实验内容
(1)利用SQL语句查询person表中的所有数据。
select*
fromperson
(2)条件查询。
要求:
①查询person表中所有不重复的职称
selectdistinctProf
fromPerson
②查询person表中职称为中级的所有员工数据
select*
fromPerson
whereProf='中级'
③查询person表中具有高级职称的男员工信息
select*
fromPerson
whereProf='高级'
andSec='男'
④查询person表中姓名为王云、谢志文或罗向东的员工数据
select*
fromPerson
whereP_name='王云'orP_name='谢志文'orP_name='罗向东'
(3)使用ORDERBY排序
要求:
利用SQL语句将工号在000003和000008之间的员工的月收入按实发工资升序排列。
selectfact
fromSalary
whereP_no>=000003andP_no<=000008
orderbyfact
(4)查询工号为000002的员工的基本工资增加2倍,奖金增加1.5倍后的实际收入。
updateSalary
setBase=Base*2,Bonus=Bonus*1.5
whereP_no='000002'
selectfact
fromSalary
whereP_no='000002'
(5)利用SQL语句查询各部门的实发工资总数。
selectDeptno,sum(fact)
fromPerson,Salary
whereSalary.P_no=Person.P_no
groupbyDeptno
(6)利用SQL语句查询1月份发放奖金平均数大于200元的部门,并从低到高排序。
SELECTDname,Avg(Bonus)
FROMsalary,person,dept
wheredept.Deptno=person.Deptnoandsalary.p_no=person.p_noandMonth='1'
GROUPbyDname
HAVINGAvg(Bonus)>200
ORDERbyAvg(Bonus)
(7)查询人事部所有员工信息。
Select*Fromsalary,Person,dept
wheresalary.p_no=Person.p_noanddept.deptno=Person.deptnoandDname='人事部'
(8)查询person表中职称为中级的员工信息。
select*
fromPerson
whereProf='中级'
(9)查询每个员工1月份的工资和奖金。
selectP_no,Base,Bonus
fromSalary
whereMonth=1
(10)查询比工号为000005的员工实发工资高的所有员工信息。
Select*Fromsalary,Person,dept
wheresalary.p_no=Person.p_noanddept.deptno=Person.deptno
andfact>(selectfactfromsalary
wherep_no=000005)
(11)查询比部门0003所有员工实发工资都高的员工。
SelectP_nofromsalary
Wherefact>(Selectmax(fact)fromsalary,person
Wheresalary.p_no=person.p_noandDeptno='0003'
groupbyDeptno)
(12)查询实发工资比平均实发工资高的员工代码及实发。
Selectp_no,fact
fromsalary
wherefact>(
Selectavg(fact)fromsalary)
(13)使用UNION查询。
要求:
利用SQL语句分别查询具有高、中级职称的职工姓名,合并输出。
Selectp_namefromperson
whereprof='高级'
union
Selectp_namefromperson
whereprof='中级'
五、实验注意事项
1.注意嵌套查询的父子层嵌套关系;
2.注意连接查询的连接条件、相关表。
实验五数据完整性与管理
一、实验目的
理解数据完整性的意义;
掌握数据备份方法;
掌握数据库恢复方法。
二、原理说明
(1)创建、删除规则语言:
1CREATERULEsex_ruleAS@sexIN(‘男’,‘女’)
Sp_bindrule‘sex_rule’,‘person.sex’
2Sp_unbindrule‘person.sex’
DROPRULEsex_rule
(2)测试完整性约束:
主表、从表的概念;
主码、外码约束的意义。
三、实验环境
安装了MicrosoftSQLServer2005的计算机
四、实验内容
(1)学生实践创建规则的语言使用;
(2)对数据库中的数据进行更新、删除操作,测试是否会成功;如果不成功,分析数据库操作失败的原因;
A.测试对主表进行插入、更新及删除操作时的影响。
要求:
1向表dept中插入一行数据(‘0004’,‘研发部’),测试是否影响从表。
insertintodeptvalues('0004','研发部')(1行受影响)
注:
不影响从表。
2将表dept中的部门号0003改为0006,测试是否影响从表。
updatedeptsetdeptno='0006'
wheredeptno='0003'(1行受影响)
注:
影响从表。
③删除表dept中部门号为0001的员工数据,测试是否影响从表。
deletefromdept
wheredeptno='0001'注:
影响从表。
B.测试对从表进行插入、更新及删除操作时的影响。
要求:
1向表person中插入一行数据(‘000012’,‘宋全礼’,‘男’,‘1980-7-17’,‘初级’,‘0005’),测试是否违背参照完整性。
insertintopersonvalues('000012','宋全礼','男','1980-7-17','初级','0005')
注:
违背了参照完整性
2将表person中工号为000002的员工所在部门更新为0005,测试是否违背参照完整性。
updatepersonsetdeptno='0005'
wherep_no='000002'注:
违背了参照完整性
③删除表person中工号为000005的员工数据,测试是否违背参照完整性。
deletefromperson
wherep_no='000005'注:
违背了参照完整性
(3)数据备份和恢复操作。
1创建备份设备PubsBac
在企业管理器下,展开服务器组,然后展开服务器。
展开“管理”文件夹,右击“备份”,然后单击“新建备份设备”命令。
在出现的对话框“名称”框中输入该命名设备的名称PubsBac,然后单击“文件名”按纽,输入磁盘备份设备所使用的文件名,单击浏览按纽显示“备份设备位置”对话框,并选择磁盘设备所使用的本地计算机上的物理文件,单击“确定”即可。
2备份数据库Pubs
在企业管理器中,展开“数据库”文件夹,右击要备份的数据库,指向“所有任务”子菜单,然后单击“备份数据库”命令。
在出现的对话框“常规”选项卡的“名称”框内,输入备份集名称,也可以在“描述”框中输入对备份集的描述。
在“备份”选项下,选项“数据库——完全”。
在“目的”选项下,单击“磁盘”,然后指定备份的目的地。
如果没有出现备份目的地,则单击“添加”并“选择备份目的的备份设备PubsBac”。
在“重写”选项下,选择“追加到媒体”。
如果需要安排特定的备份时间,可以选择“调度”复选框进行选择。
打开“选项”选项卡,按照提示可以选择一些需要的功能(可选)。
如果是第一次使用备份媒体,或者要更改现有的媒体标签,则在“媒体集标签”框下选择“初始化并标识媒体”复选框,然后输入媒体集名称和媒体集描述。
只有在重写媒体时才能对其进行初始化和标识设置。
3删除数据库Pubs中的employee表
4备份数据库Pubs到备份设备PubsBac中。
(参考②)
5删除数据库Pubs中的表sales。
6恢复数据库Pubs。
在企业管理器中,展开“数据库”文件夹,右击数据库Pubs,指向“所有任务”并单击“还原数据库”命令。
在出现的“还原数据库”对话框“常规”选项卡中,在“还原为数据库”文本框中,可以改变还原的数据库的名称。
在“还原”项中,单击“数据库”单选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 指导书