数据库上机试验指导_第1页
数据库上机试验指导_第2页
数据库上机试验指导_第3页
数据库上机试验指导_第4页
数据库上机试验指导_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——数据库上机试验指导数据库原理试验指导书

试验1数据库模式设计及建立

一、试验目的:

(1)把握数据库模式设计,依据实际要求设计表结构,建立表的关系;比较SQL命

令方式和可视化环境管理器方式设计的异同点。

(2)把握SQLServer查询分析器的使用方法,加深对SQL和SQL语言的查询语句

的理解。熟练把握简单表的数据查询、数据排序和数据连接查询的操作方法。

二、试验内容:

1、分别用sql查询分析器和企业管理器创立表,并设定相应的约束。要求:在学生管理数据库XSGL中创立如下三个表。创立名为student(学生信息)的表,表中的各列要求如下:字段名称SnoSnameSexSageSdept字段类型CharCharCharIntChar大小108220说明主键默认值为男,只能输入男和女创立名为course(课程信息)的表,表中的各列要求如下:字段名称CnoCnameCcredit字段类型CharCharReal大小1030说明主键唯一性创立名为score(学生成绩)的表,表中的各列要求如下:字段名称SnoCnoGrade

2、创立score–>student表,以及score–>course表的外部键。

字段类型CharCharReal大小1010取值范围数据来自学生信息表数据来自课程信息表0--100说明主键主键3、增加、修改和删除字段,要求:

1)给student表增加一个memo(备注)字段,类型为varchar(200)。2)将memo字段的类型修改为varchar(300)。

3)删除memo字段。

4、简单查询操作。该试验包括投影、选择条件表达,数据排序,使用临时表等。

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

1)求数学系学生的学号和姓名2)求选修了课程的学生学号

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

假使成绩一致按学号的升序排列。usestudent;

selectStudent.Sno,GradefromSC,Student

whereCno='3'andSC.Sno=Student.SnoorderbyGradeasc,student.Snodesc

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

输出。

usestudent;

selectdistinctStudent.Sno,Grade*0.8fromSC,Student

whereCno='3'andstudent.Sno=SC.Snoandgrade>80andgrade80

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

usestudent;

selecta.Cnoas'课程号',a.Cnameas'课程',b.Cnameas'先行课'fromCoursea,Coursebwherea.Cpno=b.Cno

注意:假使要是修改为NULL可按Ctrl+0

三、试验方法

将查询需求用SQL语言表示;在SQLServer查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;假使结果不正确,要进行修改,直到正确为止。

试验2数据库的繁杂查询试验

一.试验目的

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

二.试验内容

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

具体完成以下例题。将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。1)求选修了数据库的学号和姓名

usestudent;

selectSname,CnamefromSC,Student,Course

whereSC.Cno=Course.CnoandStudent.Sno=SC.SnoandCname='信息系统'

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

selectSname,Student.Sno,GradefromSC,Student

whereStudent.Sno=SC.Sno

andCno='3'andGrade>(selectGradefromSC,Student

whereStudent.Sno=SC.sno

andSnamelike'刘晨'andCno='3')

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

的学生)

usestudent;

selectdistinctSname,Sno,Sdept,SagefromStudent

whereSdept'CS'andSageany(selectSagefromStudentwhereSdept='CS')andSdept'CS'

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

selectdistinctStudent.SnofromStudent,SCwhereexists(select*fromSC

whereStudent.Sno=SC.SnoandCno='3')

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

selectdistinctStudent.SnofromStudent,SCwherenotexists(select*fromSC

whereStudent.Sno=SC.SnoandCno='3')

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

groupbySnohavingcount(*)>=3

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

selectSname,SnofromStudentwherenotexists(select*fromSCSCYwhereSCY.Sno='95002'andnotexists(

select*

fromSCSCZ

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

2、进行分组查询,包括分组条件表达、选择组条件表达的方法;进行函数查询,包括统计函数和分组统计函数的使用方法;进行集合查询,包括并操作UNION、交操作INTERSECT和差操作MINUS的使用方法。

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

selectcount(distinctSno)fromStudent

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

selectcount(distinctSno)fromSC

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

selectCno,count(*)fromSC

groupbyCno

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

selectCno,count(*)fromSC

groupbyCnohavingcount(*)>2

90withcheckoption

5)定义一个反映学生出生年份的视图createviewBIR_stu(Sno,Sname,Sbir)as

selectSno,Sname,2023-Sagefromstudent

三、试验步骤

将查询需求用SQL语言表示;在SQL查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;假使结果不正确,要进行修改,直到正确为止。

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

一、试验目的:

本试验要求学生应了解存储过程和事务的作用,基本把握存储过程和事务的创立和使用方法,要求学生了解触发器的知识与作用,基本把握触发器的创立方法。要求学生在已建好的学生管理数据库中创立3个分别用于插入、删除和更新的触发器。二、试验内容:1、存储过程例题

(1)创立一个名为“proc_1〞的存储过程,用于查看学生表的所有信息。然后调用该存储过程。createprocedureproc_1asbegin

select*fromstudentend

execproc_1

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

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

insertintostudent

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

execproc_295008,李冰,男,19,CS

(3)创立一个名为“proc_3〞的存储过程,用于删除学生表中指定学号的记录,具体学号由调用时决定。然后调用该存储过程。createprocedureproc_3(@numvarchar)asbegindelete

fromstudent

whereSno=@numend

execproc_395008

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

createprocedureproc_5(@gradevarchar)asbegin

selectsnamefromstudent,SC

whereSC.Sno=student.SnoandGrade>@gradeend

execproc_6502、触发器例题

(1)创立一个名为“trig_1〞的触发器,当向学生表添加记录时,该触发器自

动显示学生表的所有信息。

createtriggertrig_1onstudentforinsertasbegin

select*fromstudentend

insertintostudent

values(95008,'李冰','男','18','CS')

(2)创立一个名为“trig_2〞的触发器,当试图向学生表添加、修改或删除记

录时,该触发器自动显示如下信息:“对不起,你无权进行更新操作!〞。createtriggertrig_2onstudentforinsert,update,deleteas

begin

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

(3)创立一个名为“trig_3〞的触发器,当向学生表删除记录时,该触发器自

动删除成绩表中与之相关的所有记录。createtriggertrig_3onstudentfordeleteasbegindeletefromSC

whereSnoin(selectSnofromdeleted)end

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

试验五安全管理

一、试验目的

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

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

操作步骤:展开SQLServer服务器,右击安全性节点下的“登录〞,选择“新建登录“,在弹出的“登录属性〞对话框中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论