数据库上机实验指导Word格式.docx

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

数据库上机实验指导Word格式.docx

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

数据库上机实验指导Word格式.docx

Ccredit

Real

创建名为score(学生成绩)的表,表中的各列要求如下:

取值范围

数据来自学生信息表

数据来自课程信息表

Grade

0--100

2、创建score–>

student表,以及score–>

course表的外部键。

3、增加、修改和删除字段,要求:

1)给student表增加一个memo(备注)字段,类型为varchar(200)。

2)将memo字段的类型修改为varchar(300)。

3)删除memo字段。

4、简单查询操作。

该实验包括投影、选择条件表达,数据排序,使用临时表等。

具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。

1)求数学系学生的学号和姓名

2)求选修了课程的学生学号

3)求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。

usestudent;

selectStudent.Sno,Grade

fromSC,Student

whereCno='

3'

andSC.Sno=Student.Sno

orderbyGradeasc,student.Snodesc

4)求选修课程号为‘3’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。

selectdistinctStudent.Sno,Grade*0.8

andstudent.Sno=SC.Snoand

grade>

80andgrade<

90

5)求数学系或计算机系姓张的学生的信息。

selectSno,Sname,Sage,Sdept

fromStudent

whereSnamelike'

张%'

and(Sdept='

MA'

orSdept='

CS'

6)求缺少了成绩的学生的学号和课程号

selectSno

fromSC

whereGradeisNULL

5、连接查询操作。

该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

1)查询每个学生的情况以及他所选修的课程

selectStudent.Sno,Ssex,Sname,Sage,Grade

fromStudentleftJOINSCON(Student.Sno=SC.Sno)

2)求学生的学号、姓名、选修的课程及成绩

selectStudent.Snoas'

学号'

Snameas'

姓名'

Cnameas'

选修的课程'

Gradeas'

得分'

fromSC,Student,Course

whereStudent.Sno=SC.SnoandSC.Cno=Course.Cno

3)求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩

andSC.Cno=3andGrade>

80

4)查询每一门课程的间接先行课(即先行课的先行课)

selecta.Cnoas'

课程号'

a.Cnameas'

课程'

b.Cnameas'

先行课'

fromCoursea,Courseb

wherea.Cpno=b.Cno

注意:

如果要是修改为NULL可按Ctrl+0

三、实验方法

将查询需求用SQL语言表示;

在SQLServer查询分析器的输入区中输入SQL查询语句;

设置查询分析器的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;

发布执行命令,并在结果区中查看查询结果;

如果结果不正确,要进行修改,直到正确为止。

实验2数据库的复杂查询实验

一.实验目的

本实验的目的是使学生进一步掌握SQLServer查询分析器的使用方法,加深SQL语言的嵌套查询语句的理解,熟练掌握数据查询中的分组、统计、计算和集合的操作方法。

二.实验内容

1、在SQLServer查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

具体完成以下例题。

将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。

1)求选修了数据库的学号和姓名

selectSname,Cname

whereSC.Cno=Course.CnoandStudent.Sno=SC.Sno

andCname='

信息系统'

2)求3课程的成绩高于刘晨的学生学号和成绩

selectSname,Student.Sno,Grade

whereStudent.Sno=SC.Sno

andCno='

andGrade>

selectGrade

whereStudent.Sno=SC.sno

andSnamelike'

刘晨'

andCno='

3)求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)

selectdistinctSname,Sno,Sdept,Sage

whereSdept<

>

'

andSage<

selectmax(Sage)

whereSdept='

4)求其他系中比计算机系学生年龄都小的学生

selectSname,Sage

whereSage>

any(

selectSage

)andSdept<

5)求选修了C2课程的学生姓名

selectdistinctStudent.Sno

fromStudent,SC

where

exists(

select*

whereStudent.Sno=SC.SnoandCno='

6)求没有选修3课程的学生姓名

wherenot

7)查询选修了全部课程的学生姓名

groupbySnohavingcount(*)>

=3

8)求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名

selectSname,Sno

wherenotexists(

select*

fromSCSCY

whereSCY.Sno='

95002'

and

notexists(

fromSCSCZ

whereSCZ.Sno=Student.SnoandSCZ.Cno=SCY.Cno

2、进行分组查询,包括分组条件表达、选择组条件表达的方法;

进行函数查询,包括统计函数和分组统计函数的使用方法;

进行集合查询,包括并操作UNION、交操作INTERSECT和差操作MINUS的使用方法。

具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。

1)求学生的总人数

selectcount(distinctSno)

2)求选修了课程的学生人数

3)求课程和选修了该课程的学生人数

selectCno,count(*)

groupbyCno

4)求选修超过2门课的学生学号

groupbyCno

havingcount(*)>

5)查询计算机科学系的学生及年龄不大于20岁的学生

selectSno,Sname

6)查询计算机科学系的学生与年龄不大于20岁的学生的交集

7)查询计算机科学系的学生与年龄不大于20岁的学生的差集

andSage>

8)查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的交集

1'

andSnoin(selectSno

fromSC

whereCno='

2'

9)查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的差集

selectstudent.Sno,Sname

wherestudent.sno=sc.snoandCno='

andsc.Snonotin(selectSno

三.实验步骤

将查询需求用SQL语言表示:

在SQLServer查询分析器的输入区中输入SQL查询语句:

实验3数据库的更新和视图定义及维护实验

一、实验目的

本实验的目的是要求学生熟练掌握使用SQL和通过SQLServer企业管理器向数据库输入数据、修改数据和删除数据的操作,同时使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。

二、实验内容

1、具体完成以下例题。

将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。

1)将一新学生记录(学号:

95050;

姓名:

陈冬;

性别:

男;

年龄:

18;

所在系:

计算机科学系)插入学生表中。

insert

intostudent(sno,sname,ssex,sdept,sage)

values('

95007'

'

陈东'

男'

is'

18)

2)插入一条选课记录(‘95020’,’C1’)。

intoSC

NULL)

3)对每一个系,求学生的平均年龄,并把结果存入数据库。

对于这道题,首先要在数据库中建立一个有两个属性列的新表,其中一列存放系名,另一列存放相应系的学生平均年龄。

CREATETABLEDeptage(所在系CHAR(20),平均年龄SMALLINT);

然后对数据库的学生表按所在系分组求平均年龄,再把所在系和平均年龄存入新表中。

createtableav_age(sdeptchar(15),

ageint);

insertintoav_age(sdept,age)

selectSdept,avg(Sage)

fromstudent

groupbySdept

3)将学生95001的年龄改为22岁。

updatestudent

setSage=22

whereSno=95001

4)将所有学生的年龄增加一岁。

setSage=Sage+1

5)将计算机科学系全体学生的成绩置零。

updateSC

setGrade=0

where'

=(selectSdept

wherestudent.Sno=SC.Sno)

6)删除学号为95006的学生记录

deletefromstudent

whereSno='

95006'

7)删除所有的学生选课记录

deletefromSC

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

usestudent

wherestudent.Sno=SC.Sno)

2、具体完成以下例题。

1)建立信息系学生的视图

createviewCS_stu

as

selectSname,Sdept

2)建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。

createviewIS_stu

as

IS'

withcheckoption

3)建立信息系选修了’C1’号课程的学生视图

createviewIS_student

selectStudent.Sno,Sname,Sdept

fromstudent,SC

andstudent.Sno=SC.Sno

4)建立信息系选修了’C1’号课程且成绩在90分以上的学生视图

selectStudent.Sno,Sname,Sdept,Grade

andstudent.Sno=SC.SnoandGrade>

5)定义一个反映学生出生年份的视图

createviewBIR_stu(Sno,Sname,Sbir)

selectSno,Sname,2011-Sage

三、实验步骤

在SQL查询分析器的输入区中输入SQL查询语句;

实验四存储过程和触发器的使用

本实验要求学生应了解存储过程和事务的作用,基本掌握存储过程和事务的创建和使用方法,要求学生了解触发器的知识与作用,基本掌握触发器的创建方法。

要求学生在已建好的学生管理数据库中创建3个分别用于插入、删除和更新的触发器。

1、存储过程例题

(1)创建一个名为“proc_1”的存储过程,用于查看学生表的所有信息。

然后调用该存储过程。

createprocedureproc_1

begin

select*fromstudent

end

 

execproc_1

(2)创建一个名为“proc_2”的存储过程,用于向学生表的所有字段添加一条记录,记录内容由调用时决定。

createprocedureproc_2(@numint,@namevarchar(20),@sexvarchar(20),@ageint,@deptvarchar(20))

insertintostudent

values(@num,@name,@sex,@age,@dept)

execproc_295008,李冰,男,19,CS

(3)创建一个名为“proc_3”的存储过程,用于删除学生表中指定学号的记录,具体学号由调用时决定。

createprocedureproc_3(@numvarchar)

delete

whereSno=@num

execproc_395008

(4)修改存储过程“proc_4”,用于查询不小于指定成绩的学生的基本信息,具体成绩由调用时决定。

\

createprocedureproc_5(@gradevarchar)

selectsname

whereSC.Sno=student.SnoandGrade>

@grade

execproc_650

2、触发器例题

(1)创建一个名为“trig_1”的触发器,当向学生表添加记录时,该触发器自动显示学生表的所有信息。

createtriggertrig_1onstudent

forinsert

begin

values(95008,'

李冰'

18'

(2)创建一个名为“trig_2”的触发器,当试图向学生表添加、修改或删除记录时,该触发器自动显示如下信息:

“对不起,你无权进行更新操作!

”。

createtriggertrig_2onstudent

forinsert,update,delete

print'

对不起,你无权进行更新操作!

rollback

(3)创建一个名为“trig_3”的触发器,当向学生表删除记录时,该触发器自动删除成绩表中与之相关的所有记录。

createtriggertrig_3onstudent

fordelete

delete

whereSnoin(selectSno

fromdeleted)

(4)创建一个名为“trig_4”的触发器,当向成绩表添加记录时,该触发器自动显示与该记录相关的学生的学号、姓名和班级。

实验五安全管理

本实验要求学生掌握SQLServer2000三级安全体系及验证模式的设置,掌握SQLServer2000服务器登录帐号及数据库用户帐号的管理,掌握创建用户自定义数据库角色并为其授权,掌握为数据库用户授权的方法

1、创建SQLServer服务器登录账号

操作步骤:

展开SQLServer服务器,右击安全性节点下的“登录”,选择“新建登录“,在弹出的“登录属性”对话框中,选择一个windows用户,单击“确定”按钮,就可以创建一个登录账号。

2、创建数据库用户:

为“学生选课”数据库添加用户:

zhang。

选择“学生选课”数据库,右击“用户”节点,选择“新建数据库用户”,在弹出的“数据库用户属性—新建用户”对话框中,在“登录名”右边的下拉列表框中选择一个登录名,可以在“用户名”后的文本框输入数据库用户名。

数据库用户名可以和选中的登录名相同,也可以不同。

3、创建数据库角色:

为“学生选课”数据库创建一用户自定义数据库角色s_c_reader,该角色的权限是可以查询学生表及选课成绩表的信息。

展开“学生选课”数据库,右击“角色”节点,选择“新建数据库角色”,弹出的“数据库用户角色—新建角色”对话框,在“名称”下面的文本框输入数据库角色的名称,单击“确定”按钮即可。

可以将数据库用户添加到数据库角色中。

为数据库角色授权:

选中一个具体的数据库角色,单击鼠标右键,选择“属性”,在弹出的“数据库角色属性”对话框中,单击“权限”按钮,在弹出的对话框中设置数据库角色的权限。

4、数据库对象操作权限的授予和回收:

为数据库用户zhang授予学生表的增、删、改、查权限。

选择“学生选课”数据库中的“表”节点,选择“学生”表,单击鼠标右键,选择“所有任务”中的“管理权限”命令,在弹出的对话框中设置各个数据库用户的操作权限。

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

当前位置:首页 > 自然科学 > 物理

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

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