数据库原理实验指导书.docx
- 文档编号:11777914
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:29
- 大小:727.04KB
数据库原理实验指导书.docx
《数据库原理实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库原理实验指导书.docx(29页珍藏版)》请在冰豆网上搜索。
数据库原理实验指导书
实验课程教学周历
学生人数:
78 大纲规定总学时数:
22 实际开出总学时数:
22
序号
开课周次
实验项目名称
实验
类型
实验学时
仪器套数
每套仪器人数
实验材料消耗(元)
准备实验人员
指导实验教师
1
9
认识DBMS,
建立数据库、表
设计
2
70
1
无
王帅
陈美荣
范祺
2
10-11
数据查询
设计
4
70
1
无
王帅
陈美荣
范祺
3
12
数据更新
验证
2
70
1
无
王帅
陈美荣
范祺
4
13
视图的定义及使用
验证
2
70
1
无
王帅
陈美荣
范祺
5
14
数据库安全性管理
验证
2
70
1
无
王帅
陈美荣
范祺
6
15
数据完整性实验
验证
2
70
1
无
王帅
陈美荣
范祺
7
16
数据库的备份和恢复
验证
2
70
1
无
王帅
陈美荣
范祺
8
16-17
系统需求分析和关系数据库设计
综合
6
70
1
无
王帅
陈美荣
范祺
前言
SQLServer2000的安装
将安装光盘插入光驱后,出现图1所示提示框。
选择“安装SQLServer2000组件”,出现图2所示页面后,选择“安装数据库服务器”。
图1
图2
选择“下一步”,然后选择“本地计算机”进行安装。
图3
图4
在“安装选择”窗口,选择“创建新的SQLServer实例...”。
对于初次安装的用户,应选用这一安装模式,不需要使用"高级选项"进行安装。
"高级选项"中的内容均可在安装完成后进行调整。
图5
在"用户信息"窗口,输入用户信息,并接受软件许可证协议。
图6
图7
在"安装定义"窗口,选择"服务器和客户端工具"选项进行安装。
我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习SQLServer很有用处。
如果你已经在其它机器上安装了SQLServer,则可以只安装客户端工具,用于对其它机器上SQLServer的存取。
图8
在"实例名"窗口,选择"默认"的实例名称。
这样本SQLServer的名称将和Windows2000服务器的名称相同。
SQLServer2000可以在同一台服务器上安装多个实例,也就意味着可以重复安装多次,这时用户就可以选择不同的实例名称。
建议将实例名限制在10个字符之内。
因为实例名会出现在各种SQLServer和系统工具的用户界面中,因此,较短的实例名称相对容易读取。
需要注意的是,实例名称不能是"Default"或"MSSQLServer"以及SQLServer的保留关键字。
图9
在"安装类型"窗口,选择"典型"安装选项,并指定"目的文件夹"。
程序和数据文件的默认安装位置都是"C:
\ProgramFiles\MicrosoftSQLServer\"。
如果用户的C盘是系统区、D盘是应用区,也可以选择D盘作为安装区。
如果数据库中数据有10万条以上的记录,则至少预留1G以上的存储空间,以满足庞大的日志空间和索引空间的需求。
图10
在"服务账号"窗口,请选择"对每个服务使用统一账户..."的选项。
在"服务设置"处,选择"使用本地系统账户"。
如果需要"使用域用户账户"的话,请将该用户添加至WindowsServer的本机管理员组中。
图11
在"身份验证模式"窗口,请选择"混合模式..."选项,并设置管理员"sa"账号的密码。
如果您的目的只是为了学习的话,可以将该密码设置为空,以方便登录。
如果是真正的应用系统,则千万需要设置和保管好该密码!
如果需要更高的安全性,则可以选择"Windows身份验证模式",这时就只有WindowsServer的本地用户和域用户才能使用SQLServer了。
图12
在"选择许可模式"窗口,根据您购买的类型和数量输入(0表示没有数量限制)。
"每客户"表示同一时间最多允许的连接数,"处理器许可证"表示该服务器最多能安装多少个CPU。
笔者这里选择了"每客户"并输入了100作为示例。
图13
然后就是约10分钟左右的安装时间,安装完毕后,出现该界面,并新增了以下的菜单。
实验1认识DBMS,建立数据库、表
实验目的
熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。
实验内容
创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。
数据库XSGL包含下列3个表:
(l)student:
学生基本信息。
(2)course:
课程信息表。
(3)sc:
学生选课表。
各表的结构分别如表1、表2和表3所示。
表1学生信息表:
student
列名
数据类型
长度
是否允许为空值
sno
字符型
10
否
sname
字符型
10
否
ssex
字符型
2
否
sage
整数型
是
sdept
字符型
4
否
表2课程信息表:
course
列名
数据类型
长度
是否允许为空值
cno
字符型
3
否
cname
字符型
30
否
credit
整数型
是
pcno
字符型
3
是
表3学生选课表:
sc
列名
数据类型
长度
是否允许为空值
sno
字符型
10
否
cno
字符型
30
否
grade
整数型
是
实验方法
一.数据库的建立:
1.用可视化界面建立:
(a)在SQLSERVER中用企业管理器-新建数据库;
2.命令方式建立:
(a)在SQLSERVER中,在查询分析器中使用T-SQL语句:
CREATEDATABASEXSGL
ON(NAME='XSGL_DATA',
FILENAME='E:
\XSGL.MDF',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5%)
LOGON
(NAME='XSGL_Log',
FILENAME='e:
\XSGL_Log.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
二.表的建立:
1.用可视化界面建立:
在SQLSERVER中用企业管理器—数据库—XSCJ—表—右键—新建表;
2.命令方式建立:
在SQLSERVER中查询分析器的编辑窗口中用下列SQL语句:
useXSGL
Createtablestudent(snoCHAR(5),snameCHAR(10),ssexCHAR
(2),sageint,sdeptCHAR(4))
go
Createtablecourse(cnoCHAR
(2),cnameCHAR(30),creditINT,pcnoCHAR
(2)NULL)
go
Createtablesc(snoCHAR(5),cnoCHAR
(2),gradeINTNULL)
go
三.表数据的添加:
1.用可视化方法:
I:
在SQLSERVER中用企业管理器—数据库—XSCJ—表-表名—右键-打开表-返回所有行;
输入下列数据:
sno
sname
ssex
sage
sdept
95001
李勇
男
20
CS
95002
刘晨
女
19
IS
95003
王敏
女
18
MA
95004
张立
男
19
IS
95005
刘云
女
18
CS
cno
cname
credit
pcno
1
数据库
4
5
2
数学
6
3
信息系统
3
1
4
操作系统
4
6
5
数据结构
4
7
6
数据处理
3
7
PASCAL语言
4
6
sno
cno
grade
95001
1
92
95001
2
85
95001
3
88
95002
2
90
95002
3
80
95003
2
85
95004
1
58
95004
2
85
2.在SQLSERVER查询分析器的编辑窗口中使用下列SQL语句插入数据:
insertintostudent(sno,sname,ssex,sage,sdept)values('95001','李勇','男',20,'CS')
insertintostudent(sno,sname,ssex,sage,sdept)values('95002','刘晨','女',19,'IS')
insertintostudent(sno,sname,ssex,sage,sdept)values('95003','王敏','女',18,'MA')
insertintostudent(sno,sname,ssex,sage,sdept)values('95004','张立','男',19,'IS')
insertintostudent(sno,sname,ssex,sage,sdept)values('95005','刘云','女',18,'CS')
insertintocourse(cno,cname,credit,pcno)values('1','数据库',4,'5')
insertintocourse(cno,cname,credit,pcno)values('2','数学',6,null)
insertintocourse(cno,cname,credit,pcno)values('3','信息系统',3,'1')
insertintocourse(cno,cname,credit,pcno)values('4','操作系统',4,'6')
insertintocourse(cno,cname,credit,pcno)values('5','数据结构',4,'7')
insertintocourse(cno,cname,credit,pcno)values('6','数据处理',3,null)
insertintocourse(cno,cname,credit,pcno)values('7','PASCAL语言',4,'6')
insertintosc(sno,cno,grade)values('95001','1',92)
insertintosc(sno,cno,grade)values('95001','2',85)
insertintosc(sno,cno,grade)values('95001','3',88)
insertintosc(sno,cno,grade)values('95002','2',90)
insertintosc(sno,cno,grade)values('95002','3',80)
insertintosc(sno,cno,grade)values('95003','2',85)
insertintosc(sno,cno,grade)values('95004','1',58)
insertintosc(sno,cno,grade)values('95004','2',85)
四.表数据的修改:
1.用可视化方法:
在SQLSERVER中用企业管理器—数据库—XSCJ—表-表名—右键-打开表-返回所有行;
在表格中将相应的数据修改即可。
2.命令方法:
将所有学生的年龄增加一岁:
updatestudentsetsage=sage+1
将4号课程的学分改为4:
updatecoursesetcredit=4wherecno=4
设置7号课程没有先行课:
updatecoursesetpcno=nullwherecno=7
将95001号学生的1号课程的成绩增加3分:
updatescsetgrade=grade+3wheresno=’95001’andcno=’1’
五.表数据的删除:
1.用可视化方法:
在SQLSERVER中用企业管理器—数据库—XSCJ—表-表名—右键-打开表-返回所有行;
单击左边的行标记,选定某一行,或单击后拖动选择相邻的多行,再右击鼠标选择弹出式菜单中的删除。
2.命令方法:
删除学号为95005的学生的记录:
deletefromstudentwheresno=’95005’
删除所有的课程记录:
deletefromcourse
删除成绩为不及格(少于60分)的学生的选课记录:
deletefromscwheregrade<60
参考资料
企业管理器(EnterpriseManager)
企业管理器是SQLServer2000主要的管理工具,它提供了简单易用的管理控制台(MMC)用户界面,使初学者可以通过菜单和向导的模式建立数据库、定义数据表、备份和还原、数据导入导出、以及管理用户权限和数据库安全级别等高级功能。
1.登陆企业管理器用户界面
首先通过【开始】→【程序】→【MicrosoftSQLServers】→【企业管理器】进入企业管理器界面。
图16
在企业管理器的左边列出的是控制台管理目录,依次是数据库类型(SQLServers)、数据库群组名(SQLServers组)、数据库服务器主机名(如:
GUOLH(WindowsNT),其中:
GUOLH为数据库所在的机器名,默认连接为本机)和该数据库服务器提供的所有的管理工具(包括数据库、数据转换服务、管理、复制、安全性、支持服务等)。
在“数据库”选项中列出的是当前服务器中所有的数据库名(master、model、msdb、Northwind等),其中master、model、tempdb等为系统数据库,记录其他数据库的公有属性和某些隐藏信息,用户不要直接对系统数据库(也就是master库)中的表和数据项进行修改和删除,否则将会给数据库系统造成不可挽回的损失。
在本机上安装完毕SQLServer2000,第一次打开企业管理器,系统将自动以管理员身份(用户名:
sa)登录,如果出现登录是要求输入用户名和密码,请以sa为登录账号,密码为安装时设置的密码。
图17
如果忘记密码,也不要紧,只要当前连接的数据库主机是自己的电脑,只需在数据库服务器主机名(如:
GUOLH(WindowsNT))上点击右键,选择“编辑SQLServer注册属性”,弹出如下对话框:
图18
将“连接模式”改为“使用Windows身份验证”。
点击“确定”,关闭企业管理器,再重新进入,就不会再出现登录界面,此时只要用户登录Windows2000的账号是管理员账号,用户就具备了管理数据库的最高权限。
由于SQLServer2000支持网络访问和远程管理,所以建议用户及时修改SQLServer身份验证模式中的管理员密码,方法是进入“安全性”→“登录”,双击“sa”,出现如下对话框:
图19
在密码框中输入新密码,点击确定,再次确认密码即可。
2.建立数据库
要建立数据库最简单的方法是在“数据库”选项上点右键弹出菜单,选择“新建数据库”,出现如下对话框:
图20
在名称栏目中输入数据库的名称(如:
我的数据库),其他选项采用默认设置,点“确定”一个新的数据库就生成了。
新的数据库名将出现在“数据库”列表中。
(在一个数据库服务器上可以新建许多个数据库,他们之间相对独立)
如果在数据库中定义数据表,只要双击进入“我的数据库”,再双击进入“表”,企业管理器的右边将列出该数据库中所有的可见表。
如下图所示:
图21
所列的数据表的名称的前三个字母都是“sys”,他们都是该数据库的系统表,用户请不要把这些表删除,以免给该数据库造成不可挽回的破坏。
用户要定义自己的表,只要在“表”右键菜单中选择“新建表”,出现如下图所示的表字段定义对话框。
由于一个空的数据库中含有很多系统表,用户可以将所有的系统库和系统表进行隐藏,具体操作请看前面的“已注册的SQLServer属性”对话框。
图22
用户定义视图可以点击工具栏上的“添加表”按钮来添加视图的基表,选择各表中的字段的存在形式。
也可以在SQL编辑器中直接输入建立视图的SQL语句。
如下图:
图23
“关系图”也是数据库设计的常用操作,在“关系图”上点击出现右键菜单,选择“新建数据库关系图”。
出现“创建数据库关系图先导”,直接点击下一步,选择需要参与关系设计的有关数据表和视图。
继续下一步,然后完成。
如图出现关系图设计界面。
用户只要用鼠标拖动,设置各种属性,就可以将各表中的相关字段建立某种关系。
图24
图26
实验2数据查询
实验目的
本实验的目的是使学生掌握SQLServer查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。
熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
实验内容
一.单表查询:
1.查询全体学生的学号和姓名:
selectsno,snamefromstudent
2.查询全体学生的所有信息:
select*fromstudent
或者selectsno,sname,ssex,sage,sdeptfromstudent
3.查询全体学生的姓名,出生年份,和所在系,并用小写字母表示所有系名:
selectsname,'出生年份为:
',year(getdate())-sage,lower(sdept)fromstudent
4.给上例的结果集指定列名:
selectsname,'出生年份为:
'出生,year(getdate())-sage年份,lower(sdept)系名fromstudent
5.查询选修了课程的学生的学号:
selectdistinctsnofromsc
比较:
selectsnofromsc
6.查询年龄在20岁以下的学生的姓名及其年龄:
selectsname,sagefromstudentwheresage<20
7.查询考试成绩有不及格的学生的学号:
selectdistinctsnofromscwheregrade<60
比较:
selectsnofromscwheregrade<60
8.查询年龄在20-30岁直接的学生的姓名,姓名,所在系:
selectsname,ssex,sdeptfromstudentwheresagebetween20and30
9.查询IS,CS,MA系的所有学生的姓名和性别:
selectsname,ssexfromstudentwheresdeptin('IS','MA','CS')
10.查找所有姓’李’的学生的姓名,学号和性别:
selectsname,sno,ssexfromstudentwheresnamelike'李%'
比较:
将学生表中的’95001’号学生的姓名’李勇’改为’李勇勇’,再执行:
selectsname,sno,ssexfromstudentwheresnamelike'李_'
11.查询没有先行课的课程的课程号cno和课程名cname:
selectcno,cnamefromcoursewherepcnoisnull
二.查询结果排序
12.查询选修了3号课程的学生的学号和成绩,并按分数降序排列:
selectsno,gradefromscwherecno='3'orderbygradeDESC
23.查询全体学生的情况,查询结果按所在系号升序排列,同一系中的学生按年龄降序排列:
select*fromstudentorderbysdeptASC,sageDESC
三.连接查询:
14.查询每个学生及其选修课程的情况:
selectstudent.*,sc.*fromstudent,scwherestudent.sno=sc.sno
比较:
笛卡尔集:
selectstudent.*,sc.*fromstudent,sc
自然连接:
selectstudent.sno,sname,ssex,sdept,cno,gradefromstudent,scwherestudent.sno=sc.sno
15.查询每一门课程的间接先行课(只求两层即先行课的先行课):
selectFo,Second.pcno间接先行课fromcourseFirst,courseSecondwhereFirst.pcno=So
比较:
selectFo,Second.pcno间接先行课fromcourseFirst,courseSecondwhereFirst.pcno=SoandSecond.pcnoisnotnull
16.列出所有学生的基本情况和选课情况,若没有选课,则只列出基本情况信息:
SQLServer中:
selects.sno,sname,ssex,sdept,cno,gradefromstudents,scscwheres.sno*=sc.sno
17.查询每个学生的学号,姓名,选修的课程名和成绩:
selectS.sno,sname,cname,gradefromstudentS,courseC,scSCwhereS.sno=SC.snoandC.cno=SC.cno
四.使用带IN谓词的子查询
1.查询与’刘晨’在同一个系学习的学生的信息:
select*fromstudentwheresdeptin
(selectsdeptfromstudentwheresname='刘晨')
比较:
select*fromstudentwheresdept=
(selectsdeptfromstudentwheresname='刘晨')的异同
比较:
select*fromstudentwheresdept=
(selectsdeptfromstudentwheresname='刘晨')andsname<>'刘晨V
比较:
selectS1.*fromstude
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 实验 指导书