`
izuoyan
  • 浏览: 9221661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

实验三(2) SQL查询(排序、集函数和分组子句的应用)

SQL 
阅读更多

试验目的:
一、学习查询结果的排序
二、学习使用集函数的方法,完成统计

等查询。
三、学习使用分组子句

一、学习查询结果的排序

1、查询全体学生信息,结果按照年龄降

序排序

select *
from student
order by sage desc

2、查询学生选修情况,结果先按照课程

号升序排序,再按成绩降序排序

select *
from sc
order by cno,grade desc

思考题:查询学生姓名,及其选修的课

程名和成绩,结果先按照课程名升序排

序,再按成绩降序排序

1、排序是对查询结果的排序,排序方法

有两种,升序(默认 asc)和降序

(desc)。
2、当排序的属性有多个时,优先排序的

放在前面,依次列出,中间用逗号隔开


3、当查询结果是多个表时,利用连接查

询(where 条件内把共同列相等),然

后对查询结果排序。

二、集函数的应用
1、查询student表内学生人数
select count(sno)
from student

select count(*)
from student

2、查询有选修课程的学生人数
select count(distinct sno)
from sc

3、查询3号课程的成绩总分
select sum(grade)
from sc
where cno='3'

4、查询学生年龄和
select sum(sage)
from student

5、查询学生200215122所选修的课程的

平均分
select avg(grade)
from sc
where sno='200215122'

6、求3号课程的最高分
select max(grade)
from sc
where cno = '3'

练习:

1、查询有几门选修课被选修
select count(distinct cno)
from sc

2、查询学生中男生人数

select count(sno)
from student
where ssex = '男'

3、查询学生200215121所选修的课程成

绩总分
select sum(grade)
from sc
where sno='200215121'

4、查询3号课程的平均分
select avg(grade)
from sc
where cno='3'
思考题:

1、查询学生中各年龄段人数

select sage,count(sno)
from student
group by sage

2、查询3号课程的平均分和最高分
select avg(grade) 平均分,max(grade)

最高分
from sc
where cno='3'
总结:

1、集函数count(属性名)计算个数,

注意distinct 属性名的应用,取消重复

的行。属性名列表可以是多个用字符串

连接(+)。
2、sum(),avg()这两个是对数值型属

性进行的统计操作。
3、max(),min()根据属性(数值型的

或字符型的都可以)选择最大的或最小

的。

三、分组group by子句的应用

1、查询课程号及相应的选修人数
select cno,count(*)
from sc
group by cno

注意:列出结果一个是cno,一个是集函

数统计的结果,不能单独列出不参与分

组的属性。

练习:
1、查询男生和女生人数(查询性别及其

对应人数)
select ssex,count(*)
from student
group by ssex

2、查询各系名及其各系对应人数
select sdept,count(*)
from student
group by sdept

3、查询课程名及其平均分
select cname,avg(grade)
from course,sc
where course.cno=sc.cno
group by cname

思考题:
1、查询课程号和课程名,及其选修人数
select sc.cno,cname,count(*)
from sc,course
where sc.cno=course.cno
group by sc.cno,cname

2、查询学号、姓名,及其选修的课程名

平均分

代码:

分享到:
评论

相关推荐

    SQL实验:使用分组,排序和聚合函数以及连接查询

    本次实验旨在帮助学生通过实践加深对SQL语言的理解,特别是关于分组、排序、聚合函数以及连接查询等关键概念的应用。具体包括: 1. **掌握通配符的用法**:通配符在SQL中用于模糊匹配字符串,如`%`和`_`。 2. **...

    SQL Server分组排序取数据的实现

    在SQL Server中,分组和排序是数据处理的两个关键操作。它们可以帮助我们对大量数据进行聚合、组织和筛选,以便更好地分析和理解数据。本文将深入探讨如何在SQL Server中实现分组排序并获取每组的特定行数据。 首先...

    排序函数(sqlserver)

    在SQL查询中,`ORDER BY`子句用于指定返回结果集的排序方式。例如,如果我们有一个名为`Employees`的表,并希望按`Salary`字段降序排列,可以使用以下查询: ```sql SELECT * FROM Employees ORDER BY Salary DESC;...

    使用分组,排序和聚合函数以及连接查询

    本次实验的主要目的是让学生通过实际操作,熟练掌握SQL中的高级查询技术,包括分组、排序、聚合函数和连接查询等技能。这些技能在数据库管理和数据分析领域至关重要。 #### 实验知识点解析 ##### 1. 掌握通配符的...

    sql中随机分组后的随机排序

    综上所述,通过合理运用SQL中的`RAND()`和`CHECKSUM()`函数,我们可以有效地实现随机分组和随机排序的需求。同时,还需要关注查询的性能问题,确保在满足业务需求的同时,也能够保障系统的稳定性和高效性。

    sql分组查询和聚合函数

    本文将详细介绍 SQL 中的分组查询和聚合函数,包括它们的基本概念、语法以及实际应用示例。 #### 二、分组查询(GROUP BY) 分组查询是 SQL 中一种常用的查询技术,它允许用户基于一个或多个字段将结果集分割成不同...

    SQL复习之聚集函数

    结合窗口函数(如RANK(), ROW_NUMBER(), DENSE_RANK()等),OVER()子句允许我们在每个分组内进行排序和计算。这对于计算排名或滑动平均值非常有用。 9. **聚合子查询** 聚合函数也可以在子查询中使用,以提供更...

    sqlserver+group by分组查询分页存储过程

    2. **构建SQL查询语句**:根据输入参数动态生成SQL查询语句,包括`WHERE`、`GROUP BY`和`ORDER BY`子句。 3. **执行分页查询**:使用动态生成的SQL语句执行查询,并通过设置`ROWCOUNT`来限制返回的结果集大小。 ###...

    源码T-SQL性能调优秘笈 基于SQL Server 2012窗口函数

    第三章“有序集函数”则关注在窗口操作中涉及的排序和分组功能。可能会讨论ROW_NUMBER()、RANK()和DENSE_RANK()的区别,以及如何结合ORDER BY和PARTITION BY实现自定义排序和分组。 第四章“优化窗口函数”是性能...

    SQL数据库实验报告

    2. **SQL查询**:SQL查询是数据库操作的核心部分,包括了选择、投影、连接、分组和排序等操作。在实验报告中,SQL查询分为三个部分: - **SQL查询一**:可能涉及了基本的`SELECT`语句,用于从表中选择特定列的数据...

    T-SQL性能调优秘笈 基于SQL Server 2012窗口函数

    窗口函数是SQL中用于进行数据分组和排序分析的强大工具,它们在处理分析型查询中非常有用,特别是在涉及大量数据和复杂计算的场景中。 描述中的“性能调优”意味着这本书将包含大量关于如何提高SQL查询效率和系统...

    SQL Server数据库实验指导书 实验教程 数据库实验03 单表查询.pdf

    本实验主要围绕SQL Server 2005数据库的管理和单表查询操作展开,旨在帮助学习者熟练掌握SQL Server的相关技能。实验内容分为两大部分:SQL Server的安装与配置以及单表查询。 首先,实验涉及SQL Server 2005的安装...

    SQL查询习题集

    这个习题集包含了多种类型的SQL查询问题,旨在帮助用户熟练掌握SQL语言的基础和高级应用。SQL,全称Structured Query Language(结构化查询语言),是用于管理关系数据库的标准语言,包括创建、更新、查询和管理数据...

    SQL 关于记录排序 sqlserver

    根据提供的文件信息,我们可以深入探讨 SQL 服务器中的记录排序功能,特别是 `RANK()` 函数在 SQL Server 中的应用,以及如何在 Oracle 数据库中实现类似的功能。此外,我们还将涉及基于排序的操作,如更新(`UPDATE...

    SQL Server数据库实验_数据查询与更新_复杂的单表查询.doc

    实验的目的是帮助用户熟练掌握SELECT查询语句中的关键元素,包括Group by子句、Having子句以及各种汇总函数,如MAX、MIN、COUNT、SUM和AVG。 Group by子句用于对查询结果进行分组,它根据一个或多个列的值将数据...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    5. **窗口函数**:如RANK、ROW_NUMBER、LEAD和LAG,允许在结果集的行之间进行计算,提供了更灵活的分组和排序功能。 6. **存储过程**:预编译的T-SQL代码块,可以封装复杂的业务逻辑并重复使用,提高性能和代码的可...

    SQL高级实例-模糊查询-分组随机查询-转换

    本资源包"SQL高级实例-模糊查询-分组随机查询-转换"聚焦于SQL的一些关键特性,旨在提升你在实际工作中的查询效率和数据处理能力。让我们逐一探讨这些主题。 首先,**模糊查询**是SQL中用于处理不精确或部分匹配搜索...

    informix数据库SQL查询语言及应用

    综上所述,Informix数据库的SQL查询语言是其核心功能之一,掌握SQL的应用不仅能够有效管理和操作数据库,也是开发高效应用程序的基础。理解SQL的基本语法和高级特性,结合Informix的特性和最佳实践,可以实现更高效...

    SQL中分组排序问题

    在SQL中,分组排序问题通常涉及到数据的聚合和排名,这是数据分析和报表...总的来说,SQL中的分组排序和窗口函数是解决复杂数据查询问题的强大工具,它们能够帮助我们有效地分析和展示数据,例如本例中的学生成绩排名。

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    书中可能详细介绍了如何使用聚合函数如COUNT、SUM、AVG、MIN和MAX,以及GROUP BY和HAVING子句进行分组和过滤。 2. **连接(JOIN)操作**: SQL Server 2008支持多种类型的JOIN,包括INNER JOIN、LEFT JOIN(OUTER ...

Global site tag (gtag.js) - Google Analytics