大数据库大数据查询实验报告材料
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宁夏师范学院数学与计算机科学学院
《数据库》实验报告
实验序号:07实验项目名称:数据查询
学 号
2014210758
姓 名
邹业安
专业、班级
14信科
实验地点
222
指导教师
褚万军
时间
2017.6.07
一、实验目的及要求
•掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。
•掌握用条件表达式表示检索条件。
select姓名,职称,课程名称,课程性质
from教师inner join课程
on教师.教师编号=课程.责任教师
(23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息)
select姓名,职称,课程名称,课程性质
•掌握用聚合函数计算统计检索结果。
二、实验设备(环境)及要求
1、环境要求:
硬件:PC(P 以上,128M以上内存)、因特网接入;
软件:在SQL Server 2000中
三、实验内容与步骤
1、一般简单查询
(1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。
select distinct学号from选课
(18)带其他查询条件的两个关系的连接查询
select学生.学号,院系,姓名,性别,生源,课程编号,成绩
from学生join选课
on选课.学号=学生.学号
(19)多个关系(三个以上)的连接查询
select * from学生,课程,选课
where学生.学号=选课.学号
and课程.课程编号=选课.课程编号
select教师.姓名
from教师
where教师.教师编号in (
select课程.责任教师
from课程
where课程性质='专业基础')
(27)使用NOT IN运算的简单嵌套查询
select教师.姓名
from教师
where教师.教师编号not in (
select课程.责任教师
from课程
where课程性质='专业基础')
(37)一次完成求和、计数、计算平均值的查询。
select * from教师
compute sum(工资),avg(工资)
(38)查询所有课程的成绩都大于60分的学生的平均分最高的学生信息。
select学号,avg(成绩)平均成绩
from选课
where成绩>60
groupby成绩,学号
orderby成绩desc
(28)使用关系运算(如等于)的简单嵌套查询
select教师.姓名
from教师
where教师.教师编号=(
select课程.责任教师
from课程
where课程编号='02')
(29)使用ANY或SOME的简单嵌套查询
select姓名
from教师
where工资>=any
(select工资
from教师
where教师编号=20118)
selectavg(成绩)
from选课
where课程编号in
(select课程编号from课程where课程性质like'%基础')
groupby学号
(43)设计1个使用COMPUTE•••BY和COMPUTE的查询。
select*
from选课orderby学号
computeavg(成绩),sum(成绩)by学号
select学号from选课
(2)查询某个表中的所有记录
查询教师表中的所有记录
(3)使用单个条件的简单查询
查询成绩大于50的学生的学号
select学号from选课
where成绩>50
(4)使用多个条件(AND关系)的查询
select工资
from教师
where工资>200and工资<500
(5)使用多个条件(OR关系)的查询
select *
from教师
where not exists
(select *
from课程
where课程.责任教师=教师.教师编号)
(35)使用COUNT统计数目的查询。
select * from教师
select count (工资) from教师
(36)使用SUM计算合计的查询。
select sum (工资) from教师
(39)查询数据库课程的成绩大于70分的、所有课程平均分最高的学生信息。
selecttop(1)*from学生where学号in
(select学号from选课join课程
on选课.课程编号=课程.课程编号
where成绩>70and课程名称='数据库')
(40)查询每个学生的平均成绩。
select学号,avg(成绩)as平均成绩
select*from教师
(30)使用ALL的简单嵌套查询。
select姓名
from教师
where工资>= all
(select工资
from教师
where教师编号=20115)
(31)查询院系名称含“计科系”、职称为教授、所负责教程为专业基础的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)
(select max(工资)
from教师innera
where out.教师编号= innera.教师编号)
(33)使用EXISTS的嵌套查询。
select *
from教师
where exists
(select *
from课程
where课程.责任教师=教师.教师编号)
(34)使用NOT EXISTS的嵌套查询。
from教师left join课程
on教师.教师编号=课程.责任教师
(24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中能够反映目前没有确定责任教师的课程信息。
select姓名,职称,课程名称,课程性质
from教师right join课程
on教师.教师编号=课程.责任教师
(13)结果要求排序的查询
select * from选课--升序
order by成绩
select * from选课--降序
order by成绩desc
(14)查询结果按多列排序,并分别要求升序和降序的查询。
select * from选课
order by学号,成绩
select * from选课
order by学号,成绩desc
from选课
groupby学号
(41)查询每个学生的所有成绩的最高成绩、最低成绩、平均成绩和所考课程的门数。
select学号,count(*)'所选课程数',max(成绩)'最高成绩',avg(成绩)'平均成绩',min(成绩)'最低成绩'
from选课
groupby学号
(42)查询至少有1门必修课程考试成绩的每个学生的平均成绩。
五、教师评语
1.按时完成实验;
2.实验内容和实验过程记录完整;
3.回答问题完整、正确;
4.有关于实验的比较深刻的心得或讨论;
5.实验报告的撰写认真、报告格式符合要求。
签名:
日期:年月日
成绩
(20)两个关系的广义笛卡尔积运算结果。
select * from学生cross join选课
(21)根据两个关系的广
select e.学号,院系,姓名,性别,生源,课程编号,成绩
from学生e join选课w
on e.学号= w.学号
(22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段
select工资
from教师
where工资<200or工资>500
(6)使用多个条件(混合AND和OR关系)的查询
select*from学生
where(院系='2'and生源='淮南')or(院系='6'and生源='淮北')
(7)使用带NOT运算的查询
select * from学生
where not (生源='合肥')
(15)使用TOP显示前若干记录的查询
select top 3 * from学生
(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示
select top 3 * from学生
where生源='淮南'
(17)两个关系的连接查询。
select * from学生cross join选课
(8)使用BETWEEN•••AND•••的查询
select * from选课
where成绩between 86 and 93
(9)使用NOT•••BETWEEN•••AND•••的查询
select * from选课
where成绩not between 76 and 93
(10)使用LIKE运算符的字符串匹配查询。
select姓名,课程名称,学时
from教师join课程
on责任教师=教师编号join院系
on院系.编号=教师.院系
where名称='计科系'and职称='教授'
(32)设计两个内外层互相关的嵌套查询。
select * from教师
select教师编号,姓名,性别,职称,工资
from教师out
where工资=
(25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息
select姓名,职称,课程名称,课程性质
from教师fulljoin课程
on课程.责任教师=教师.教师编号
(26)使用IN运算的简单嵌套查询。
select * from课程
where课程性质like '专业__'
(11)使用LIKE运算符的模板匹配查询。
select*from院系
where办公地点like'4_1'
(12)查询空值和非空值的
select * from教师
where工资is null
select * from教师
where工资is not null
(44)设计1个使用COMPUTE的查询。
select * from教师
compute sum(工资)
(45)设计个使用group•••BY的查询。
select教师编号,avg(工资)
from教师
group by教师编号
四、分析与讨论
实验过程中出现了很多的错误,但经过自己的不懈努力都解决的了,也正是通过这次的实验学到了很多。
《数据库》实验报告
实验序号:07实验项目名称:数据查询
学 号
2014210758
姓 名
邹业安
专业、班级
14信科
实验地点
222
指导教师
褚万军
时间
2017.6.07
一、实验目的及要求
•掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。
•掌握用条件表达式表示检索条件。
select姓名,职称,课程名称,课程性质
from教师inner join课程
on教师.教师编号=课程.责任教师
(23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息)
select姓名,职称,课程名称,课程性质
•掌握用聚合函数计算统计检索结果。
二、实验设备(环境)及要求
1、环境要求:
硬件:PC(P 以上,128M以上内存)、因特网接入;
软件:在SQL Server 2000中
三、实验内容与步骤
1、一般简单查询
(1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。
select distinct学号from选课
(18)带其他查询条件的两个关系的连接查询
select学生.学号,院系,姓名,性别,生源,课程编号,成绩
from学生join选课
on选课.学号=学生.学号
(19)多个关系(三个以上)的连接查询
select * from学生,课程,选课
where学生.学号=选课.学号
and课程.课程编号=选课.课程编号
select教师.姓名
from教师
where教师.教师编号in (
select课程.责任教师
from课程
where课程性质='专业基础')
(27)使用NOT IN运算的简单嵌套查询
select教师.姓名
from教师
where教师.教师编号not in (
select课程.责任教师
from课程
where课程性质='专业基础')
(37)一次完成求和、计数、计算平均值的查询。
select * from教师
compute sum(工资),avg(工资)
(38)查询所有课程的成绩都大于60分的学生的平均分最高的学生信息。
select学号,avg(成绩)平均成绩
from选课
where成绩>60
groupby成绩,学号
orderby成绩desc
(28)使用关系运算(如等于)的简单嵌套查询
select教师.姓名
from教师
where教师.教师编号=(
select课程.责任教师
from课程
where课程编号='02')
(29)使用ANY或SOME的简单嵌套查询
select姓名
from教师
where工资>=any
(select工资
from教师
where教师编号=20118)
selectavg(成绩)
from选课
where课程编号in
(select课程编号from课程where课程性质like'%基础')
groupby学号
(43)设计1个使用COMPUTE•••BY和COMPUTE的查询。
select*
from选课orderby学号
computeavg(成绩),sum(成绩)by学号
select学号from选课
(2)查询某个表中的所有记录
查询教师表中的所有记录
(3)使用单个条件的简单查询
查询成绩大于50的学生的学号
select学号from选课
where成绩>50
(4)使用多个条件(AND关系)的查询
select工资
from教师
where工资>200and工资<500
(5)使用多个条件(OR关系)的查询
select *
from教师
where not exists
(select *
from课程
where课程.责任教师=教师.教师编号)
(35)使用COUNT统计数目的查询。
select * from教师
select count (工资) from教师
(36)使用SUM计算合计的查询。
select sum (工资) from教师
(39)查询数据库课程的成绩大于70分的、所有课程平均分最高的学生信息。
selecttop(1)*from学生where学号in
(select学号from选课join课程
on选课.课程编号=课程.课程编号
where成绩>70and课程名称='数据库')
(40)查询每个学生的平均成绩。
select学号,avg(成绩)as平均成绩
select*from教师
(30)使用ALL的简单嵌套查询。
select姓名
from教师
where工资>= all
(select工资
from教师
where教师编号=20115)
(31)查询院系名称含“计科系”、职称为教授、所负责教程为专业基础的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)
(select max(工资)
from教师innera
where out.教师编号= innera.教师编号)
(33)使用EXISTS的嵌套查询。
select *
from教师
where exists
(select *
from课程
where课程.责任教师=教师.教师编号)
(34)使用NOT EXISTS的嵌套查询。
from教师left join课程
on教师.教师编号=课程.责任教师
(24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中能够反映目前没有确定责任教师的课程信息。
select姓名,职称,课程名称,课程性质
from教师right join课程
on教师.教师编号=课程.责任教师
(13)结果要求排序的查询
select * from选课--升序
order by成绩
select * from选课--降序
order by成绩desc
(14)查询结果按多列排序,并分别要求升序和降序的查询。
select * from选课
order by学号,成绩
select * from选课
order by学号,成绩desc
from选课
groupby学号
(41)查询每个学生的所有成绩的最高成绩、最低成绩、平均成绩和所考课程的门数。
select学号,count(*)'所选课程数',max(成绩)'最高成绩',avg(成绩)'平均成绩',min(成绩)'最低成绩'
from选课
groupby学号
(42)查询至少有1门必修课程考试成绩的每个学生的平均成绩。
五、教师评语
1.按时完成实验;
2.实验内容和实验过程记录完整;
3.回答问题完整、正确;
4.有关于实验的比较深刻的心得或讨论;
5.实验报告的撰写认真、报告格式符合要求。
签名:
日期:年月日
成绩
(20)两个关系的广义笛卡尔积运算结果。
select * from学生cross join选课
(21)根据两个关系的广
select e.学号,院系,姓名,性别,生源,课程编号,成绩
from学生e join选课w
on e.学号= w.学号
(22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段
select工资
from教师
where工资<200or工资>500
(6)使用多个条件(混合AND和OR关系)的查询
select*from学生
where(院系='2'and生源='淮南')or(院系='6'and生源='淮北')
(7)使用带NOT运算的查询
select * from学生
where not (生源='合肥')
(15)使用TOP显示前若干记录的查询
select top 3 * from学生
(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示
select top 3 * from学生
where生源='淮南'
(17)两个关系的连接查询。
select * from学生cross join选课
(8)使用BETWEEN•••AND•••的查询
select * from选课
where成绩between 86 and 93
(9)使用NOT•••BETWEEN•••AND•••的查询
select * from选课
where成绩not between 76 and 93
(10)使用LIKE运算符的字符串匹配查询。
select姓名,课程名称,学时
from教师join课程
on责任教师=教师编号join院系
on院系.编号=教师.院系
where名称='计科系'and职称='教授'
(32)设计两个内外层互相关的嵌套查询。
select * from教师
select教师编号,姓名,性别,职称,工资
from教师out
where工资=
(25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息
select姓名,职称,课程名称,课程性质
from教师fulljoin课程
on课程.责任教师=教师.教师编号
(26)使用IN运算的简单嵌套查询。
select * from课程
where课程性质like '专业__'
(11)使用LIKE运算符的模板匹配查询。
select*from院系
where办公地点like'4_1'
(12)查询空值和非空值的
select * from教师
where工资is null
select * from教师
where工资is not null
(44)设计1个使用COMPUTE的查询。
select * from教师
compute sum(工资)
(45)设计个使用group•••BY的查询。
select教师编号,avg(工资)
from教师
group by教师编号
四、分析与讨论
实验过程中出现了很多的错误,但经过自己的不懈努力都解决的了,也正是通过这次的实验学到了很多。