MySQL必知必会——过滤数据

Hello

一. 基础过滤

“基础过滤”包括以下内容:

  1. 面向已知值,进行过滤
  2. WHERE操作符的使用
  3. 非组合过滤、组合过滤
  • SQL关键词

WHERE:表示过滤条件

// 基础语法
SELECT field FROM tb WHERE condition;

要点:
1.面向被检索的所有数据(并非对查询结果进行过滤)。
2.可以根据非检索列进行过滤(建议实践)。
2.SQL过滤比起应用程序过滤,具有高效、可伸缩性以及节省网络带宽的优点。
  • 比较操作符表
    在这里插入图片描述
  • 非组合过滤

特殊关键词:BETWEEN AND、IS NULL、NOT、IN

// 区间过滤
SELECT field FROM tb WHERE field BETWEEN 0 AND 100;

// NULL值过滤
SELECT field FROM tb WHERE field IS NULL;
要点:
1.NULL值只能通过IS NULL匹配
2.NULL值只能通过NOT NULL不匹配

// 列表过滤
SELECT field FROM tb WHERE field IN (v1, v2...);
要点:
1.符合值列表中的任意一个值,都符合条件
2.IN最大的优点,是可以使用其他查询语句的结果

// 否定过滤
SELECT field FROM tb WHERE field NOT IN(v1, v2...);
要点:
1.NOT对后跟条件进行否定,语义为“非”

  • 组合过滤

“组合过滤”:连接多个过滤条件
关键词:AND、OR

// “和”条件
SELECT field FROM tb WHERE condition1 AND condition2...;

// “或”条件
SELECT field FROM tb WHERE condition1 OR condition2...;

要点:
1.ANDOR可以连接任意个过滤条件。
2.AND的计算优先级比OR高。在结合多个条件时,可以使用括号包裹组合,确保不会因为默认优先级导致查询异常。

二. 模糊过滤

“模糊过滤”包括以下内容:

  1. 面向模式,进行过滤
  2. 通配符、模式介绍
  3. LIKE操作符的使用
  • 通配符

“通配符”:用来匹配值的一部分的特殊字符
数量限制:任意个
位置限制:任意位置

通配符说明
%代表0个或多个任意字符
_代表1个任意字符
要点:
1.通配符不能匹配NULL
  • 模式

由字面值、通配符或两者组合构成的搜索条件。

  • SQL关键词

LIKE:表示使用某种模式查找

SELECT field FROM tb WHERE field LIKE pattern;
要点:
1.整个列值与模式匹配,才会被返回。
2.除非必要,否则不要把通配符用在搜索模式的开始处,这样的搜索是最慢的。

三. 正则表达式过滤

“正则表达式过滤”包括以下内容:

  1. 面向模式,进行过滤
  2. 应用场景
  3. 正则表达式元字符表
  4. REGEXP操作符的使用
  • 应用场景

“通配符模式”只能用于搜索结构简单的文本,对于复杂组合无能为力。正则表达式能够扩展模式,更细腻的控制模式结构。

  • 元字符表
元字符说明
|
.匹配任意1个字符
[ ]匹配集合中的任意1个
[^ ]不匹配集合中的任意1个
[0-9]匹配0到9之间的任意1个数字
[a-z]匹配a-z之间的任意1个字母
\\匹配特殊字符

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • SQL关键词

REGEXP:表示应用正则表达式

// 不区分大小写
SELECT field FROM tb WHERE field REGEXP pattern; 
注意:
这里笔者测了是区分大小写的(Ver 8.0.18// 强制区分大小写
SELECT field FROM tb WHERE field REGEXP BINARY pattern;

要点:
1.没有特别指定,只要列值的一部分与正则表达式相匹配,就会被返回。

Bye

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值