数据库上机实验报告sql server.docx

上传人:b****0 文档编号:9955159 上传时间:2023-05-22 格式:DOCX 页数:18 大小:22.17KB
下载 相关 举报
数据库上机实验报告sql server.docx_第1页
第1页 / 共18页
数据库上机实验报告sql server.docx_第2页
第2页 / 共18页
数据库上机实验报告sql server.docx_第3页
第3页 / 共18页
数据库上机实验报告sql server.docx_第4页
第4页 / 共18页
数据库上机实验报告sql server.docx_第5页
第5页 / 共18页
数据库上机实验报告sql server.docx_第6页
第6页 / 共18页
数据库上机实验报告sql server.docx_第7页
第7页 / 共18页
数据库上机实验报告sql server.docx_第8页
第8页 / 共18页
数据库上机实验报告sql server.docx_第9页
第9页 / 共18页
数据库上机实验报告sql server.docx_第10页
第10页 / 共18页
数据库上机实验报告sql server.docx_第11页
第11页 / 共18页
数据库上机实验报告sql server.docx_第12页
第12页 / 共18页
数据库上机实验报告sql server.docx_第13页
第13页 / 共18页
数据库上机实验报告sql server.docx_第14页
第14页 / 共18页
数据库上机实验报告sql server.docx_第15页
第15页 / 共18页
数据库上机实验报告sql server.docx_第16页
第16页 / 共18页
数据库上机实验报告sql server.docx_第17页
第17页 / 共18页
数据库上机实验报告sql server.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库上机实验报告sql server.docx

《数据库上机实验报告sql server.docx》由会员分享,可在线阅读,更多相关《数据库上机实验报告sql server.docx(18页珍藏版)》请在冰点文库上搜索。

数据库上机实验报告sql server.docx

数据库上机实验报告sqlserver

课程代码:

1010000450

数据库

Database

学分:

3总学时:

48实验学时:

16

面向专业:

信息与计算科学,数学与应用数学

一、实验教学目标

数据库是计算机科学与技术专业的专业必修课程。

课程内容主要包括:

数据模型、关系代数、关系数据库标准语言SQL、关系系统、关系数据理论、数据库设计方法。

学习本课程的过程中,只有通过上机实验,才能使学生真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和方法,掌握主流数据库管理系统SQLServer2000的应用技术及数据库应用系统的设计、开发能力。

二、实验教学基本要求

认真阅读教材中与实验相关的章节内容,提前做好实验准备,做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,写出实验报告。

三、实验教材或实验指导书

《数据库系统概论》,萨师煊王珊主编,高等教育出版社

四、考核方式与评分办法

实验成绩评定分两部分:

上机实验操作占50%,实验报告占50%。

五、实验项目设置

序号

实验项目名称

实验学时

实验类型

实验要求

主要设备(用品)

台(套)数

1

安装SQLServer2000

2

综合

必开

86

2

启动SQLServer2000和建库、表

2

综合

必开

86

3

SQLServer2000查询分析器

2

综合

必开

86

4

SQL语言的DDL

2

综合

必开

86

5

SQL语言的DML

2

综合

必开

86

6

DML的数据查询

2

综合

必开

86

7

SQL语言的DCL

2

综合

必开

86

8

SQL语言综合练习

2

综合

必开

86

六、实验内容与实验方式

实验一安装SQLServer2000

(一)实验内容

1.安装Microsoft的数据库服务软件SQLServer2000。

以sqlserver2000企业版为例安装教程

第一步:

打开安装文件中的“AUTORUN”文件,安装程序会自动运行出现版本选择界面,我们以选择企业版为例。

第二步:

在接下来的界面中选择“安装数据库服务器”选项。

第三步:

这时出现安装向导,出现“计算机名”窗口。

“本地计算机”是默认选项,其名称就显示在上面,我们按其默认点“下一步”。

第四步:

接下来,在“安装选择”对话窗口中,同样按其默认项“创建新的SQLServer实例,或安装客户端工具”点下一步。

第五步:

在"用户信息"窗口,输入用户信息,并接受软件许可证协议。

第六步:

在"安装定义"窗口,选择"服务器和客户端工具"选项进行安装。

我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习SQLServer很有用处。

如果你已经在其它机器上安装了SQLServer,则可以只安装客户端工具,用于对其它机器上SQLServer的存取。

第七步:

在"实例名"窗口,选择"默认"的实例名称。

这时本SQLServer的名称将和Windows2000服务器的名称相同。

第八步:

在"安装类型"窗口,选择"典型"安装选项,并指定"目的文件夹"。

第九步:

在"服务账号"窗口,请选择"对每个服务使用统一账户..."的选项。

在"服务设置"处,选择"使用本地系统账户"。

如果需要"使用域用户账户"的话,请将该用户添加至WindowsServer的本机管理员组中。

第十步:

在"身份验证模式"窗口,请选择"混合模式..."选项,并设置管理员"sa"账号的密码。

如果需要更高的安全性,则可以选择"Windows身份验证模式",这时就只有WindowsServer的本地用户和域用户才能使用SQLServer了。

第十一步:

在"选择许可模式"窗口,根据您购买的类型和数量输入(0表示没有数量限制)。

"每客户"表示同一时间最多允许的连接数,"处理器许可证"表示该服务器最多能安装多少个CPU。

笔者这里选择了"每客户"并输入了100作为示例。

第十二步:

约10多分钟的安装时间,然后打开开始菜单下的sql子目录下的企业管理器。

2.熟悉软件的使用以及各个组成部分。

第一:

打开企业管理器,可以对本地的数据进行管理,也可以登录服务器端,即可以远程操作自己的数据库;

第二:

登录查询分析器,可以通过sql管理语句,对数据库进行管理。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验二启动SQLServer2000和建库、表

(一)实验内容

1.启动数据库服务软件SQLServer2000。

第一步:

打开企业管理器,可以登录服务器端,即可以远程操作自己的数据库,登录步骤如下;

第二步:

左侧方框中控制台根目录的子目录的SQLserver组上,右击,并新建SQLserver注册…;

第三步:

在“服务器”一栏里输入想要登录的服务器ip地址,选择使用SQLserver身份验证,写入登录名和密码,就可以登录了。

第四步:

登录查询分析器,可以通过sql管理语句,对数据库进行管理。

2.在SQLServer2000中建立数据库。

第一步:

通过企业管理器进入服务器端以后,可以在数据库文件里“新建数据库”。

第二步:

输入数据库名称。

第三步:

通过相关需求对数据库的相关属性进行设置,然后完成。

3.在数据库上建立表。

第一步:

登录企业管理器

第二步:

进入自己的database,并打开“表”选项;

第三步:

在表选项右侧空白处,点击右键,选择“新建表…”;

第四步:

在弹出的窗口中,分别填写列名,数据类型,长度和是否允许空值,然后关闭窗口。

第五步:

关闭窗口会弹出是否保存表,选择是,接下来弹出的窗口中填写表名即可。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验三SQLServer2000查询分析器

(一)实验内容

1.启动数据库服务软件SQLServer2000的查询分析器。

第一步:

在登录企业管理器的前提下,登录查询分析器。

第二步:

登录查询分析器与登录企业管理器类似,需要输入ip地址或者如果是本地数据库,直接用windows身份验证即可。

2.在查询分析器中建立表。

第一步:

在查询分析器命令栏里输入以下语句:

定义一个学生-课程模式S-T

CREATESCHEMA“S-T”AUTHORIZATIONWANG

/*为用户WANG定义了一个模式S-T*/

然后点击“分析查询”和“执行查询”。

第二步:

在查询分析器命令栏里输入以下语句:

建立“学生”表Student,学号是主码,姓名取值唯一

CREATETABLEStudent

(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*/

SnameCHAR(20)UNIQUE,/*Sname取唯一值*/

SsexCHAR

(2),

SageSMALLINT,

SdeptCHAR(20)

);

然后点击“分析查询”和“执行查询”。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验四SQL语言的DDL

(一)实验内容

1.用如下语句对表进行操作:

CreateTable建表;DropTable删除表;AlterTable更改表。

CREATETABLEStudent

(SnoCHAR(4)PRIMARYKEY)

DROPTABLEStudent/*当Student表与其他数据有级联关系或者其他关系时,不能删除。

*/

ALTERTABLEStudentADDS_entranceDATENULL/*向Student表增加“入学时间”列,其数据类型为日期型*/

ALTERTABLEStudentDROPCOLUMNSno/*删除Student表中的Sno这一列,含有以下关系的列不能被删除:

∙被复制列。

∙用在索引中的列。

∙用在CHECK、FOREIGNKEY、UNIQUE或PRIMARYKEY约束中的列。

∙有相关联的默认值(由DEFAULT关键字定义)的列,或绑定到默认对象的列。

∙绑定到规则的列。

*/

2.用如下语句对视图进行操作:

CreateView建视图;DropView删除视图。

/*创建一个IS_Student视图,视图中返回来自于表Student中Sdept=’IS’的所有学生的Sno,Sname,Sage列*/

CREATEVIEWIS_Student

AS

SELECTSno,Sname,Sage

FROMStudent

WHERESdept='IS'

/*删除IS_Student视图*/

dropVIEWIS_Student

3.如下语句对索引进行操作:

CreateIndex建立索引;DropIndex删除索引。

/*创建一个Stusname索引,在Student表中以Sname列升序排列*/

CREATECLUSTEREDINDEXStusname

ONStudent(Sname)

/*删除Student表中的Stusname索引*/

DROPINDEXStudent.Stusname

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验五SQL语言的DML

(一)实验内容

1.启动数据库服务软件SQLServer2000的查询分析器,用INSERT语句对表进行插入操作。

/*将一个新学生元组(学号:

200215128;姓名:

陈冬;性别:

男;所在系:

IS;年龄:

18岁)插入到Student表中*/

INSERT

INTOStudent(Sno,Sname,Ssex,Sdept,Sage)

VALUES('200215128','陈冬','男','IS',18)

/*学生张成民的信息插入到Student表中*/

INSERT

INTOStudent

VALUES('200215126','张成民',18,'CS','男')

/*对表Student中每一个系,求学生的平均年龄,并把结果存入表Dept_age表中。

*/

第一步:

CREATETABLEDept_age

(SdeptCHAR(15),/*系名*/

Avg_ageSMALLINT)/*学生平均年龄*/

第二步:

INSERT

INTODept_age(Sdept,Avg_age)

SELECTSdept,AVG(Sage)

FROMStudent

GROUPBYSdept

2.用UPDATE语句对表中已有的记录进行修改。

/*将学生200215121的年龄改为22岁*/

UPDATEStudent

SETSage=22

WHERESno='200215121'

/*将所有学生的年龄增加1岁*/

UPDATEStudent

SETSage=Sage+1

/*将CS系全体学生的成绩置零*/

UPDATESC

SETGrade=0

WHERE'CS'=(SELECTSdept

FROMStudent

WHEREStudent.Sno=SC.Sno)

3.用DELETE语句对表中已有的记录进行删除。

/*删除学号为200215128的学生记录*/

DELETE

FROMStudent

WHERESno='200215128'

/*删除所有的学生选课记录*/

DELETE

FROMSC

/*删除计算机科学系所有学生的选课记录*/

DELETE

FROMSC

WHERE'CS'=(SELECTSdept

FROMStudent

WHEREStudent.Sno=SC.Sno)

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验六DML的数据查询

(一)实验内容

1.启动数据库服务软件SQLServer2000的查询分析器,用SELECT语句对表进行简单查询操作。

/*查询全体学生的学号与姓名。

*/

SELECTSno,Sname

FROMStudent;

/*查询全体学生的详细记录。

*/

SELECT*

FROMStudent;

/*指定DISTINCT关键词,去掉表中重复的行*/

SELECTDISTINCTSno

FROMSC

/*查询考试成绩有不及格的学生的学号*/

SELECTDISTINCTSno

FROMSC

WHEREGrade<60

/*查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄*/

SELECTSname,Sdept,Sage

FROMStudent

WHERESageBETWEEN20AND23

/*查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

*/

SELECTSname,Ssex

FROMStudent

WHERESdeptIN('IS','MA','CS')

/*查询学号为200215121的学生的详细情况。

*/

SELECT*

FROMStudent

WHERESnoLIKE'200215121'

/*查询选修1号课程的学生最高分数。

*/

SELECTMAX(Grade)

FROMSC

WHERECno=‘1‘

2.用SELECT语句对表进行连接查询操作,连接查询涉及被连接和连接两个表。

等值连接:

连接运算符为=

/*查询每个学生及其选修课程的情况*/

SELECTStudent.*,SC.*

FROMStudent,SC

WHEREStudent.Sno=SC.Sno

自然连接:

/*查询每个学生及其选修课程的情况*/

SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

FROMStudent,SC

WHEREStudent.Sno=SC.Sno

自身连接:

查询每一门课的间接先修课(即先修课的先修课)

SELECTFIRST.Cno,SECOND.Cpno

FROMCourseFIRST,CourseSECOND

WHEREFIRST.Cpno=SECOND.Cno

外连接:

/*查询每个学生及其选修课程的情况(包括Student表中不满足条件的元组)*/

SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

FROMStudentLEFTOUTJOINSCON(Student.Sno=SC.Sno);

复合条件连接:

WHERE子句中含多个连接条件:

/*查询每个学生的学号、姓名、选修的课程名及成绩*/

SELECTStudent.Sno,Sname,Cname,Grade

FROMStudent,SC,Course/*多表连接*/

WHEREStudent.Sno=SC.Sno

andSC.Cno=Course.Cno

3.用SELECT语句对表进行嵌套查询操作。

带有IN谓词的子查询:

/*查询与“刘晨”在同一个系学习的学生。

此查询要求可以分步来完成*/

SELECTSno,Sname,Sdept

FROMStudent

WHERESdeptIN

(SELECTSdept

FROMStudent

WHERESname='刘晨')

带有比较运算符的子查询

/*假设一个学生只可能在一个系学习,并且必须属于一个系,则在上例中可以用=代替IN*/

SELECTSno,Sname,Sdept

FROMStudent

WHERESdept=(SELECTSdept

FROMStudent

WHERESname='刘晨')

带有ANY(SOME)或ALL谓词的子查询

/*查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄*/

SELECTSname,Sage

FROMStudent

WHERESage

FROMStudent

WHERESdept='CS')

ANDSdept<>'CS'/*父查询块中的条件*/

带有EXISTS谓词的子查询

查询没有选修1号课程的学生姓名。

SELECTSname

FROMStudent

WHERENOTEXISTS

(SELECT*

FROMSC

WHERESno=Student.SnoANDCno='1');

4.用SELECT语句对表进行组合查询操作。

/*查询计算机科学系的学生及年龄不大于19岁的学生。

*/

SELECT*

FROMStudent

WHERESdept='CS'

UNION/*UNION:

将多个查询结果合并起来时,系统自动去掉重复元组。

*/

SELECT*

FROMStudent

WHERESage<=19;

/*查询计算机科学系的学生与年龄不大于19岁的学生的交集*/

SELECT*

FROMStudent

WHERESdept='CS'

INTERSECT

SELECT*

FROMStudent

WHERESage<=19

/*sqlserver2000中没有INTERSECT的这样的用法*/

/*查询计算机科学系的学生与年龄不大于19岁的学生的差集。

*/

SELECT*

FROMStudent

WHERESdept='CS'

EXCEPT

SELECT*

FROMStudent

WHERESage<=19

/*sqlserver2000中没有EXCEPT的这样的用法*/.

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验七SQL语言的DCL

(一)实验内容

1.启动数据库服务软件SQLServer2000的查询分析器,用GRANT语句对数据库存取权限进行授权操作。

/*把查询Student表权限授给用户U1*/

GRANTSELECT

ONStudent

TOU1

/*把对Student表和Course表的全部权限授予用户U2和U3,但是在sqlserver2000中不允许同时对多个表的授权语句*/

GRANTALLPRIVILEGES

ONStudent,Course

TOU2,U3;

/*把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户*/

GRANTINSERT

ONTABLESC

TOU5

WITHGRANTOPTION

2.用REVOKE语句将DBA(数据库管理员)、DBO(建库用户)授与其它用户对数据库的操作权收回。

/*把用户U4修改学生学号的权限收回*/

REVOKEUPDATE(Sno)

ONStudent

FROMU4;

/*收回所有用户对表SC的查询权限*/

REVOKESELECT

ONSC

FROMPUBLIC;

/*把用户U5对SC表的INSERT权限收回*/

REVOKEINSERT

ONTABLESC

FROMU5CASCADE

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库SQLServer2000,最后老师检查操作结果。

每次86组,每组1人。

实验八SQL语言综合练习

(一)实验内容

1.启动数据库服务软件SQLServer2000的查询分析器,用CreateTable建表;

 

/*建立“学生”表Student,学号是主码,姓名取值唯一。

*/

CREATETABLEStudent

(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*/

SnameCHAR(20)UNIQUE,/*Sname取唯一值*/

SsexCHAR

(2),

SageSMALLINT,

SdeptCHAR(20)

);

2.用InsertInto向表中插入记录;

/*将一个新学生元组(学号:

200215128;姓名:

陈冬;性别:

男;所在系:

IS;年龄:

18岁)插入到Student表中*/

INSERT

INTOStudent(Sno,Sname,Ssex,Sage,Sdept)

VALUES('200215128','陈冬','男',18,'IS')

3.用CreateIndex在表上建立索引;

/*创建一个Stusname索引,在Student表中以Sname列升序排列*/

CREATECLUSTEREDINDEXStusname

ONStudent(Sname)

/*删除Student表中的Stusname索引*/

4.用CreateView建立视图;

/*创建一个IS_Student视图,视图中返回来自于表Student中Sdept=’IS’的所有学生的Sno,Sname,Sage列*/

CREATEVIEWIS_Student

AS

SELECTSno,Sname,Sage

FROMStudent

WHERESdept='IS'

5.用SELECT语句进行各种查询操作。

/*查询全体学生的学号与姓名。

*/

SELECTSno,Sname

FROMStudent;

/*查询全体学生的详细记录。

*/

SELECT*

FROMStudent;

/*查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄*/

SELECTSname,Sdept,Sage

FROMStudent

WHERESageBETWEEN20AND23

/*查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

*/

SELECTSname,Ssex

FROMStudent

WHERESdeptIN('IS','MA','CS')

*查询学号为200215121的学生的详细情况。

*/

SELECT

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2