大数据库实验指导书.docx
《大数据库实验指导书.docx》由会员分享,可在线阅读,更多相关《大数据库实验指导书.docx(30页珍藏版)》请在冰豆网上搜索。
![大数据库实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-10/25/ea80f4d9-986c-4894-8934-19ed7a0d9d94/ea80f4d9-986c-4894-8934-19ed7a0d9d941.gif)
大数据库实验指导书
数据库
实验指导书
电气与电子工程学院
实验项目
实验一认识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.o,Score
FROMjiaoxuedbdent,SC,Course
WHEREjiaoxuedbdent.Sno=SC.Sno
ANDSC.ScoreBETWEEN80AND90
ANDSC.o=Course.o;
7.查询至少有4个同学选修的课程名。
USEjiaoxuedb
SELECToAS课程号,ameAS课程名
FROMCourse
WHEREo=ANY
(SELECT
oAS课程号
FROMSC
GROUPBYo
HAVINGCOUNT(*)>=4)
GO
8.查询其他系中比“信息系〞所有学生年龄都打的学生与年龄,并按年龄降序输出。
USEjiaoxuedb
SELECTSnoAS学号,SnameAS某某,AgeAS年龄,DeptAS专业
FROMjiaoxuedbdent
WHEREAge>ALL
(SELECTAge
FROMjiaoxuedbdent
WHEREDept='信息')
ANDDept<>'信息'
ORDERBYAgeDESC
GO
9.查询与学生X建国同岁的所有学生的学号、某某和系别。
/*方法一*/
USEjiaoxuedb
SELECTSnoAS学号,SnameAS某某,AgeAS年龄,DeptAS专业
FROMjiaoxuedbdent
WHEREAge=ANY
(SELECTAge
FROMjiaoxuedbdent
WHERESname='X建国')
ANDSname<>'X建国'
ORDERBYAgeDESC
GO
/*方法二*/
USEjiaoxuedb
FROMjiaoxuedbdents1,jiaoxuedbdents2
WHEREs1.age=s2.ageANDs1.Sname='X建国'ANDs2.Sname<>'X建国'
10.查询选修了2门以上课程的学生。
USEjiaoxuedb
SELECTSnoAS学号,SnameAS某某,AgeAS年龄,DeptAS专业
FROMjiaoxuedbdent
WHERESno=ANY
(SELECTSno
FROMSC
GROUPBYSno
HAVINGCOUNT(*)>=2)
GO
11.查询至少有一门与“X建国〞选课一样的学生的某某、课程名和系别。
USEjiaoxuedb
SELECTSnoAS学号,SnameAS某某,AgeAS年龄,DeptAS专业
FROMjiaoxuedbdent
WHERESno=ANY
(SELECTSno
FROMSC
WHEREo=ANY
(SELECTo
FROMSC
WHERESno=’991103’))
ANDSname<>'X建国'
GO
12.查询成绩比该课程平均成绩高的学生的成绩表。
/*方法一*/
USEjiaoxuedb
SELECT*
FROMScx
WHEREScore>
(SELECTAVG(Score)
FROMSCy
WHEREy.o=x.o));
GO
/*方法二*/
SELECT*
FROMSCsc1
WHEREScore>
(SELECTAVG(Score)
FROMSCsc2)
ANDsc1.o=sc2.o;
GO
13.查询选修课号为01001课程且成绩高于课程01002学生的成绩某某、此两门课程的选修课程名和成绩。
/*方法一*/
USEjiaoxuedb
SELECTSname,ame,Score
FROMjiaoxuedbdent,SC,Course
WHEREjiaoxuedbdent.Snoin
FROMSCs1,SCs2
WHEREs1.o='01001'ANDs2.o='01002'ANDs1.Score>s2.ScoreANDs1.Sno=s2.Sno)
GO
/*方法二*/
USEjiaoxuedb
SELECTSname,ame,Score
FROMjiaoxuedbdent,SC,Course
WHEREjiaoxuedbdent.Snoin
(SELECTSno
FROMSCx
WHEREScore>=
(SELECTAVG(Score)
FROMSCy
ANDx.o='01001'
ANDy.o='01002')
ANDCourse.o=SC.o)
GO
14.查询所有未修01001号课程的学生。
USEjiaoxuedb
SELECTjiaoxuedbdent.Sno,Sname
FROMjiaoxuedbdent
WHEREjiaoxuedbdent.SnoIN
FROMSCs1
WHERESnoNOTIN
FROMSCs2
WHEREo='01001'))
GO
15.查询每个同学各门课程的平均成绩和最高成绩,按降序排列输出某某、平均成绩、最高成绩。
USEjiaoxuedb
SELECTSnameAS某某,AVG(Score)AS平均,MAX(Score)AS最高
FROMjiaoxuedbdent,SC
GROUPBYSname
ORDERBYSnameDESC
GO
16.查询所有学生都选修了的课程号和课程名。
USEjiaoxuedb
SELECTameAS课程号,oAS课程名
FROMCourse
WHERENOTEXISTS
(SELECT*
FROMjiaoxuedbdent
WHERENOTEXISTS
(SELECT*FROMSC
WHEREjiaoxuedbdent.Sno=SC.SnoANDSC.o=Course.o));
GO
17.查询选修了991102号学生选修了的课程的学生学号和某某。
usejiaoxuedb
SELECTDISTINCTSno,Sname
FROMjiaoxuedbdents1
WHERENOTEXISTS
(SELECTo
FROMSCs2
WHERESno='991102'ANDNOTEXISTS
(SELECTo
FROMSCs3
WHEREs1.Sno=s3.SnoANDs2.o=s3.o))
ANDs1.Sno!
='991102'
GO
实验三数据控制〔安全性局部〕
一、实验目的:
1.掌握利用SQL语言与SQLSERVER企业管理器创建索引的操作。
2.掌握利用SQL语言与SQLSERVER企业管理器创建和查看视图的操作。
3.掌握利用SQL语言与SQLSERVER企业管理器修改和删除视图的操作。
二、实验内容与步骤:
基于jiaoxuedb实验,需按实验二中的数据值建立数据库与其中的表。
1.对教师表Teacher中的教师号Tno创建聚族索引,并按降序排列。
2.对学生选课表SC,先按课号o升序排列,再按成绩Score降序排列。
o升序:
USEjiaoxuedb
CREATECLUSTEREDINDEXIND_SC_OONSC(oASC)
3.对表jiaoxuedbdent中的学号Sno创建唯一索引,并按升序排列。
USEjiaoxuedb
CREATEUNIQUEINDEXIND_S_SNOONjiaoxuedbdent(SnoASC)
4.通过企业管理器的索引管理功能观察Teacher、jiaoxuedbdent和SC索引的建立情况。
5.用DROPINDEX语句删除以上建立的索引。
6.创建成绩视图SCORE_VIEW,包含学号SNO,某某SN,课程名,成绩SCORE。
7.创建一个计算机系学生视图S_VIEW,包含学号SNO,某某SN,