如何精准获取你想要的数据?——过滤大法好!

本文标识 :MQ0008

本文编辑 :长安月下赏美人儿

编程工具 :MySQL、DBeaver

阅读时长 :5分钟

回忆过去

10月11日,世界镇痛日

世界卫生组织于2000年明确提出“ 慢性疼痛是一类疾病”。

目录

前言

WHERE 过滤查询

LIKE 模糊查询

前言

在现实工作中,不可能每一次的工作需求都是调出全部数据,而是从各个不同的数据库或数据表中调出不同字段的数据,那么如何达到这种精准的数据捕捉,就需要执行过滤查询。

上周,大家共同学习了 SELECT 基础查询,不晓得读者小可爱们是否还记得查询执行顺序这个小知识点。今天,主要同大家分享的就是 WHERE、GROUP

BY,HAVING 等相关指令。

#SELECT查询执行顺序:

SELECT字段N #查询指定字段

FROMtab_name #所要查询数据源

WHERE ...... #执行 WHERE 语句过滤原始数据

GROUP BY ...... #执行 GROUP BY 进行分组

HAVING ...... #执行 HAVING 对分组数据进行操作

ORDER BY...... #执行 ORDER BY 排序

LIMIT......; #执行 LIMIT 选出数据

WHERE 过滤查询

1、WHERE 查询基本语法及用途

用途:WHERE 对查询信息进行限制或过滤,使查询结果更精准。

譬如,一个小学中有 8 个孩子叫张狗蛋,分布在各个年级,如果想找到 3 年 2 班的张狗蛋同学,通过广播高呼“ 3 年 2 班张狗蛋同学,速来广播室”即可,那么“ 3 年 2 班”即为限制条件。

#查询语法:

SELECT* FROMtab_nameWHERE限制条件

#代码示例:

SELECT * FROMdb_order.dabaicai

WHEREpriceBETWEEN64AND200;

数据结果:

2、WHERE 限制条件种类

3、有关 BETWEEN 的坑

有的时候,获取一段区间范围值数据,可以有多种表达形式。譬如,获取学号小于 10086 大于 119 的学员信息,过滤查询语句部分可为

(1)WHERE stu_id 119;

(2)WHERE stu_id BETWEEN120AND10085;

有没有发现一个奇怪的现象?!

对! BETWEEN 的陷阱就是边界值!!!

如果过滤查询语句为

WHEREstu_id BETWEEN119AND10086;

则其获取的信息则为,学院学号大于等于 119,小于等于 10086 的信息。

WHERE 过滤查询小结:

BETWEEN,注意数据边界值

null ,查询时要用 is null 或 is not null

in 与 not in ,无法获取数据值为 null 的信息

LIKE 模糊查询

1、用途及常用指令

LIKE 在这里,并不是喜欢的意思,而是像的意思。

用途:WHERE 查询条件之模糊查询,主要针对包含某些字段的数据进行提取。

常用提取指令:LIKE 'a%b'、LIKE 'a_b'

2、通配符 %

%:表示任意长度的字符串 。

#查询语法:

LIKE'a%b',#即使查询以 a 为开头,b 为结尾任意长度的内容

#例子:查询数据表中,id以 5 为结尾的产品。

#代码示例:

SELECT * FROMdb_order.dabaicai

WHEREidLIKE'%5';

数据结果:

3、通配符 _

_:表示 1 个长度的字符。

#查询语法:

LIKE'a_b',#即使查询以 a 为开头,b 为结尾任意长度的内容

#例子:查询数据表中,以 AB 为开头,以 5 为结尾,长度为5 的信息。

#代码示例:

SELECT * FROMdb_order.dabaicai

WHEREidLIKE'AB__5';

数据结果:

LIKE 模糊查询小结:

% ,位置可以放在前面、后面或中间,'%ORT'、'or%'、'ha%m'等

%,可以匹配 0 个,1 个或多个字符串

%,无法匹配空值

_ , 一个下划线,表示 1 个长度字符,若表示 2 个长度,则__

当不确定字符位数的时候,用 % ,否则可以用 _

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191011A0PT8900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励