尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

数据库基础(lab5:单表查询 三)
📅 发布时间:2026/6/22 1:06:57

lab5:单表查询(三)

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

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

  1. 基本语法

    • 作用: 根据一个或多个列对结果进行升序或降序排序。
    • 语法: ORDER BY 字段名 [ASC | DESC];
      • ASC: 升序(默认值,可省略)。
      • DESC: 降序。
    • 位置: ORDER BY 子句必须放在 FROM 和 WHERE 子句之后。
  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],表示 ASC 和 DESC 是两个互斥的选项,只能选择其一,或者都不选(默认为 ASC)。

2. 错误:WHERE 和 ORDER BY 的顺序

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

3. 错误:LIMIT 和 ORDER BY 的顺序

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

相关新闻

  • 20232409 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 是时候从 MySQL 转到 PostgreSQL 18 了
  • count函数在oracle中的使用场景有哪些

最新新闻

  • 大模型微调/RAG/Agent开发培训选型指南 2026主流机构能力拆解 - 互联网科技品牌测评
  • 基于ColdFire微控制器的USB嵌入式开发:从协议原理到HID设备实战
  • 嵌入式HMI设计实战:矩阵键盘、编码器与段码LCD驱动详解
  • 如何免费获取四大音乐平台播放地址:music-api跨平台解析终极指南
  • 宏远五金统率软件 - 品牌发掘
  • 2026焦作漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号