数据库原理实验指导书.docx

上传人:b****5 文档编号:11777914 上传时间:2023-04-01 格式:DOCX 页数:29 大小:727.04KB
下载 相关 举报
数据库原理实验指导书.docx_第1页
第1页 / 共29页
数据库原理实验指导书.docx_第2页
第2页 / 共29页
数据库原理实验指导书.docx_第3页
第3页 / 共29页
数据库原理实验指导书.docx_第4页
第4页 / 共29页
数据库原理实验指导书.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数据库原理实验指导书.docx

《数据库原理实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库原理实验指导书.docx(29页珍藏版)》请在冰豆网上搜索。

数据库原理实验指导书.docx

数据库原理实验指导书

实验课程教学周历

学生人数:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1