MySQL排序检索数据操作方法梳理

目录
  • 前言
  • 1. 排序数据
  • 2. 按多个列排序
  • 3. 按列位置排序
  • 4. 指定排序方式(升序或者降序)
  • 5. 扩展—文本性数据如何排序

前言

本实验中所用数据库创建SQL语句以及插入数据到数据库中的SQL语句链接:

链接: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y

提取码:4w4y

书接上回说到,MySQL检索数据

本篇文章主要介绍如何使用 select 的 MySQL 语言,根据我们的想要排序检索出的数据。

1. 排序数据

检索出的数据不是随机显示的,若不排序,数据以其在表中出现的顺序显示。关系数据库设计理论认为,如果不规定排序顺序,则不能假定检索出的数据的顺序有任何意义。

为了明确地排序用 select 语句检索出的数据,可以使用 order by 字句 取一个或多个列的名字,以此对输出进行排序

如下:

select prod_name
from Products
order by prod_name;

注意: order by 字句的位置一定是 select 语句的最后一条字句,如果不是最后一条字句,将会出错

2. 按多个列排序

通常我们不只需要按单个列排序,而是需要按多个列排序,当第一个列相等时,按第二个列排序…以此类推。这是,我们只需要将需要排序的多个列间用逗号隔开即可。

如下: 先按 prod_price 排序,prod_price 相同时,按照 prod_name 排序

select prod_id, prod_price, prod_name
from Products
order by prod_price, prod_name;

3. 按列位置排序

order by 字句还支持按照列位置进行排序,这种方法的好处是不需要重新输入列名。但是它也有缺点,比如进行排序的列必须在 select 清单中,并且这种方式当 select 清单变化时容易造成错误。

如下:2, 3 分别表示 select 清单中的第二(prod_price),第三列(prod_name)

select prod_id, prod_price, prod_name
from Products
order by 2, 3;

4. 指定排序方式(升序或者降序)

order by 默认为升序排序 (asc),可以通过指定 desc 关键字来实现降序排序

如下: 通过在 order by 字句的最后加上 desc,实现降序排序

select prod_id, prod_price, prod_name
from Products
order by prod_price desc;

思考:当我们需要对多个列降序排序时,应该怎么写呢?

desc 作用域问题: desc 关键字只作用于直接位于其前面的列名,因此若是想要对多个列降序排序,需要在需要降序排序的每个列的最后都加上 desc 关键字

如下: 按照 prod_price 降序排序,当 prod_price 相同时,按照 prod_id 降序排序;同理,当 prod_id 相同时,按照 prod_name 降序排序。

select prod_id, prod_price, prod_name
from Products
order by prod_price desc, prod_id desc, prod_name desc;

注: desc 只作用于直接位于其前面的列名的特点,使得我们可以很好的定制化排序,在需要降序排序的列后加 desc,而其他列仍然可以按照升序排序,这种机制非常灵活。

5. 扩展—文本性数据如何排序

在对文本性数据进行排序时,A与a是否相同;a位于B之前,还是Z之后,取决于数据库的设计方式。

实际上,在字典排序顺序中,A被视为与a相同,大部分数据库也采取这种默认做法。要想改变这种行为,可以求助数据库管理员的帮助,许多DBMS容许数据库管理员改变这种行为。

到此这篇关于MySQL排序检索数据操作方法梳理的文章就介绍到这了,更多相关MySQL检索数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MYSQL必知必会读书笔记第五章之排序检索数据

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 其实,检索出的数据并不是以纯随机顺序显示的.如果不排序,数据一般将以它底层表现中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能依赖该排序顺序. 在多个列上将序排列 :如果想在多个列上进行将序排列,必须每个列指定DESC关键字

  • mysql根据json字段内容作为查询条件(包括json数组)检索数据

    最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的json数据,遇到想根据里面的json的字段内容作为条件查询的情况 mysql根据json字段的内容检索查询数据 使用 字段->'$.json属性'进行查询条件 使用json_extract函数查询,json_extract(字段,"$.json属性") 根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性'

  • MySQL使用正则表达式去检索指定数据库字段

    目录 使用MySQL正则表达式 基本字符匹配 进行OR匹配 匹配几个字符串之一 匹配范围 匹配特殊字符 匹配字符类 匹配多个实例 定位符 使用MySQL正则表达式 基本字符匹配 例:检索列prod_name 包含文本1000的所有行. SELECT prod_name FROM products WHERE prod_name REGEXP '1000' ORDER BY prod_name; REGEXP告诉MySQL,它后面跟着的是正则表达式. SELECT prod_name FROM p

  • MySQL检索数据操作方法梳理

    目录 前言: 1. select语句-用于检索所有列 2. 注释的使用 前言: 本实验中所用数据库创建SQL代码以及插入数据SQL代码链接: 链接: https://pan.baidu.com/s/17dIyjZ-pCmJlcvLm5UYbmA?pwd=x5bb 提取码: x5bb 本人用来编写运行 SQL 代码的工具是 Navicat ,将 Navicat 转换为命令行模式的方法如下:鼠标右键自己新建的数据库 ,选择命令行界面 1. select语句-用于检索所有列 (1)检索单列 从 Pro

  • 解决MySQL数据库中文模糊检索问题的方法

    在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有a字符存在.本人以前也曾遇到过类似问题,经详细阅读MySQL的Manual,发现可以有一种方法很方便的解决并得到满意的结果. 希望通过"标题"对新闻库进行检索,关键字可能包含是中英文,如下SQL语句: 以下为引用的内容: Code: select id,title,name from achech_com.news where title li

  • Mysql学习之数据库检索语句DQL大全小白篇

    目录 1.简单检索数据 2.排序检索数据 2.1.基本语法 2.2.指定排序方向 3.检索过滤数据 3.1使用简单where子句 3.2组合where子句 3.3使用通配符 4.使用正则表达式检索数据 5.检索计算字段 5.1使用拼接字段 5.2使用别名 5.3执行算数计算 6.使用函数检索数据 6.1常用文本处理函数: 6.2日期和时间处理函数: 6.3数值处理函数: 6.4聚集函数: 7.分组检索数据 7.1.简单分组 7.2过滤分组: 8.使用子查询检索数据 8.1子查询简介 8.2各种子

  • MYSQL必知必会读书笔记第四章之检索数据

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显示的数据会与其他的地方顺序不同.出现这种情况很正常.如果没有明确排序查询结果.则返回的数据没有特殊意义.返回数据的顺序可能是是数据被添加到表中的顺序,也可能不是.只要返回相同数目的行,就是正常. 注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的.同样,

  • MySQL排序检索数据操作方法梳理

    目录 前言 1. 排序数据 2. 按多个列排序 3. 按列位置排序 4. 指定排序方式(升序或者降序) 5. 扩展—文本性数据如何排序 前言 本实验中所用数据库创建SQL语句以及插入数据到数据库中的SQL语句链接: 链接: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y 提取码:4w4y 书接上回说到,MySQL检索数据 本篇文章主要介绍如何使用 select 的 MySQL 语言,根据我们的想要排序检索出的数据. 1. 排序数据

  • MySQL过滤数据操作方法梳理

    目录 前言 1. where 字句的使用 2. where 字句操作符 2.1 检查单个值 2.2 不匹配检查 2.3 范围值检查 2.4 空值检查 3. 扩展 3.1 SQL过滤与应用过滤 3.2 引号的使用 3.3 NULL的特殊性 前言 本实验中所用数据库创建SQL语句以及插入数据到数据库中的SQL语句链接: 链接: https://pan.baidu.com/s/1BnFJrLH41iTXlYKhqPninQ?pwd=u3vs 提取码: u3vs 书接上回说到,排序检索数据 1. whe

  • 88秒插入1000万条数据到MySQL数据库表的操作方法

    我用到的数据库为,mysql数据库5.7版本的 首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_allo

  • MySql恢复数据方法梳理讲解

    目录 一.前言 二.步骤 三.其它笔记 一.前言 mysql具有binlog功能,可以记录对表进行过的操作.执行过的sql语句: 以下主要是总结下binlog的开启方法.使用方法等: 如果误删数据库表中的某些数据.或者误删整个表.误修改表结构等,就可以使用这个方法进行恢复. 二.步骤 1.如果想使用MySql数据恢复功能,首先需要修改Mysql配置文件,开启binlog功能.(有些版本binlog默认是不开启的,因此需要手动修改配置文件开启) (1)windows环境 配置文件名称为my.ini

  • MySQL如何对数据进行排序图文详解

    目录 一. 排序的基本使用 二. 使用列的别名来排序 三. 二级排序 总结 一. 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情况下SQL会按元组添加的顺序来排列查询结果. 在SQL中,使用关键字 ORDER BY... 来进行排序操作.在此关键字后面可以添加关键字 ASC (ascend) 表示升序排列 (从小到大) ,DESC (descend) 表示降序排列 (从大到小) . 如果在 ORDER BY... 关键字后没有添加 ASC 或 DESC 来指明升序还是降序排列,SQL

  • MySQL delete删除数据后释放磁盘空间的操作方法

    目录 一.删除表|清空数据表 二.删除表数据 三.优化表空间 当 MySQL 数据库服务删除部分数据后:有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放.以下是对这种情况的简单说明: 一.删除表|清空数据表 当执行删除数据表或者清空数据表的全部数据操作时,都会释放掉相应的磁盘存储空间. drop table table_name; truncate table table_name; 在MyISAM和InnoDB(innodb_file_per_table)存储引擎中,数

随机推荐