数据库原理实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理—数据库原理与应用实验指导书
目录
实验一 SQLSERVER 2000的安装................... 错误!未定义书签。
实验二数据库及表的定义........................ 错误!未定义书签。
实验三数据插入、删除、与更新.................. 错误!未定义书签。
实验四数据查询................................ 错误!未定义书签。
实验五视图的定义和使用........................ 错误!未定义书签。
实验六数据完整性.............................. 错误!未定义书签。
实验七存储过程的使用........................... 错误!未定义书签。
实验八事务的使用............................... 错误!未定义书签。
实验九安全性管理............................... 错误!未定义书签。
实验十数据库设计.............................. 错误!未定义书签。
实验一 SQLSERVER 2000的安装
2.SQL SERVER 2000的安装
(1)将企业版安装光盘插入光驱后,出现以下提示框。
注意:如果您的计算机的操作系统是windows 95以上,则选择“安装SQL Server 2000组件”,如果操作系统是windows 95,则需要选择“安装SQL Server 2000的先决条件”。
由于SQL Server 2000 的某些功能要求在Microsoft Windows 2000 Server以上的版本才能运行。
因此安装Windows Server 2000(建议为Advanced版本),可以学习和使用到SQL Server 2000的更多功能,以及享受更好的性能。
本安装将在Windows 2000 Advanced Server操作系统作为示例,详细介绍安装SQL Server 2000企业版的过程。
大家清首先安装Windows 2000 Advanced Server。
(2)选择 "安装 SQL Server 2000 组件",出现下一个页面。
(3)选择 "安装数据库服务器",出现如下界面:
(4)选择"下一步",出现如下界面:
(5)选择’本地计算机’(默认)选项,选择"下一步",出现如下界面:
在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。
对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。
"高级选项" 中的内容均可在安装完成后进行调整。
选择"下一步",出现如下界面:
(6)在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。
(7)在 "安装定义"窗口,选择 "服务器和客户端工具" 选项进行安装。
我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习SQL Server很有用处。
如果你已经在其它机器上安装了SQL Server,则可以只安装客户端工具,用于对其它机器上SQL Server的存取。
(8)在 "实例名" 窗口,选择 "默认" 的实例名称。
这时本SQL Server的名称将和Windows 2000服务器的名称相同。
例如笔者的Windows服务器名称是 "Darkroad",则SQL Server的名字也是 "Darkroad"。
SQL Server 2000可以在同一台服务器上安装多个实例,也就是你可以重复安装几次。
这时您就需要选择不同的实例名称了。
建议将实例名限制在 10 个字符之内。
实例名会出现在各种 SQL Server 和系统工具的用户界面中,因此,名称越短越容易读取。
另外,实例名称不能是 "Default" 或"MSSQLServer" 以及SQL Server的保留关键字等。
(9)在 "安装类型" 窗口,选择 "典型" 安装选项,并指定 "目的文件夹"。
程序和数据文件的默认安装位置都是 "C:\Program Files\Microsoft SQL Server\"。
因为C 盘是系统区、D盘是应用区,因此选择了D盘。
(10)在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。
在 "服务设置" 处,选择 "使用本地系统账户"。
如果需要 "使用域用户账户" 的话,请将该用户添加至Windows Server的本机管理员组中。
(11)在 "身份验证模式" 窗口,请选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。
如果您的目的只是为了学习的话,可以将该密码设置为空,以方便登录。
如果是真正的应用系统,则千万需要设置和保管好该密码!如果需要更高的安全性,则可以选择 "Windows身份验证模式" ,这时就只有Windows Server的本地用户和域用户才能使用SQL Server了。
(12)在 "选择许可模式" 窗口,根据您购买的类型和数量输入(0表示没有数量限制)。
"每客户"表示同一时间最多允许的连接数,"处理器许可证"表示该服务器最多能安装多少个CPU。
这里选择了 "每客户" 并输入了100作为示例。
(13)然后就是约10分钟左右的安装时间,单击‘完成’系统安装完毕。
附:企业管理器和查询分析器的介绍
企业管理器和查询分析器是SQLSERVER 2000 实验的主要工具,下面分别对这两类工具进行介绍:
1、企业管理器:
(1)按图所示找到SQLSERVER 2000 中的企业管理器;
(2)用鼠标单击企业管理器菜单项,进入企业管理器管理界面:
根据图形界面,可进行数据库、表等的管理。
2、查询分析器:
所有的SQL语句操作都在查询分析器中运行,对查询分析器的使用要熟练掌握。
(1)按图所示找到SQLSERVER 2000 中的查询分析器;
(2)用鼠标单击查询分析器菜单项,进入查询分析器界面:
(3)若以Windows身份验证进入,可直接点击‘确定’;若以SQL server 身份验证,可输入登陆用户名及登陆密码;‘sa’是超级用户;身份验证通过后,可进入查询分析器界面如下:
在查询分析器界面中,左边是数据库构成对象;右边分上下两部分:上面部分是查询分析器的SQL语句编辑部分,实验中的SQL语句在此部分进行编辑;下边部分是SQL 语句的执行结果区域,SQL语句的执行结果在此部分显示。
查询分析器的使用注意以下问题:
(a)SQL语句所作的操作都是基于当前数据库的,进入界面的默认数据库是master数据库,如不在 master数据上操作,请在界面上部切换到你要操作的数据库。
(b)SQL语句执行时,用鼠标点击界面工具条中的绿色箭头;语句执行完毕后结果显示在界面右部的下面的区域。
(c)SQL语句的执行是从第1句开始执行,为了仅执行部分SQL语句,可采用两重方法:
第一是用鼠标选种执行的部分,然后点击绿色箭头进行执行;
第二是把不执行的SQL语句用注释符号屏蔽掉。
注释符号有两种。
‘--’符号是行注释,仅注释1 行;‘/* */ ’是多行内容注释,把不执行的语句放在‘/*’与‘*/’之间。
(d)SQL语句可保存在磁盘上。
实验二数据库及表的定义
Drop table sc
15、删除数据库;
use master
drop database student
实验三数据插入、更新、与删除
一、学时:2学时
二、实验目的
熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;
加深理解表的定义和数据更新的作用
三、实验准备
1、建立数据库student、表S、C、SC以及索引
2、复习对表中数据的插入、修改和删除的SQL语言命令;
四、实验内容
1、用SQL语句将适量数据分别插入表S、C、SC;
Insert into s(sno,sname,ssex,sage,sdept) Values ('','李勇','男','20','cs')
Insert into s(sno,sname,ssex,sage,sdept) Values ('','刘晨','女','19','cs')
Insert into s(sno,sname,ssex,sage,sdept) Values ('','王敏','女','18','ma')
Insert into s(sno,sname,ssex,sage,sdept) Values ('','张立','男','19','is') ..............................
Insert into c(cno,cname,cpno,ccredit) Values ('1','数据库','5',4)
Insert into c(cno,cname,cpno,ccredit) Values ('2','数学',null,2)
Insert into c(cno,cname,cpno,ccredit) Values ('3','信息系统','1',4) Insert into c(cno,cname,cpno,ccredit) Values ('4','操作系统','6',3) Insert into c(cno,cname,cpno,ccredit) Values ('5','数据结构','7',4) Insert into c(cno,cname,cpno,ccredit) Values ('6','数据处理',null,2) Insert into c(cno,cname,cpno,ccredit) Values ('7','pascal语言','6',4) ..............................
Insert into sc(sno,cno,grade) Values ('','1',92)
Insert into sc(sno,cno,grade) Values ('','2',85)
Insert into sc(sno,cno,grade) Values ('','3',88) Insert into sc(sno,cno,grade) Values ('','2',90)
Insert into sc(sno,cno,grade) Values ('','3',80) ..............................
2、求各系学生的平均成绩;
use student
select sdept ,avg(grade)
from s,sc
where =
group by sdept
3、将“CS”系全体学生的成绩置零;
use student
update sc
set grade=0
from s,sc
where = and ='CS'
4、删除“CS”系全体学生的选课记录;
use student
DELETE C
FROM S,C,SC
WHERE = AND = and ='CS'
5、删除学号为“20080001”的相关信息;
use student
delete s where sno=''
delete sc where sno=''
6、将s表中学号为“20080002”的学生的学号修改为“S002”;
use student
update s
set sno='s002'
where sno=''
7、把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S_Grade(Sno,AVG_Grade);
use student
create table S_Grade
(
sno char(8) not null,
AVG_Grade decimal
)
use student
insert S_Grade(sno,AVG_Grade)
select sno ,avg(grade)
from sc
group by sno
8、把选修了课程名为“数据结构”的学生的成绩提高10%;
use student
update sc
set grade = grade *
from c,sc
where = and ='数据结构'
9、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
use student
update sc
set grade = grade *
from sc
where ='2'
and grade < (select avg(grade) from sc where ='2' )
10、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
use student
delete sc
from sc
where ='2'
and grade < (select avg(grade) from sc where ='2' )
实验四数据查询
一、学时:4学时
二、实验目的
熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练地使用SQL 语句的各种形式;
三、实验准备
1、熟悉SQL SERVER 工作环境;
2、复习对表中数据查询的SQL语言命令;
四、实验内容
1、根据实验二、三建立的SQL语句,建立相关的数据库、表及插入相关信息
2、查询学生的基本信息;
use student
select * from s
3、查询“CS”系学生的基本信息;
use student
select * from s where sdept='cs'
4、查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;
use student
select sno,sname from s
where sdept='cs' and ( sage <19 or sage >21 )
5、找出最大年龄;
use student
select max(sage) from s
6、找出“CS”系年龄最大的学生,显示其学号、姓名;
select sno , sname
from s
where sdept='cs' and sage=(
select max(sage) from s where sdept='cs'
)
7、找出各系年龄最大的学生的年龄;
select sdept, max(sage)
from s
Group by sdept
8、统计“CS”系学生的人数;
9、统计各系学生的人数,结果按升序排列;
10、按系统计各系学生的平均年龄,结果按降序排列;
11、查询每门课程的课程名;
12、查询无先修课的课程的课程名和学时数;
13、统计无先修课的课程的学时总数;
14、统计每位学生选修课程的门数、学分及其平均成绩;
15、统计选修每门课程的学生人数及各门课程的平均成绩;
16、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排
列;
17、查询选修了“1”或“2”号课程的学生学号和姓名;
18、查询选修了“1”和“2”号课程的学生学号和姓名;
19、查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;
20、查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);
21、查询没有选修课程的学生的基本信息;
22、查询选修了3门以上课程的学生学号;
23、查询选修课程成绩至少有一门在80分以上的学生学号;
24、查询选修课程成绩均在80分以上的学生学号;
25、查询选修课程平均成绩在80分以上的学生学号;
实验五视图的定义和使用
一、学时:2学时
二、实验目的
熟悉掌握对数据表中视图的定义操作和SQL命令的使用;
熟悉掌握对数据表中视图的查询操作和SQL命令的使用;
熟悉掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;
学习灵活熟练的进行视图的操作,认识视图的作用;
三、实验准备
1、熟悉SQL SERVER 工作环境;
2、复习有关视图操作的SQL语言命令;
四、实验内容
以S、C、SC表为基础完成以下视图定义及使用
1、定义“IS”系学生基本情况视图V_IS 并查询结果;
2、将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G 并查询结果;
3、将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果;
4、定义一个反映学生出生年份的视图V_YEAR并查询结果;
5、将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;
6、将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果;
7、查询平均成绩为90分以上的学生学号、姓名和成绩;
8、查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;
9、按系统计各系平均成绩在80分以上的人数,结果按降序排列;
10、通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果;
11、通过视图V_IS,新增加一个学生记录 (‘S12’,’YAN XI’,19,’IS’),并查询结果;
12、通过视图V_IS,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果;
13、通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;
14、要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现
15、要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现
实验六数据完整性
一、学时:2学时
二、实验目的
熟悉和掌握使用SQL查询分析器用PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字验证SQL SERVER 2000的实体完整性、参照完整性及用户定义完整性。
三、实验准备
1、熟悉SQL SERVER 工作环境;
2、复习有关建表操作的SQL语言命令;
四、实验内容
1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性
在查询分析器窗体下键入如下命令:
CREATE TABLE Student1(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(8),
Ssex CHAR(1),
Sage INT,
Sdept CHAR(20),
CONSTRAINT PK_Student PRIMARY KEY(sno))
运行后插入、更改数据并观察结果;
2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证参照完整性
在查询分析器窗体下键入如下命令:
CREATE TABLE SC(sno CHAR(5) NOT NULL UNIQUE,
cno CHAR(5) NOT NULL UNIQUE,
grade INT,
CONSTRAINT FK-SC FOREIGN KEY(sno,cno)
REFERENCES ( Student(sno),Course(cno)) ON DELETE CASCADE);
运行后插入、更改数据并观察结果;
3、利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性
CREATE TABLE Student(sno CHAR(5) ,
sname CHAR(8) CONSTRAINT U1 UNIQUE,
ssex CHAR(1) ,
sage INT CONSTRAINT U2 CHECK FOR sage<=28,
sdept CHAR(20),
CONSTRAINT PK-Student PRIMARY KEY(sno))
运行后插入、更改数据并观察结果;
实验七存储过程的使用
一、学时:2学时
二、实验目的
熟练掌握使用SQL SERVER 2000创建和执行存储过程的方法。
熟练掌握存储过程的删除操作。
三、实验准备
1.熟悉SQL SERVER 2000设计环境;
2.熟悉存过过程的创建方法、步骤
四、实验内容
1、利用企业管理器或查询分析器创建proc_s存储过程。
在查询分析器中建立存储过程的命令如下:
create procedure proc_s
as
select * from s
2、使用EXECUTE语句执行存储过程并观察结果。
命令如下:
exec proc_s
3、利用企业管理器或查询分析器创建proc_goods存储过程。
在查询分析器中建立存储过程的命令如下:
create procedure proc_goods
@toyname varchar(20)
as
select * from s where sname=@toyname
4、使用EXECUTE语句执行存储过程并观察结果。
命令如下:
exec proc_goods
5、在查询分析器中使用drop procedure删除上面建立的存储过程。
实验八事务的使用
单击工具栏中的运行按钮,启动一个转账的事务,但并未提交事务。
再打开一个查询分析器,输入如下代码:
BEGIN TRANSACTION
SELECT * FROM 帐户表
单击工具栏中的运行按钮,看看有何反映
在不同事务的隔离级别下,应有不同的结果,在默认事务隔离级别下(READ COMMITTED),应等待另一个事务的完成。
切换到第一个查询分析器窗口,输入“Commit”或“Rollback”,看看第二个查询分析器窗口的反映。
反复更改隔离级别,看看结果的变化。
实验九安全性管理
一、学时:2学时
三、实验目的
掌握账户的建立。
掌握权限的分配与回收。
掌握数据的备份与恢复。
三、实验准备
1.熟悉SQL SERVER 2000的登录、认证方式;
2.熟悉对数据操作权限的设置
3. 熟悉数据备份设备的建立、数据备份和恢复的方法。
四、实验内容
1、用企业管理器建立登录账户:user1,user2,user3。
2、将user1,user2,user3映射为“学生-课程”数据库的用户。
3、授予user1,user2,user3具有对S、C、SC三张表的查询权。
4、授予user1具有对S、C表的插入、删除权。
5、在“学生-课程”数据库中建立用户角色ROLE1,把S表的插入、删除、查询权授予它,并将user1,user2添加到此角色中。
6、回收user1对S表的查询权。
7、备份数据库。
8、还原数据库。
操作步骤:
1、打开企业管理器,点击“安全性”,然后右击“登录”图标,选择“新建登录”。
建立三个登录帐户。
2、在学生-课程数据库中选择用户,右键点击“用户”,在弹出的快捷菜单中选择“新建数据库用户”。
把三个登录账户映射为学生-课程数据库的三个用户。
3、在学生-课程数据库中选中一个用户,右击它,在弹出的快捷菜单中选中“属性”,在对话框中点击“权限”,给这个用户分配权限。
另外两个用户也依次进行。
在学生-课程数据库中选中“角色”,右击它,在弹出的快捷菜单中选中“新建角色”,建立角色ROLE1,同时将三个用户添加到此角色中。
4、为了给角色分配权限,可以在右击已经建立好了的角色,选择快捷菜单中的“属性”。
点击“权限”,在对话框中给ROLE1分配权限。
5、使用企业管理器回收user1对S表的查询权。
6、备份数据库。
右击要备份的数据库,从“所有任务”里面选择“备份数据库”,实现对数据库的备份。
7、还原数据库。
打开企业管理器,选中“数据库”图标,右击它,从快捷菜单中选择“所有任务”中的“还原数据库”,根据备份数据实现数据库的还原。
8、导入导出数据。
将一个表中的数据导出到一个EXCEL文件中。
可在企业理器中右击要导出的表,在弹出的快捷菜单中选择“所有任务”→“导出数据”,按向导可将表中的数据导出到目的位置。
实验十数据库设计
一、学时:4学时
二、实验目的
学习使用SQL SERVER 2000进行数据库的设计,并熟悉数据库的设计的基本方法和步骤,搞清数据库设计各阶段的任务
三、实验准备
1.熟悉SQL SERVER 2000设计环境;
2.复习SQL语言命令;
3.复习E-R图的绘制;
4.复习数据库设计的方法、步骤
四、实验内容
完成学生成绩管理系统数据库的设计:
1.对学生成绩管理系统进行需求分析;
2.绘制E-R图;
3.将E-R模型向数据模型转换;
4.创建数据库,定义基本表
注:学生可根据自己的实际情况,进行其他数据库管理系统的设计。