SQL Sever 单表数据查询(下)

提示:本篇文章是在上篇文章的基础上进行单表数据查询操作的补充,主要以例题的方式呈现.

文章目录

  • 前言
  • 1.分组:统计各门课程的选修人数
  • 2.分别统计男女生的平均年龄
  • 3.查询所有科目成绩在85分以上的学生的学号及其平均分
  • 4.查询平均年龄大于18岁的系部和平均年龄
  • 5.DRDER BY子句:查询选修课程2101的所有学生信息,并按成绩降序排列
  • 6. INTO 子句:查询sc表中课程号为2101的记录,并将结果保存进表scl
  • 7.查询学生的详细信息,并返回学生的总人数和平均年龄
  • 8.查询学生的详细信息,同时返回每个年龄段的学生的总人数和平均年龄
  • 9.知识点总结
  • 总结


前言

1.分组:统计各门课程的选修人数

select cno 课程号,COUNT(cno) 选课人数 from sc group by cno

SQL Sever 单表数据查询(下)_第1张图片

2.分别统计男女生的平均年龄

select ssex 性别,AVG(sage) 平均年龄 from student group by ssex

SQL Sever 单表数据查询(下)_第2张图片

3.查询所有科目成绩在85分以上的学生的学号及其平均分

select sno,AVG(grade) 平均分 from sc group by sno having MIN(grade)>=85

SQL Sever 单表数据查询(下)_第3张图片

4.查询平均年龄大于18岁的系部和平均年龄

select sdept 院系,AVG(sage) 平均年龄 from student group by sdept having AVG(sage)>18

SQL Sever 单表数据查询(下)_第4张图片

5.DRDER BY子句:查询选修课程2101的所有学生信息,并按成绩降序排列

select * from sc WHERE cno='2101' ORDER BY grade DESC

SQL Sever 单表数据查询(下)_第5张图片

6. INTO 子句:查询sc表中课程号为2101的记录,并将结果保存进表scl

select * INTO scl from sc WHERE cno='2101'

SQL Sever 单表数据查询(下)_第6张图片

7.查询学生的详细信息,并返回学生的总人数和平均年龄

select * from student 
order by sage
COMPUTE COUNT(sno),AVG(sage)

SQL Sever 单表数据查询(下)_第7张图片

8.查询学生的详细信息,同时返回每个年龄段的学生的总人数和平均年龄

select * from student
order by sage
COMPUTE COUNT(sno) ,AVG(sage)BY sage

SQL Sever 单表数据查询(下)_第8张图片
SQL Sever 单表数据查询(下)_第9张图片

9.知识点总结

(1)分组查询——group by
select
聚合函数,
列(要求出现在group by的后面)
from

where
筛选条件
group by
分组的列表
order by
子句

注意:除了出现在group by后面的字段,如果要在select后查询其他字段,必须用聚合函数进行聚合.

特点:
分组查询中的筛选条件分为两类
分组筛选: 数据源是原始表,用where,放在group by前面,因为在分组前筛选
分组筛选:数据源是分组后的结果集 ,用having,放在group by后面,因为在分组后进行筛选。
✨用group by 的select字句中,只能选择集合函数和出现在group by字句中的分组列。
✨但对组用 having 进行筛选时,having字句使用的集合函数表达式包含的列可以不包含在select字句的选择列中。
SQL Sever 单表数据查询(下)_第10张图片

select bookID,sum(quentity) as 销售册数
from book 
group by bookid

SQL Sever 单表数据查询(下)_第11张图片
(2).排序——order by
select

from

where

order by
字段名
当我们查询出结果后,根据结果集中的某个字段进行排序,order by 字段名 排序方式(升序/降序)
order by默认采用升序(asc,如果存在 where 子句,那么 order by 必须放到 where 询句后面。
(3)INTO子句 功能是将查询结果保存到新的基表中
根据选择列表中的列和 WHERE 子句选择的行,指定要创建的新表名。 new_table 的格式通过对选择列表中的表达式进行取值来确定。 new_table 中的列按选择列表指定的顺序创建。 new_table 中的每列与选择列表中的相应表达式具有相同的名称、数据类型和值
(4)COMPUTE子句
compute 比 group by 更高级,group by 可以查看某一类的函数计算;而compute不光能实现这个效果,还可以显示出每一类的每一条数据。

select *
from book
compute sum(quentity)

SQL Sever 单表数据查询(下)_第12张图片


总结

今天的内容分享就到这里啦,如果对友友们有帮助的话记得点赞收藏博客,关注后续的SQL Sever学习内容哦~

你可能感兴趣的:(SQL,Server,sql,数据库,java)