实验三 单表查询
一、 实验目的
掌握简单 SQL查询语句的应用,包括 like top order by compute 和聚集函数的应用。
二、 实验内容
1、基本查询
1)查询 Student 表中全体学生的全部信息
select *
from Student
2)查询全体学生的学号、姓名 select Sno, Sname
from Student
2、查询时改编列标题的显示、
查询全体学生的学号、姓名、家庭地址信息,兵分别加上“学生“、“学 号”、“家庭地址”的别名信息
select Sno 学号 , Sname 姓名 , Home_addr 家庭住址信息
from Student
3、条件查询
1)、查询成绩大于 80 分的学生的学号及课程号、成绩 select Sno, Cno, Grade
from SC
where Grade>80
2)查询成绩在 75~80 分的学生的学号及课程号、成绩 select Sno, Cno, Grade
from SC
where Grade between 75 and 80
3)查询选秀了课程号为“ 002”且成绩大于 80 分的学生的学号
select Sno
from SC
where Cno=002 and Grade>80
4)某些学生选秀某们课程后没有参加考试,所以有选课记录,但没有考试成 绩,请查询缺少成绩单额学生的学号和相应的课程号
select Sno, Cno
from SC
where Grade=null
4、基于 IN 子句的数据查询
Course 表中查询出”高数”、“ C 语言程序设计”的所有信息
select *
from Course
where Cname in( ' 高数 ' , 'C 语言程序设计 ' )
5、基于 between and 子句的数据查询 查询所有成绩在 70~80 分之间的学生选课信息 select Sno, Cno, Grade from SC
where Grade between 70 and 80
6、基于 like 子句的查询
1)从 Student 表中分别检索出姓“张”的所有同学的资料
select *
from Student
where Sname like ' %'
2)检索名字的第二个字是“红”或“虹”的所有同学的资料
select *
from Student
where Sname like '_ %' or Sname like '_ %'
3)查询课程名为 Visual_Basic 的课程的学分
select Credit
from Course
where Cname='Visual_Basic'
7、使用 top 关键字查询
(1)从选课表中检索出前 distinct查询3 个课程信息
select top 3 *
from SC
( 2)从选课表中检索出前面 20%的课程信息
select top 20 percent *
from SC
8消除重复行
检索出学生逸轩课程的课程号,要求显示的课程号不重复
select distinct Cno
from SC
9、查询经过计算的值
查询全体学生都的姓名及其年龄
select Sname, datediff (year , Brith , getdate ()) 年龄 from Student
10、使用 order by 语句对查询的结果进行排序
( 1)显示所有学生的基本信息,按班级号排序,若班级号相同则再按学号排序
select *
from Student
order by Classno asc
(2)查询全体学生的姓名及其年龄,并按学生的年龄的降序排列
select Sname, datediff (year , Brith , getdate ()) from Student
order by datediff (year , Brith , getdate ()) desc
11、使用聚合函数 (1)查询学生的总人数
select COUN(T*)
from Student
( 2)计算选秀了“ 002”号课程的学生的平均成绩、最高分、最低分 select MAX( Grade ), MIN( Grade), AVG( Grade ) from SC where Cno='002'
12、使用 group 子句进行查询 (1)查询各班级学生的总人数 select Classno , count (Sno) from Student group by Classno
(2)汇总总分大于 150 分的学生的学号及总成绩
select Sno, SUM( Grade )
from SC group by Sno having SUM( Grade )> 150
(3)查询各个课程号相应的选课人数
select COUN(TSno)
from SC group by Cno
13、使用 compute compute by 子句进行查询 (1)汇总每个学生的学号及总成绩 select Sno, Grade from SC order by Sno asc compute SUM( Grade) by Sno
(2)按学号汇总出每个学生的学号及总成绩、最高分、最低分以及所有学生的 总成绩 select *
from SC order by Sno compute sum( Grade) compute sum( Grade), max( Grade ), min( Grade) by Sno
问题、总结及体会
单表查询,相对简单,不过还是需要注意细节和前后关系

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。