首页 > 数据库 >SQL第三课——排序检索数据

SQL第三课——排序检索数据

时间:2024-09-15 11:20:18浏览次数:8  
标签:检索 排序 列名 子句 SQL 第三课 prod select desc

如何使用select语句的order by 子句,根据需要排序检索出的数据。

3.1 排序数据

如果不排序,数据一般以它在表中出现的顺序显示,有可能是数据最初添加到表中的顺序。

如果数据随后进行过更新或删除,那么这个顺序将会受到DBMS重用回收存储空间的方式影响。如果不明确控制的话,最终的结果不能(也不应该)依赖该排序顺序。

子句(clause)

通常由一个关键字加上所提供的数据组成。(前一课的select语句的from子句)

order by 子句取一个或多个列的名字,据此对输出进行排序。

指示对应的列以字母顺序排序数据。

order by子句位置:是select语句中最后一条子句

3.2 按多个列排序

例如要显示雇员名单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。

要按多个列排序,只须指定这些列名,列名之间用逗号分开(于选择多个列一样)。

如下,检索3个列,并按其中两个列对结果进行排序——先按价格,再按名称排序:

仅在多个行具有相同的prod_price值时,才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

3.3 按列位置排序

除了能用列名指出排序顺序外,order by还支持按相对列位置进行排序

select清单中指定的是选择列的相对位置而不是列名。

好处不用重新输出列名
缺点

1. 不明确给定列名有可能造成错用列名排序;

2. 在对select清单进行更改时容易错误对数据进行排序(忘记对order by子句做相应改动);

3. 进行排序的列不在select清单中,不能用这个技术。

!!!有必要的话,可以混合使用实际列名和相对位置

3.4 指定排序方向

默认升序排序(A到Z),为了进行降序排序,必须指定desc关键字。

最贵的排在前面。

用多个列排序,如下,以降序排序产品(最贵的在最前面),再加上产品名:

desc关键字只应用到直接位于其前面的列名。只对prod_price列指定desc,对prod_name列不指定。prod_price列以降序排序,prod_name(在每个价格内)仍然按标准的升序排序。

!!!在多个列上进行降序排序,必须每一列指定desc关键字。

desc是descending的缩写,两个关键字都可以使用。

asc(ascending):升序。

字典(dictionary)排序顺序A与a相同
DBMS中大小写的规定根据管理员而定

标签:检索,排序,列名,子句,SQL,第三课,prod,select,desc
From: https://blog.csdn.net/m0_47482290/article/details/142281276

相关文章

  • Mysql高级篇(中)—— 索引优化
    Mysql高级篇(中)——索引优化一、索引分析案例案例1:单表查询案例2:两表连接查询案例3:三表连接查询二、避免索引失效常见索引失效场景简述场景1场景2场景3场景4场景5场景6三、索引优化文字版示例版一、索引分析案例使用EXPLAIN分析SQL查询性能是数据......
  • SQL语句逻辑执行过程
    1.1SQL语句的逻辑处理顺序SQL语句的逻辑处理顺序,指的是SQL语句按照一定的规则,一整条语句应该如何执行,每一个关键字、子句部分在什么时刻执行。除了逻辑顺序,还有物理执行顺序。物理顺序是SQL语句真正被执行时的顺序(执行计划),它是由各数据库系统的关系引擎中的语句分析器、优化......
  • Can't connect to local MySQL server through socket
    mysql-urootERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)这是mysql登录时找不到套接字的问题。首先需要明白的是,Linux端的mysqlserver启动时会开启一个socket,Linux上的MySQL的客户端在不使用IP连接时mysqlserver时,默认......
  • python+django+mysql 教师培训反馈系统05141-计算机毕业设计项目选题推荐(赠源码)
       目   录摘  要Abstract第1章  前  言1.1 研究背景1.2 研究现状1.3 系统开发目标第2章  系统开发环境62.1HTTP协议62.2HTML网页技术62.3B/S结构62.4django脚本语言72.5MySQL数据库72.6Apache简介8第3章  需求分析......
  • (赠源码)java+Springboot+mysql全省中小学师生共建习题交流与指导平台031619-计算机毕业
    摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于全省中小学师生共建习题交流与指导平台当然也不能排除在外,随着网络技术的不断成熟,带动了全省中小学师生共建习题交流与指导平台,它彻底改变了过去传统的管理方式,不仅使服务管理......
  • SQL编程题复习(24/9/15)
    练习题x4010-114检索出course表中前3门课程的课号及课程名称的记录10-115检索出students表中“信息学院”的学生姓名、性别和出生日期的记录10-116检索出students表中所有系名的记录,要求结果中系名不重复10-117检索出sc表中‘C001’课程未登记成绩的学生学号(MSSQL)10......
  • sqli-labs Basic Challenge Less_1 通关指南
    sqli-labsBasicChallengeLess_1通关指南测试注入点测试注入点的数据类型测试过程:测试返回点:测试列数:测试返回点:收集数据:版本用户权限库名表名与列名查找敏感信息测试注入点在进行SQL注入之前,首先要找到可能出现的注入点,以及其防护等级,也就是查找是否有漏洞。......
  • SpringBoot+Neo4j+Vue+Es集成ES全文检索、Neo4J知识图谱、Activiti工作流的知识库管理
     在数字化高度普及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业知识共享库等。针对这些文档性的东西,手工纸质化去管理是非常消耗工作量的,并且纸质化查阅难,易损耗,所以电子化管理显得尤为重要。【springboot+elasticsearch+neo4j+vue+activiti】实现......
  • MySQL 慢查询日志:解锁数据库性能优化的关键
    在MySQL数据库的使用过程中,性能优化是一个持续的挑战。而慢查询日志就是我们手中的一把利器,能够帮助我们发现和解决性能瓶颈。那么,MySQL中的慢查询日志究竟是什么呢?又该如何使用它来优化性能呢?让我们一起来深入了解。一、慢查询日志的定义与作用慢查询日志是MySQL数据库用来......
  • MySQL 主从复制:实现数据同步与高可用
    在数据库系统中,数据的可靠性和可用性至关重要。MySQL的主从复制功能为我们提供了一种有效的方式来实现数据同步和高可用。今天,我们就来深入探讨一下MySQL中如何实现主从复制。一、主从复制的概念与作用主从复制是指将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个M......