数据库实验指导书.docx

上传人:b****9 文档编号:25273177 上传时间:2023-06-06 格式:DOCX 页数:31 大小:2.66MB
下载 相关 举报
数据库实验指导书.docx_第1页
第1页 / 共31页
数据库实验指导书.docx_第2页
第2页 / 共31页
数据库实验指导书.docx_第3页
第3页 / 共31页
数据库实验指导书.docx_第4页
第4页 / 共31页
数据库实验指导书.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据库实验指导书.docx

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

数据库实验指导书.docx

数据库实验指导书

 

数据库

实验指导书

 

电气与电子工程学院

 

实验项目

 

实验一认识DBMS及数据库的建立

实验二交互式SQL(数据库查询与更新)

实验三数据控制(安全性部分)

实验四数据控制(完整性部分)

 

实验一认识DBMS及数据库的建立

一、实验目的:

1.掌握使用SQLSERVER企业管理器及SQL语言创建数据库与表。

2.掌握使用SQLSERVER企业管理器及SQL语言修改数据库与表。

3.掌握使用SQLSERVER企业管理器及SQL语言删除数据库与表。

二、实验内容及步骤:

1.通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求:

有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。

数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。

主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。

事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。

2.用企业管理器在jiaoxuedb数据库中建立如下表:

学生表:

jiaoxuedbdent

课程表:

Course

选课表:

SC

3.查看表格:

显示当前数据库中所有对象的信息。

4.利用企业管理器删除表:

在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。

单击“全部删除”按钮,即可去除表。

5.利用企业管理器删除数据库jiaoxuedb。

6.用SQL语言创建数据库jiaoxuedb:

7.用SQL语言创建jiaoxuedb中的表:

实验二交互式SQL(数据库查询与更新)

一、实验目的:

1.掌握SELECT查询语句在单表查询、连接查询、嵌套查询和集合查询中的常规用法。

2.掌握常用聚集函数的用法。

3.掌握LIKE、DISTINCT、ORDERBY、GROUPBY及UNION的用法。

4.掌握带EXISITS的查询语句。

5.掌握用SQL语句实现数据的插入、修改和删除。

二、实验内容及步骤:

基于jiaoxuedb实验,需按实验一中的数据值建立数据库及其中的表。

1.重建实验一中的数据库jiaoxuedb和其中的表,并插入相应数据值。

插入jiaoxuedb库中各表值:

2.重建实验一中的数据库jiaoxuedb和其中的表,并插入相应的数值。

创建数据库jiaoxuedb:

创建jiaoxuedb中的表:

插入jiaoxuedb库中各表值:

3.将数据库jiaoxuedb中信息系全体学生的成绩置0。

4.将数据库jiaoxuedb中电子商务系学生年龄增加1岁。

5.将数据库jiaoxuedb中计算机系所有学生的选课记录删除。

6.查询成绩在80~90之间的记录。

SELECTjiaoxuedbdent.Sno,Sname,Dept,Course.Cno,Score

FROMjiaoxuedbdent,SC,Course

WHEREjiaoxuedbdent.Sno=SC.Sno

ANDSC.ScoreBETWEEN80AND90

ANDSC.Cno=Course.Cno;

7.查询至少有4个同学选修的课程名。

USEjiaoxuedb

SELECTCnoAS课程号,CnameAS课程名

FROMCourse

WHERECno=ANY

(SELECT

CnoAS课程号

FROMSC

GROUPBYCno

HAVINGCOUNT(*)>=4)

GO

8.查询其他系中比“信息系”所有学生年龄都打的学生名单及年龄,并按年龄降序输出。

USEjiaoxuedb

SELECTSnoAS学号,SnameAS姓名,AgeAS年龄,DeptAS专业

FROMjiaoxuedbdent

WHEREAge>ALL

(SELECTAge

FROMjiaoxuedbdent

WHEREDept='信息')

ANDDept<>'信息'

ORDERBYAgeDESC

GO

9.查询与学生张建国同岁的所有学生的学号、姓名和系别。

/*方法一*/

USEjiaoxuedb

SELECTSnoAS学号,SnameAS姓名,AgeAS年龄,DeptAS专业

FROMjiaoxuedbdent

WHEREAge=ANY

(SELECTAge

FROMjiaoxuedbdent

WHERESname='张建国')

ANDSname<>'张建国'

ORDERBYAgeDESC

GO

/*方法二*/

USEjiaoxuedb

SELECTs2.Sno,s2.Sname,s2.Dept

FROMjiaoxuedbdents1,jiaoxuedbdents2

WHEREs1.age=s2.ageANDs1.Sname='张建国'ANDs2.Sname<>'张建国'

10.查询选修了2门以上课程的学生名单。

USEjiaoxuedb

SELECTSnoAS学号,SnameAS姓名,AgeAS年龄,DeptAS专业

FROMjiaoxuedbdent

WHERESno=ANY

(SELECTSno

FROMSC

GROUPBYSno

HAVINGCOUNT(*)>=2)

GO

11.查询至少有一门与“张建国”选课相同的学生的姓名、课程名和系别。

USEjiaoxuedb

SELECTSnoAS学号,SnameAS姓名,AgeAS年龄,DeptAS专业

FROMjiaoxuedbdent

WHERESno=ANY

(SELECTSno

FROMSC

WHERECno=ANY

(SELECTCno

FROMSC

WHERESno=’991103’))

ANDSname<>'张建国'

GO

12.查询成绩比该课程平均成绩高的学生的成绩表。

/*方法一*/

USEjiaoxuedb

SELECT*

FROMScx

WHEREScore>

(SELECTAVG(Score)

FROMSCy

WHEREy.Cno=x.Cno));

GO

/*方法二*/

SELECT*

FROMSCsc1

WHEREScore>

(SELECTAVG(Score)

FROMSCsc2)

ANDsc1.Cno=sc2.Cno;

GO

13.查询选修课号为01001课程且成绩高于课程01002学生的成绩姓名、此两门课程的选修课程名和成绩。

/*方法一*/

USEjiaoxuedb

SELECTSname,Cname,Score

FROMjiaoxuedbdent,SC,Course

WHEREjiaoxuedbdent.Snoin

(SELECTs1.Sno

FROMSCs1,SCs2

WHEREs1.Cno='01001'ANDs2.Cno='01002'ANDs1.Score>s2.ScoreANDs1.Sno=s2.Sno)

ANDSC.Sno=jiaoxuedbdent.Sno

ANDCourse.Cno=SC.Cno

GO

/*方法二*/

USEjiaoxuedb

SELECTSname,Cname,Score

FROMjiaoxuedbdent,SC,Course

WHEREjiaoxuedbdent.Snoin

(SELECTSno

FROMSCx

WHEREScore>=

(SELECTAVG(Score)

FROMSCy

WHEREy.Sno=x.Sno

ANDx.Cno='01001'

ANDy.Cno='01002')

ANDSC.Sno=jiaoxuedbdent.Sno

ANDCourse.Cno=SC.Cno)

GO

14.查询所有未修01001号课程的学生名单。

USEjiaoxuedb

SELECTjiaoxuedbdent.Sno,Sname

FROMjiaoxuedbdent

WHEREjiaoxuedbdent.SnoIN

(SELECTs1.Sno

FROMSCs1

WHERESnoNOTIN

(SELECTs2.Sno

FROMSCs2

WHERECno='01001'))

GO

15.查询每个同学各门课程的平均成绩和最高成绩,按降序排列输出姓名、平均成绩、最高成绩。

USEjiaoxuedb

SELECTSnameAS姓名,AVG(Score)AS平均,MAX(Score)AS最高

FROMjiaoxuedbdent,SC

WHEREjiaoxuedbdent.Sno=SC.Sno

GROUPBYSname

ORDERBYSnameDESC

GO

16.查询所有学生都选修了的课程号和课程名。

USEjiaoxuedb

SELECTCnameAS课程号,CnoAS课程名

FROMCourse

WHERENOTEXISTS

(SELECT*

FROMjiaoxuedbdent

WHERENOTEXISTS

(SELECT*FROMSC

WHEREjiaoxuedbdent.Sno=SC.SnoANDSC.Cno=Course.Cno));

GO

17.查询选修了991102号学生选修了的课程的学生学号和姓名。

usejiaoxuedb

SELECTDISTINCTSno,Sname

FROMjiaoxuedbdents1

WHERENOTEXISTS

(SELECTCno

FROMSCs2

WHERESno='991102'ANDNOTEXISTS

(SELECTCno

FROMSCs3

WHEREs1.Sno=s3.SnoANDs2.Cno=s3.Cno))

ANDs1.Sno!

='991102'

GO

实验三数据控制(安全性部分)

一、实验目的:

1.掌握利用SQL语言及SQLSERVER企业管理器创建索引的操作。

2.掌握利用SQL语言及SQLSERVER企业管理器创建和查看视图的操作。

3.掌握利用SQL语言及SQLSERVER企业管理器修改和删除视图的操作。

二、实验内容及步骤:

基于jiaoxuedb实验,需按实验二中的数据值建立数据库及其中的表。

1.对教师表Teacher中的教师号Tno创建聚族索引,并按降序排列。

2.对学生选课表SC,先按课号Cno升序排列,再按成绩Score降序排列。

Cno升序:

USEjiaoxuedb

CREATECLUSTEREDINDEXIND_SC_CNOONSC(CnoASC)

3.对表jiaoxuedbdent中的学号Sno创建唯一索引,并按升序排列。

USEjiaoxuedb

CREATEUNIQUEINDEXIND_S_SNOONjiaoxuedbdent(SnoASC)

4.通过企业管理器的索引管理功能观察Teacher、jiaoxuedbdent和SC索引的建立情况。

5.用DROPINDEX语句删除以上建立的索引。

6.创建成绩视图SCORE_VIEW,包含学号SNO,姓名SN,课程名CN,成绩SCORE。

7.创建一个计算机系学生名单视图S_VIEW,包含学号SNO,姓名SN,性别SEX。

8.通过上面的视图,修改学号为991102,课号为01001的成绩记录。

9.创建一个视图,计算机系学生的成绩单SCORE_VIEW_CDEPT,包含学号SNO,姓名SN,课程名CN,成绩SCORE。

10.给视图S_VIEW增加一个年龄AGE字段。

11.创建一个教师工资表视图SAL_VIEW,包含字段教师名Tname,性别Sex,职称Prof,工资总和SALSUM,系别Dept。

12.通过视图查询教师“张明”的工资收入。

USEjiaoxuedb

SELECTTname,SALSUM

FROMSAL_VIEW

WHERETname='张朋'

GO

13.通过视图S_VIEW,删除学生王蕾的记录。

USEjiaoxuedb

DELETEFORMS_VIEW

WHERESname='王蕾')

GO

实验四数据控制(完整性部分)

一、实验目的:

掌握关系数据库中的实体、参照及用户自定义完整性约束定义。

二、实验内容及步骤:

基于jiaoxuedb实验,需按实验三中的数据值建立数据库及其中的表。

1.对各表创建实体完整性。

2.创建表之间的参照完整性。

3.用不同的方法创建下面约束。

(1)“性别”字段取值为:

‘男’或‘女’;默认值:

‘男’

(2)“年龄”和“分数”字段取值限定为:

0~100之间。

4.向表中添加数据、更新数据验证约束。

要求

1)使用INSERTINTO命令向表中分别插入若干数据,验证主键约束、唯一性约束、非空约束。

2)使用UPDATE命令更新数据,验证外键约束及以上建立自定义约束。

5.依次删除以上约束。

6.用SQLSERVER企业管理器完成以上完整性约束操作。

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

当前位置:首页 > 党团工作 > 党团建设

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

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