数据库系统原理实验教学指导书.docx
《数据库系统原理实验教学指导书.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验教学指导书.docx(44页珍藏版)》请在冰豆网上搜索。
数据库系统原理实验教学指导书
数据库系统原理
实验指导书
2012年秋
目录
实验1SQLServer常用管理工具的使用1
实验2数据库的创建和管理3
实验3表的创建和管理8
实验4数据查询11
实验5视图的创建和使用13
实验6索引的创建和使用15
实验7T-SQL语言17
实验8存储过程22
实验9触发器25
实验10安全管理29
实验11数据库的备份与恢复32
实验12SQLServer数据转换35
实验1SQLServer常用管理工具的使用
实验目的:
熟悉和掌握SQLServer的常用管理工具的使用:
1、服务管理器:
理解服务的概念,掌握SQLServer服务的启动、暂停和停止;
2、企业管理器:
熟悉SQLServer数据库结构,掌握企业管理器的基本操作;
3、查询分析器:
理解查询分析器的作用,掌握查询分析器的常用用法;
4、联机丛书:
掌握联机丛书的用法。
实验内容与步骤:
1.服务管理器的用法
SQLServer是作为Windows网络操作系统的一个服务运行的。
通过设置,可以在启动操作系统时自动启动SQLServer,也可以远程启动和停止SQLServer。
可以使用下列工具手工启动、暂停和停止SQLServer服务:
●SQLServer企业管理器
●SQLServer服务管理器
●控制面板中的“服务”
●在命令提示符中使用net命令
SQLServer服务启动成功后,会在屏幕右下角的图标中出现一个
符号。
实验内容1:
使用SQLServer服务管理器查看SQLServer服务是否正在运行,若正在运行,将其停止。
实验内容2:
使用控制面板中的“管理工具”--“服务”管理控制台将已停止的SQLServer服务启动。
提示:
在“名称”里选择SQLSERVERAGENT,然后启动
2.企业管理器的使用
企业管理器是SQLServer提供的最主要的数据库管理图形界面工具,它以树形结构来组织数据库服务器、数据库和数据库中的对象,大部分的数据库管理工作都可以使用它来完成。
实验内容3:
启动企业管理器,查看SQLServer的注册属性。
提示:
程序--MicrosoftSQLServer--企业管理器,在控制台树中,展开“MicrosoftSQLServers”,然后展开“SQLServer组”,右击自己的服务器名或local,然后单击“编辑SQLServer注册属性”,进行查看。
实验内容4:
在企业管理器中,查看Northwind数据库,并查看表Employee的内容。
提示:
在企业管理器的目录树中展开数据库文件夹—>Northwind数据库图标,选中Northwind下的‘表’图标,右边将列出Northwind数据库所有的表。
选中Employee,单击右键,选择“打开此表”->“返回所有行”。
3.查询分析器的使用
查询分析器是图形化的数据库编程接口,用户可以以自由的文本格式编辑、调试和执行SQL脚本。
实验内容5:
在查询分析器中,使用SQL语句查看pubs数据库中authors表的数据信息。
提示:
1)首先,启动查询分析器,出现连接界面,在“SQLServer(s)”所对应的框中,输入“.”,然后输入密码即可(上机时无密码),然后确定。
打开查询分析器后,在查询窗口中输入如下的SQL语句:
Usepubs
Go
Select*fromauthors
2)然后,单击工具栏中的绿色的小三角
(或按F5)执行查询。
即可查看结果。
实验内容6:
通过对象浏览器查看数据库对象
提示:
可通过单击工具栏上的图标
,来打开和关闭对象浏览器。
注意:
在对数据库进行相应的操作后,对象浏览器有时刷新较慢,需要关闭断开,再连接。
技巧:
如果需要执行某语句时,可以选中该语句,然后在执行该语句即可。
4.联机丛书的使用
联机丛书中包含所有SQLServer2000的使用说明。
在本课程的学习中,各位同学应该掌握联机丛书的使用。
实验内容:
7:
打开联机丛书,在目录中展开“安装SQLServer”,查看有关SQLServer2000的硬件和软件安装要求。
实验内容8:
打开联机丛书,在“索引”中查找有关sp_help存储过程的帮助信息。
实验思考
可以在一台计算机中注册多个命名实例和服务器,现在若需要将18号机器的SQLServer服务注册到本地企业管理器中来,应该怎么做?
实验2数据库的创建和管理
实验目的:
1、熟悉使用向导创建SQLServer数据库的方法;
2、掌握使用企业管理器创建SQLServer数据库的方法;
3、掌握使用T-SQL语言创建SQLServer数据库的方法;
4、掌握附加和分离数据库的方法;
5、掌握使用企业管理器或存储过程查看SQL数据库属性的方法;
6、熟悉数据库的收缩、更名和删除;
7、掌握使用企业管理器或sp_dboption存储过程修改数据库选项的方法。
实验内容和步骤:
本次实验所创建数据库(包括数据库文件和事务日志)存放位置都为“D:
\TestDB”。
因此首先在D盘下新建文件夹TestDB。
1.数据库的创建
创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和文件存放位置的过程。
1.1使用向导创建数据库
实验步骤:
1)打开企业管理器,从“工具”菜单中选择“向导”选项
2)从“选择向导”对话框中,展开“数据库”,选中“创建数据库向导”命令,按照提示一步一步完成数据库的创建。
实验内容1:
创建一个名为Test0的数据库,数据文件的初始大小设为20MB,文件增长方式设为自动增长,文件增长增量设为5MB,文件的增长不设上限;日志文件的初始大小为20MB,文件增长增量设为1MB,文件的增长限制设为100MB。
不许创建维护计划。
创建完后打开D盘的文件夹TestDB,来查看我们所建物理文件。
同时通过企业管理器来查看我们所见的数据库,新建数据库中的表只包括系统表。
1.2用企业管理器创建数据库
实验步骤:
1)在企业管理器中,在数据库文件夹或其下属任一数据库图标上右击,从弹出的快捷菜单中选择“新建数据库”命令,出现“数据库属性”的对话框。
2)在“常规”选项卡中,输入数据库名称
3)在“数据文件”选项卡,输入数据库文件的名称、位置(单击图标
来选择存储位置)、初始容量大小和所属文件组名称。
4)在“事务日志”选项卡,用来设置事务日志文件信息。
实验内容2:
使用SQLServer企业管理器创建一个数据库,具体要求如下:
(大家有疑问)
1)数据库名称为Test1。
2)主要数据文件:
逻辑文件名为Test1_Data1,物理文件名为Test1_Data1.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。
3)次要数据文件:
逻辑文件名为Test1_Data2,物理文件名为Test1_Data2.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。
4)事务日志文件:
逻辑文件名为Test1_Log,物理文件名为Test1_Log.ldf,初始容量为1MB,大容量为5MB,递增量为1MB。
其他选项为默认值。
1.3用Transact-SQL(T-SQL)语句创建数据库
实验步骤:
启动“查询分析器”,在编辑窗口输入SQL语句。
实验内容3:
用T-SQL语句创建一个名为teach的数据库,它由5MB的主数据文件、2MB的次数据文件和1MB的日志文件组成。
并且主数据文件以2MB的增长速度增长,其最大容量为15MB;次数据文件以10%的增长速度增长,其最大容量为10MB;事务日志文件以1MB增长速度增长,其最大日志文件大小为10MB。
运行完语句后,仔细查看结果框中的消息。
提示:
在查询分析器中输入如下SQL语句。
CREATEDATABASEteach
On
(name=teach_data1,
filename='d:
\TestDB\teach_data1.mdf',
size=5,
maxsize=15,
filegrowth=2),
(name=teach_data2,
filename='d:
\TestDB\teach_data2.ndf',
size=5,
maxsize=10,
filegrowth=10%)
logon
(name=teach_log,
filename='d:
\TestDB\teach_log.ldf',
size=1,
maxsize=10,
filegrowth=1)
2数据库的管理
2.1数据库的分离与附加
将teach数据库与服务器分离。
可以使用企业管理器或SQL语言对数据库进行分离的操作。
分离数据库的存储过程是sp_detach_db。
将已分离的“图书”数据库附加到服务器上。
可以使用企业管理器或SQL语言对数据库进行附加的操作。
附加数据库的存储过程是sp_attach_db。
实验内容4:
分离数据库teach
提示:
sp_detach_dbteach
语句执行成功后,打开企业管理器,查看是否存在该数据库对象。
若出现“无法分离数据库'teach',因为它当前正在使用。
”问题,应把企业管理器关闭。
实验内容5:
附加数据库
提示:
sp_attach_dbteach,'d:
\TestDB\teach_data1.mdf'
语句执行成功后,打开企业管理器,查看是否存在该数据库对象。
2.2查看和修改数据库属性
数据库创建以后,可以使用企业管理器或SQL语言来查看或修改数据库的属性。
使用企业管理器的方法是右击数据库名称,在快捷菜单中选择“属性”,然后数据库属性对话框中就可以查看或修改数据库的属性。
也可以使用sp_helpdb、sp_spaceused、sp_helpfile和sp_helpfilegroup等存储过程查看和数据库有关的属性。
修改数据库属性可以使用ALTERDATABASE命令。
实验内容6:
使用sp_helpdb存储过程查看teach数据库的信息,然后企业管理器将teach数据库的事务日志文件的增长大小改为按2MB字节增长,再使用sp_helpdb存储过程查看student数据库的信息。
提示:
在查询分析器中输入如下SQL语句:
sp_helpdbteach
实验内容7:
使用ALTERDATABASE命令为teach数据库添加一个新的数据文件,文件逻辑名为teach3,初始大小为2MB,增长值为1MB,其他属性默认。
提示:
在查询分析器中输入如下SQL语句:
ALTERDATABASEteach
ADDFILE
(name=teach_data3,
filename='d:
\TestDB\teach_data3.ndf',
size=2,
filegrowth=1)
2.3数据库的收缩
数据库收缩可以缩小数据库的空闲空间。
可以使用企业管理器或SQL语言对数据库进行收缩工作。
收缩数据库使用的SQL语句是DBCCSHRINKDATABASE命令。
也可以使用ALTERDATABASE的SET子句或sp_dboption将数据库设为自动收缩。
实验内容8:
将teach数据库设为自动收缩。
提示:
1)使用企业管理器。
打开企业管理器-选择要收缩的数据库-属性-选项-自动收缩(给服务器性能带来额外负担)
2)使用SQL语句。
DBCCSHRINKDATABASE(teach)
其他:
DBCCSHRINKDATABASE(UserDB,10)--把数据库UserDB收缩到90%
DBCCSHRINKDATABASE(DataFile1,7)--把数据文件DataFile1收缩到7M
2.4数据库的更名
使用系统存储过程sp_renamedb更改数据库的名称。
在重命名之前,应确保没有用户使用该数据库。
实验内容9:
将teach数据库改名为teaching。
提示:
在查询分析器中输入如下SQL语句:
sp_renamedbteach,teaching
2.5数据库选项的配置
可以使用ALTERDATABASE语句的SET子句、sp_dboption系统存储过程,或者在某些情况下使用SQLServer企业管理器设置数据库选项。
实验内容10:
使用企业管理器将teaching数据库设为只读。
提示:
打开企业管理器,选中teaching,单击右键,选中“属性”,单击“选项”,选中“只读”,确定。
实验内容11:
使用sp_dboption存储过程取消teaching数据库的只读设置。
提示:
sp_dboption'teaching','readonly','FALSE'
2.6数据库的删除
可以使用企业管理器删除数据库。
在企业管理器中,右击所要删除的数据库,从弹出的快捷菜单中选择“删除”命令或直接按下键盘上Delete按钮即可删除数据库。
可以使用DROP语句删除数据库。
注意:
对正在使用的数据库不能被删除。
实验内容12:
使用DROPDATABASE命令将teaching数据库删除。
提示:
DROPDATABASEteaching
实验思考:
1.一个数据库中包含哪几种文件?
2.事务日志文件的大小一般为数据文件大小的多少合适?
3.若需修改数据库文件的大小,可以使用的方法有哪些?
若要求使用T-SQL语言,则命令应如何编写?
4.能不能删除master数据库?
若一个用户数据库当前正在被访问,能不能被删除?
实验3表的创建和管理
实验目的:
1、掌握使用企业管理器和T-SQL语句创建表;
2、掌握使用企业管理器和T-SQL语句修改表的结构;
3、掌握使用企业管理器和T-SQL语句实现对数据的操作;
4、理解数据完整性的概念和SQLServer实现数据完整性的机制;
5、掌握使用企业管理器和T-SQL语句定义数据完整性,重点掌握主键、外键、检查、唯一和默认值等约束的定义和使用。
实验内容和步骤:
1.在企业管理器中创建和管理数据表
通过企业管理器可以做一下的操作:
1)创建数据表
在企业管理中,打开想要创建新表的数据库,右击“表”对象,或者在窗口右侧中的表显示窗口中右击,从弹出的快捷菜单中选择“新建表”命令,会出现新建表对话框。
在对话框中,定义列,及其属性。
然后保存此表。
2)修改数据库结构
右击要修改的数据表,从弹出的快捷菜单中选择“设计表”命令,出现“设计表”窗口,可以完成增加、删除和修改字段的操作。
3)管理数据表中记录
右击要录入数据的数据表,从弹出的快捷菜单中选择“打开表”命令。
4)删除数据表
右击要删除的数据表,从弹出的快捷菜单中选择“删除”命令。
2.使用Transact-SQL语言创建和管理数据表
实验内容:
首先创建数据库teach(创建方法见实验2),然后在该数据库下创建如下三个表:
1.使用企业管理器按下表结构创建表
表名:
Course
属性名称
属性描述
数据类型
字节数
空否
备注
Cno
课程号
char
4
否
主键,标识列
CName
课程名称
varchar
20
否
Cpno
先行课
char
4
外码
Credit
学分
smallint
2
提示:
1)首先输入所有属性列2)选中cno属性列,单击右键,选择“设置主键”设为主键3)单击右键选择“关系”,单击“新建”,来添加Cpno为外码。
具体:
右击“关系”->单击“新建”->首先选择外键表,然后选择定义为外码的属性;再选择主键表,再选择所参照的主码4)单击工具栏中的“保存”图片5)输入数据表的名字
2.使用T-SQL语句按下表结构创建表
表名:
Student
属性名称
属性描述
数据类型
字节数
空否
备注
Sno
学号
char
9
否
主键
SName
姓名
varchar
8
否
Ssex
性别
char
2
默认值为男,只能输入男和女
Sage
年龄
smallint
Sdept
所在系
char
20
表名:
SC
属性名称
属性描述
数据类型
字节数
空否
备注
Sno
学号
char
9
否
主键,外码
Cno
课程号
char
4
否
主键,外码
Grade
成绩
smallint
0--100
提示:
useteach--打开数据库
createtableStudent
(
SnoCHAR(9)PRIMARYKEY,
SnameVARCHAR(20)NOTNULL,
SsexCHAR
(2)default'男',
SageSMALLINT,
SdeptCHAR(20),
check((Ssex='男')or(Ssex='女'))
)
Go
CREATEtableSC
(
SnoCHAR(9),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESStudent(Sno),
FOREIGNKEY(Cno)REFERENCESCourse(Cno),
check((Grade<=100)and(Grade>=0))
)
GO
3.使用T-SQL语句实现对数据的操作
(1)使用INSERT语句向表中添加记录
(2)使用UPDATE语句对表中数据进行修改
(3)使用DELETE语句对表中数据将删除。
实验4数据查询
实验目的:
1、掌握查询语句SELECT的语法;
2、掌握SELECT语句相关子句(FROM,WHERE,GROUPBY,ORDERBY等)的使用;
3、掌握使用SELECT语句进行简单查询、连接查询、嵌套查询。
实验内容:
完成简单查询操作。
该实验包括投影、选择条件表达,数据排序,使用临时表等;
完成连接查询、嵌套查询、组合查询和统计查询等操作。
首先完成数据库和表的创建(具体代码,见“建库.sql”,可用文本编辑器打开)。
具体操作:
首先在D盘下新建文件夹TestDB,打开“查询分析器”->点击工具栏中的图标
->找到“建库.sql”,打开->执行。
即可得到实验所需数据库和数据。
1.单表查询
1)查询每个学生的所有数据。
2)查询全体学生的学号、姓名、所在系。
3)查询所有年龄在20岁以下的学生姓名及年龄。
4)查询年龄在20~25岁(包括20,25)之间的学生的姓名、系别和年龄。
5)查询在信息系和数学系学习的学生的姓名和性别。
6)查询所有姓李的学生的姓名、学号和性别。
7)查询选修了0003号课程的学生的学号及其成绩,查询结果按分数的降序排序。
8)查询全体学生的情况,结果按所在系的升序排序,同一系的按年龄的降序排序。
9)统计学生总人数。
10)计算0001号课程的学生平均成绩。
11)查询选修了0001号课程的学生最高分数。
12)求各课程号及相应的选课人数。
13)查询选修了3门及以上课程的学生学号。
2.连接查询
14)查询每个学生及其选修课程的情况。
15)查询选修了00002号课程且成绩在90分以上的所有学生的信息。
16)查询每个学生的学号、姓名、选修的课程名和成绩
17)查询选修了课程名为“数据库”的学生的学号和姓名
18)查询成绩表Grade中每位学生的学号Sno和各科的总成绩,并按总成绩降序排列。
19)查找课程表中没有学生选修的课程的课程号和课程名称。
提示:
1)select*fromstudent
2)selectsno,sname,sdeptfromstudent
3)selectsname,sagefromstudentwheresage<20
4)selectsname,sdept,sagefromstudentwheresagebetween20and25
5)selectsname,ssexfromstudentwheresdeptin('信息系','数学系')
6)selectsname,sno,ssexfromstudentwheresnamelike'李%'
7)selectsno,gradefromscwherecno='0003'orderbygradedesc
8)select*fromstudentorderbysdeptasc,sagedesc
9)selectcount(*)fromstudent
10)selectavg(grade)fromscwherecno='0001'
11)selectmax(grade)fromscwherecno='0001'
12)selectcno,count(sno)人数fromscgroupbycno
13)selectsnofromscgroupbysnohavingcount(cno)>=3
14)selectstudent.sno,sname,sage,ssex,sdept,cno,grade
fromstudent,scwherestudent.sno=sc.sno
15)selectstudent.sno,sname,sage,ssex,sdept
fromstudent,scwherestudent.sno=sc.snoandcno='0002'andgrade>=90
16)selectstudent.sno,sname,cname,grade
fromstudent,sc,course
wherestudent.sno=sc.snoando=o
17)selectstudent.sno,snamefromstudent,course,sc
wherestudent.sno=sc.snoando=oandcname='数据库'
18)selectsno,sum(grade)fromscgroupbysnoorderbysum(grade)desc
19)
selectcno,cnamefromcourse
wherenotexists
(select*fromscwhereo=o)
实验5视图的创建和使用
实验目的:
1、理解视图的基本概念,掌握视图的创建、修改和删除。
2、掌握对视图进行查询和更新。
实验内容:
视图是从一个或几个表导出的表。
它与基本表不同,是一个虚表。
数据库中只存放视图的定义,而不存放视图对应的数据。
首先完成数据库和表的创建,如上。
1