数据库上机(二):数据查询(一)

别等时光非礼了梦想. 提交于 2020-04-11 11:40:44

数据库上机(二):数据查询(一)

一、实验目的
掌握SQL程序设计基本规范,熟练运用SQL语言实现数据基本查询,包括单表查询、分组统计查询和连接查询等。

二、实验内容和结果
1 查询SC表中的全部数据。

select * from SC

在这里插入图片描述
2 查询计算机系学生的姓名和年龄。

select Sname ,Sage 
from Student
where Sdept = '计算机系'

在这里插入图片描述
3 查询成绩在70~80分的学生的学号、课程号和成绩。

方法一:
select Sno, Cno, Grade
from SC
where Grade >= 70 and Grade <= 80 
方法二:
select Sno, Cno, Grade
from SC
where Grade between 70 and 80

在这里插入图片描述

4查询计算机系年龄在18~20岁的男生姓名和年龄。

select Sname, Sage
from Student
where Ssex = '男'  and Sdept = '计算机系'
and Sage >= 18 and Sage <= 20

在这里插入图片描述
5 查询C001课程的最高分。

select max (Grade) Grade
from SC
where Cno = 'C001'

在这里插入图片描述
6 查询计算机系学生的最大年龄和最小年龄。

select max (Sage) Sage, MIN (Sage) Sage
from Student 
where Sdept = '计算机系'


7 统计每个系的学生人数。

select Sdept, count(Distinct Sno) 
from Student
Group by Sdept ;

在这里插入图片描述
8 统计每门课程的选课人数和最高成绩。

select Cno, MAX(Grade) , COUNT(Sno) 
from SC
Group by Cno ;

在这里插入图片描述
9 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

select  Sno, COUNT(Cno)  , SUM (Grade) 
from SC
Group by Sno 
order by count(Cno)


在这里插入图片描述
10 列出总成绩超过200的学生的学号和总成绩。

select Sno, SUM(Grade)
from SC
group by Sno 
having SUM (Grade) > 200

在这里插入图片描述
11 查询选了C002课程的学生姓名和所在系。

select Sname, Sdept
from Student, SC
where Cno = 'C002' 
and SC.Sno = Student.Sno

在这里插入图片描述
12 查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。

select Sname, Cno, Grade
from Student, SC
where Student.Sno = SC.Sno
and Grade > 80 
order by Grade DESC

在这里插入图片描述
13 查询与VB在同一学期开设的课程的课程名和开课学期。

//嵌套查询
select Cname, Semester
from Course
where Semester IN(
select Semester
from Course
where Cname = 'VB'
) ;

在这里插入图片描述
14查询与李勇年龄相同的学生的姓名、所在系和年龄。

//嵌套查询
select Sname ,Sdept, Sage
from Student 
where Sage IN(
select Sage
from Student 
where Sname = '李勇'
) ;

在这里插入图片描述
15 查询哪些课程没有学生选修,列出课程号和课程名。

select  Cno, Cname
from Course
where not exists(
select *
from SC
where Cno = Course.cno
) ;

在这里插入图片描述
16查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。

select  Student.Sno, Sname, SC.Cno
from SC, Student
where SC.Sno = Student.Sno;
//因为要把未选课的学生列出来,所有用了两个查询语句
select  Sname, Sno
from Student
where Not exists(
select *
from SC
where Sno = Student.sno

在这里插入图片描述
17 查询计算机系哪些学生没有选课,列出学生姓名。

select  Sname
from Student
where Not exists(
select *
from SC
where Sno = Student.sno
) and Sdept = '计算机系';

在这里插入图片描述
18 查询计算机系年龄最大的三个学生的姓名和年龄。top 3

select  top 3 Sage,Sname
from Student
where Sdept = '计算机系'

在这里插入图片描述
19列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。top3

select  top 3 Grade, Student.Sno, Sname, Sdept 
from Student, SC, Course
where Student.Sno = SC.Sno
and SC.Cno = Course.Cno
and Cname = 'VB'
order by Grade DESC ;


在这里插入图片描述
20 查询选课门数最多的前2位学生,列出学号和选课门数。 top 2

select  top 2 count(Cno), Sno
from SC
group by Sno

在这里插入图片描述
实验小结:任它青苔满地年年不扫,任它尘烟风去一池碎萍,我心向天,仰面花开,本文Author WangGuodong.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!