MySQL必知必会排序检索数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL必知必会排序检索数据

检索数据

写在前面,sql语句是不区分大小写的,SELECT和select是一样的,但是许多的SQL开发人员习惯对sql关键字大写,而对所有的列和表名使用小写。

select语句

检索单个列

select prod_name from products;

xn_2022-08-24_09-11-27

检索多个列

SELECT prod_id , prod_name,prod_price  FROM products;

xn_2022-08-24_09-18-29

检索所有列

SELECT * FROM products;

xn_2022-08-24_09-22-32

检索不同行

使用DISTINCT关键字使得返回的信息是不同的行信息。

xn_2022-08-24_09-25-29

但是你不能这样:

xn_2022-08-24_09-27-25

除非两个列相同,否则所有行信息都会被展示出来。

限制结果

SELECT语句返回所有匹配的行。为了返回第一行或者前几行,可使用LIMIT子句

SELECT prod_name  FROM  products  LIMIT 5;

xn_2022-08-24_09-40-56

SELECT prod_name  FROM  products  LIMIT 5,5;

LIMIT 5 , 5代表的是从行5开始的5行。

行0:检索出来第一行为行0而不是行1。LIMIT 1,1检索出来的是第二行,而不是第一行。

行不够时,如LIMIT 10,5, 。如果只有13行时,mysql只能返回他能返回的行数了就。

MySQL 5的LIMIT语法。LIMIT 4 OFFSET 3 表示从行3开始取4行。

使用完全限定的表明

这里其实就是指,把列名通过表明限定,甚至把表明通过数据库名来完全限定。

SELECT products.prod_name FROM bizhibihui.products;

xn_2022-08-24_09-53-11

排序检索数据 (ORDER BY)

排序数据

:rainbow:子句:之前写到的FROM就算是SELECT的一个子句。为了明确排序顺序所以我们可以使用 ORDER BY子句。

SELECT prod_name FROM products ORDER BY prod_name;

xn_2022-08-24_09-59-37

这样上面的搜索结果就实现了字母排序。

:joystick:上面ORDER BY 子句使用的列是检索列,其实不使用检索的列进行排序也是完全合法的。

按多个列排序

我们在现实生活中也会遇到这样的情况:比如你说按姓名排序,当姓一样的时候,你就需要按名字来排序

SELECT prod_id , prod_price ,prod_name 
FROM  products
ORDER BY prod_price,prod_name;

xn_2022-08-24_10-09-49

上面的结果就可以观察到,当价格一样的时候,就会按照产品名称排序。

指定排序方向 (DESC 降序)

:ice_cream:数据排序不仅限于升序排序(从A到Z),这只是默认的排序顺序。我们还可以使用降序排序关键字DESC

SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;

xn_2022-08-24_10-17-15

上面的图片就实现了价格的降序排序。

:tangerine:打算对多个列排序怎么办呢?

SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC,prod_name;

xn_2022-08-24_10-20-34

上面就实现了先对价格降序,然后价格相同的按名字升序。

:pancakes:DESC关键词只应用到直接位于其前面的列名。所以如果你想对多个列进行降序排序,必须每个列指定DESC关键字。

:label:ASC是升序关键词,但其实是没有什么用处的,因为默认就是升序呀。

例子:找出最昂贵的物品

SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;

xn_2022-08-24_10-55-03

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
4月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
2月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
132 0
|
28天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
128 10
|
1月前
|
存储 关系型数据库 MySQL
MySQL中实施排序(sorting)及分组(grouping)操作的技巧。
使用这些技巧时,需要根据实际的数据量、表的设计和服务器性能等因素来确定最合适的做法。通过反复测试和优化,可以得到最佳的查询性能。
162 0
|
2月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
|
4月前
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
131 0
|
分布式计算 关系型数据库 MySQL
E-Mapreduce如何处理RDS的数据
目前网站的一些业务数据存在了数据库中,这些数据往往需要做进一步的分析,如:需要跟一些日志数据关联分析,或者需要进行一些如机器学习的分析。在阿里云上,目前E-Mapreduce可以满足这类进一步分析的需求。
5056 0
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
665 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
257 62

推荐镜像

更多