当前位置: 首页 > news >正文

数据库基础(lab5:单表查询 三)

lab5:单表查询(三)

一、对查询结果排序 (ORDER BY)

ORDER BY 子句用于对 SELECT 语句返回的结果集进行排序。

  1. 基本语法

    • 作用: 根据一个或多个列对结果进行升序或降序排序。
    • 语法: ORDER BY 字段名 [ASC | DESC];
      • ASC: 升序(默认值,可省略)。
      • DESC: 降序。
    • 位置: ORDER BY 子句必须放在 FROMWHERE 子句之后。
  2. 示例

    • 查询1班所有同学的信息,并按成绩降序排列。
      SELECT *
      FROM tb_score
      WHERE class_id = 1
      ORDER BY score DESC;
      

二、分组查询 (GROUP BY)

GROUP BY 语句通常与聚合函数(如 COUNT(), MAX(), MIN(), SUM(), AVG())一起使用,将具有相同值的行组合成摘要行。

  1. 单独使用 (不推荐)
    • 作用: 如果单独使用,GROUP BY 会返回每个分组中的第一条记录,通常意义不大。
    • 语法: GROUP BY 字段名;
    • 示例: 对班级ID进行分组。
      SELECT * FROM tb_class GROUP BY class_id;
      

三、限制查询数量 (LIMIT)

LIMIT 子句用于限制 SELECT 语句返回的记录数,常用于分页。

  1. 基本语法

    • 作用: 指定返回记录的起始位置和数量。
    • 语法: LIMIT [offset,] row_count;
      • offset: 可选参数,指定从哪条记录开始返回(偏移量,第一条记录的偏移量是0)。
      • row_count: 指定要返回的记录数。
    • 位置: LIMIT 子句必须放在查询语句的最后,通常在 ORDER BY 之后。
  2. 示例

    • 查询成绩排名前4的学生:
      -- LIMIT 4 等同于 LIMIT 0, 4
      SELECT * FROM tb_score ORDER BY score DESC LIMIT 4;
      
    • 查询成绩排名第2到第5的学生(共4名):
      -- 写法一:LIMIT offset, row_count
      SELECT * FROM tb_score ORDER BY score DESC LIMIT 1, 4;-- 写法二:LIMIT row_count OFFSET offset (更清晰)
      SELECT * FROM tb_score ORDER BY score DESC LIMIT 4 OFFSET 1;
      

四、我遇到的问题与解决方案

1. 困惑:ORDER BY 语法 [ASC[DESC]]

  • 问题: 教程中 ORDER BY 的语法写为 [ASC[DESC]],看起来像是 DESC 包含在 ASC 中,令人费解。
  • 解析: 这是教程中的一个笔误。正确的语法应该是 [ASC | DESC],表示 ASCDESC 是两个互斥的选项,只能选择其一,或者都不选(默认为 ASC)。

2. 错误:WHEREORDER BY 的顺序

  • 问题: 在需要筛选和排序时,不确定 WHERE 子句应该放在哪个位置。
  • 解析: SQL子句有固定的执行和书写顺序。WHERE 子句用于在排序前过滤数据,因此必须写在 ORDER BY 子句之前。
    • 正确顺序: SELECT ... FROM ... WHERE ... ORDER BY ...;

3. 错误:LIMITORDER BY 的顺序

  • 问题: 将 LIMIT 子句写在了 ORDER BY 子句之前,导致语法错误或逻辑不符。
  • 解析: LIMIT 用于对最终结果集进行限制。因此,必须先通过 ORDER BY 对结果进行排序,然后再用 LIMIT 从排好序的结果中取出指定的行。
    • 错误顺序: ... LIMIT 1,4 ORDER BY score DESC;
    • 正确顺序: ... ORDER BY score DESC LIMIT 1,4;
http://www.rkmt.cn/news/52262.html

相关文章:

  • 20232409 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 是时候从 MySQL 转到 PostgreSQL 18 了
  • count函数在oracle中的使用场景有哪些
  • Photoshop下载教程(附2025最新版安装步骤与完整图文讲解)
  • 上海少儿编程哪家靠谱?高性价比机构综合测评,妙小程+4大优质机构,覆盖信奥赛与AI编程
  • 从传统架构到AI原生:深度剖析企业AI落地的“三高”痛点与Serverless化解决方案
  • skynet(v1.4.0)学习笔记
  • 网站推荐!夸克资源网站里面的夸克资源社!
  • iOS 抓包全流程指南,HTTPS 抓包、TCP 数据流分析与多工具协同的方法论
  • 【20章】MCP+A2A 从0到1构建商业级多Agent全栈应用
  • 优化的高光谱解混算法实现
  • 2025.11.17——1绿2蓝
  • OpenHarmony onDrag拖拽事件
  • 2025年11月静音隔音设备最新推荐厂家,静音房、冲床静音房、设备静音房、测试静音房、隔音房、冲床隔音房、设备隔音房、测试隔音房
  • check linux
  • MATLAB实现的改进遗传算法用于有约束优化问题
  • 2025 最新声级计厂家推荐!多功能 / 数字 / 精密 / 防爆 / 手持式等全类型声级计品牌权威榜单,专业测评 + 高性价比厂家精选
  • fpga时序约束 - set_input_delay
  • winform中消息机制使用CommunityToolkit.Mvvm
  • case linux
  • cadence linux
  • 2025年四川硬芯线厂家排名前十权威评测及行业选择指南
  • 百度贴吧 电子工程世界 哔哩哔哩 凯迪网 一牛网 电子工程网 思否 知乎 技术邻
  • 2025年国内锯条品牌口碑推荐排行榜TOP10权威发布
  • Codeforces Round 1064 (Div. 2) 做题记录
  • 基于MATLAB的DPSK调制解调仿真
  • 2025年江苏浙江上海地区留学服务商综合实力排行榜TOP10
  • 2025年纯铜龙柱订做厂家权威推荐:小型铜龙柱/五代鎏金铜龙柱/锻铜龙柱源头厂家精选
  • 第十一节:分析与可视化平台Grafana的介绍和部署
  • 11.15 洛谷 NOIP 模拟赛