实验目的

掌握简单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 *
from SC
where grade > 80
实验三 单表查询
(2)查询成绩介于75~80分的学生的学号及课程号、成绩。
select *
from SC
where grade > 75 and Grade < 80

实验三 单表查询
(3)查询选修了课程号为“002”,且成绩大于70的学生的学号。
select cno
from SC
where Cno =‘002’ and Grade > 80
实验三 单表查询
(4)某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,请查询缺少成绩的学生的学号和相应的课程号。
select cno,sno
from SC
where Grade = 0
实验三 单表查询
4.基于IN子句的数据查询

从Course表中查询出“高数”、“C语言程序设计”的所有信息。
select *
from Course
where Cname in (‘高数’,‘C语言程序设计’)
实验三 单表查询
5.基于BETWEEN…AND子句的数据查询
查询所有成绩在70~80之间的学生选课信息。
select *
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’_虹’
实验三 单表查询
(3)查询课程名为Visual_Basic的课程的学分。(提示:使用ESCAPE短语)
select Credit
from Course
where Cname like ‘Visual_Basic’ escape’’

实验三 单表查询
7.使用TOP关键字查询
(1)从选课表中检索出前3个课程信息。
select top 3 *
from Course
实验三 单表查询

(2)从选课表中检索出前面20%的课程信息。
select top 20 percent *
from Course

实验三 单表查询
8.消除重复行
检索出学生已选课程的课程号,要求显示的课程号不重复。
select distinct Cno
from SC

实验三 单表查询

9.查询经过计算的值
查询全体学生的姓名及其年龄。(提示:利用系统函数getdate())
select Sname’姓名’,DATEDIFF(YEAR,Birth,GETDATE())年龄
from Student
实验三 单表查询

10.使用ORDER BY语句对查询的结果进行排序
(1)显示所有学生的基本信息,按班号排列,班号相同则再按学号排列。
select *
from student
order by Classno,Sno
实验三 单表查询

(2)查询全体学生的姓名及其年龄,并按学生的年龄的降序排列。
select Sname’姓名’,DATEDIFF(YEAR,Birth,GETDATE())年龄
from Student
order by 年龄
实验三 单表查询
11.使用聚合函数
(1)查询学生总人数。
select count(Sname)学生总人数
from Student

实验三 单表查询
(2)计算“002”号课程的学生平均成绩、最高分、最低分。
select AVG(Grade)平均分,MAX(Grade)最高分,MIN(Grade)最低分
from SC
WHERE Cno = ‘002’

实验三 单表查询
12.使用GROUP子句进行查询
(1)查询各班级学生总人数。
select COUNT(Sname)‘各班总人数’
from Student
group by Classno

实验三 单表查询
(2)汇总总分大于150分的学生的学号及总成绩。
select Sno’学号’, SUM(Grade)总成绩
from SC
group by Sno
having SUM(Grade)>150
实验三 单表查询

(3)查询各个课程号相应的选课人数。
select Cno’课程号’, COUNT(Sno)课程人数
from SC
group by Cno

实验三 单表查询

13.使用COMPUTE和COMPUTE BY子句进行查询
(1)汇总每个学生的学号及总成绩。
select *
from SC
order by Sno
compute SUM(Grade) by Sno
实验三 单表查询
(2)按学号汇总出每个学生的学号及总成绩、最高分、最低分以及所有学生的总成绩。观察使用COMPUTE子句和COMPUTE BY字句的执行结果有何不同?
select *
from SC
order by Sno
compute SUM(Grade)
compute SUM(Grade),MAX(Grade),MIN(Grade) by Sno
实验三 单表查询

相关文章:

  • 2021-04-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-10
  • 2021-10-26
  • 2021-09-17
猜你喜欢
  • 2021-11-19
  • 2021-11-04
  • 2021-12-21
  • 2022-01-06
  • 2021-05-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案