程序员书籍笔记 程序员书籍笔记
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • 数据库

    • MySQL必知必会

      • 数据检索、排序、过滤
        • 数据检索
          • 检索不同行数据
          • 限制数据大小
        • 排序检索数据
          • 数据排序
          • 多列排序
        • 数据过滤
          • AND和OR
          • IN操作符
          • NOT操作符
        • 使用通配符来过滤
          • LIKE操作符
        • 使用正则表达式来搜索
          • 基本字符匹配
      • 数据处理、汇总、分组
      • 子查询、连表、组合
      • 全文本搜索、插入
      • 更新、删除、表操作
      • 视图、存储过程、游标
      • 触发器、事务
      • 全球化、安全、维护
    • MongoDB权威指南

  • 容器

  • 微服务

  • 消息队列

  • 搜索引擎

  • 大数据

  • 框架和软件
  • 数据库
  • MySQL必知必会
小游
2021-05-07

数据检索、排序、过滤

# 数据检索

# 检索不同行数据

select可以返回所有匹配的行,但有的情况下,我们想让每个值只出现一次,我们可以使用DISTINCT关键字

image-20210507213644989

使用DISTINCT关键字后,可以看到返回的值没有重复情况

image-20210507213739500

# 限制数据大小

我们可以使用limit来限制数据的大小,比如我们只需要一条数据

SELECT DISTINCT shareID FROM `comment` LIMIT 1
1

limit支持两个参数,第一个是开始的行数,第二个是显示多少行,比如我们只需要从第二行开始,检索两条数据(注意第一条是0)

SELECT DISTINCT shareID FROM `comment` LIMIT 1,2
1

# 排序检索数据

# 数据排序

使用 order by 来对数据进行排序。

image-20210507214531359

默认是升序,如果想降序,那么使用desc:

SELECT DISTINCT shareID FROM `comment` ORDER BY shareID DESC
1

# 多列排序

有这样一种情况,比如成绩排名的时候,如果总成绩相等,那么数学更高的排在最前面该怎么实现?我们可以使用多列排序

image-20210507215028310

多列排序后,效果如下

image-20210507215105625

直到不同列的顺序可以使用下面这个语句(这里为了方便对比,给第一列加上ASC,实际上不需要)

SELECT shareID,userID FROM `comment` WHERE shareID = 2 ORDER BY shareID ASC,userID DESC
1

image-20210507215211455

# 数据过滤

使用where字句来进行数据过滤,where字句的操作符如下

image-20210507215445755

SELECT shareID,userID FROM `comment` WHERE shareID BETWEEN 2 AND 4
1

我们这里查询shareID在2-4范围之间的数据

image-20210507220022558

# AND和OR

AND在计算次序中优先级更高。可能会错误组合,所以为了避免这个问题,我们需要加上括号

# IN操作符

检索id为2,4,5的所有结果

SELECT * FROM `comment` WHERE shareID IN (2,4,5)
1

image-20210508200932328

# NOT操作符

SELECT * FROM `comment` WHERE shareID NOT IN (2,4,5)
1

这个符号只有一个功能:就是否定后面所有的条件

image-20210508201104397

# 使用通配符来过滤

# LIKE操作符

SELECT * FROM `comment` WHERE content LIKE '%一%'
1

image-20210508201247405

% 表示出现任意次数,_ 只匹配单个字符

# 使用正则表达式来搜索

# 基本字符匹配

SELECT * FROM `comment` WHERE content REGEXP '[0-9]+'
1

image-20210508201703162

like和正则的区别

like是匹配整个列值,只有当开头和结尾都满足时才返回,而REGEXP只要匹配就会返回值,就像上面这个一样,如果需要匹配特殊字符比如 . 我们可以使用 \\ 来进行匹配

SELECT * FROM `comment` WHERE content REGEXP '\\.'
1

一些特殊的元字符

image-20210508202426792

其他部分主要是正则的运用,这里就不说了

编辑 (opens new window)
上次更新: 2021/05/11, 19:39:39
数据处理、汇总、分组

数据处理、汇总、分组→

Theme by Vdoing | Copyright © 2021-2021 小游
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式