实验五 数据库综合查询(学生)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五数据库综合查询
一、实验目的
1.掌握SELECT语句的基本语法和查询条件表示方法;
2.掌握查询条件种类和表示方法;
3.掌握连接查询的表示及使用;
4.掌握嵌套查询的表示及使用;
5.了解集合查询的表示及使用。
二、实验内容
1.了解SELECT语句的基本语法格式和执行方法;
2.以数据库原理实验5数据为基础,请使用T-SQL 语句实现进行相应操作;
3.完成实验报告。
三、实验步骤
1.查询以‘数据_’开头,且倒数第3个字符为‘结’的课程的详细情况
select*
from course
where Cname like'数据\_%结_'escape'\'
2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;select sname 姓名,student.sno 学号,o 课程号,ame 课程名from student,course,sc
where student.sno=sc.sno and o=o and sname like'_阳%'
3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修
课程号及成绩;
select student.sno,sname,sdept,cno,grade
from student,sc
where student.sno=sc.sno and cno IN(select cno from course where cname='数学'OR CNAME='大学英语')
4.查询缺少成绩的所有学生的详细情况;
select*
from student
where not exists(select*
from sc
where sno=student.sno and grade is not null)
select*
from student
where sno in(
select sno
from sc
where grade is null)
5.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;
select b.*
from student a,student b
where a.sname='张力'and a.sage<>b.sage
6.查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成
绩;
select student.sno,sname,平均成绩=avg(grade)
from student,sc
where sc.sno=student.sno
group by student.sno,sname
having avg(grade)>(
select avg(grade)
from sc
where sno=(
select sno
from student
where sname='张力'))
7.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
其中已修学分为考试已经及格的课程学分之和;
select student.sno 学号,sname 姓名,sdept 院系,已修学分=sum(credit)
from student,course,sc
where student.sno=sc.sno and o=o and grade>=60
group by student.sno,sname,sdept
8.列出只选修一门课程的学生的学号、姓名、院系及成绩;
select student.sno 学号,sname 姓名,sdept 院系,grade
from student,sc
where student.sno=sc.sno and sc.sno in(
select sno
from sc
group by sno
having count(cno)=1)
9.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;select distinct student.*
from student
where sno in(
select sno
from sc
where cno in(
select cno
from course
where cname='数据库'or cname='数据结构'))
10.只选修“数据库”和“数据结构”两门课程的学生的基本信息;
select o,ame,x.sno,x.sname,grade
from student x,sc y,course z
where x.sno=y.sno and o=o
11.至少选修“数据库”或“数据结构”课程的学生的基本信息;
select*
from student,sc,course
where student.sno=sc.sno
and o=o
and cname='数据库'or
cname='数据结构'
12.列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;
select o,ame,student.sno,student.sname,grade
from student,sc,course
where student.sno=o
and o=o
13.查询只被一名学生选修的课程的课程号、课程名;
select cno,cname
from course
where cno in
(select cno