avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第六章 过滤数据
文章

第六章 过滤数据

发表于 2021-06-27 更新于 2026-06- 10
作者 Administrator
11~15 分钟 阅读

WHERE子句指定搜索条件

  • 使用WHERE子句
    • SQL过滤与应用过滤
    • WHERE子句位置
  • WHERE子句操作符
    • 检查单个值
      • =
      • >
      • >=
      • 不匹配检查 <> !=
    • 范围值检查 < > 、 <= 、 >= 、 BETWEEN AND
      • BETWEEN AND
    • 空值检查
      • null
      • null与不匹配

使用WHERE子句

根据特定操作或报告的需要提取表数据的子集,指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)
数据根据WHERE子句中指定的搜索条件进行过滤

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	prod_price = 2.50;

image.png
其检查一个列是否具有指定的值,据此进行过滤

SQL过滤与应用过滤

  • 应用过滤的坏处
    1.让应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。
    2.服务器不得不通过网络发送多余的数据,导致网络带宽的浪费

WHERE子句位置

ORDER BY位于WHERE之后

WHERE子句操作符

MySQL除了支持相等=还支持一下操作符

  • <> 不等于
  • != 不等于
  • < 小于
  • <= 小于等于
  • (> 大于)
  • (>= 大于等于)
  • BETWEEN 在指定的两个值之间

检查单个值

MySQL在执行匹配时默认不区分大小写

=

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	prod_name = "fuses";

image.png
因为不区分大小写,虽然name为"fuses",但仍然可以检索出Fuses与其匹配

>

列出价格小于10美元的所有产品

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	prod_price < 10;

image.png

>=

列出价格小于等于10美元的所有产品

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	prod_price <= 10;

image.png

不匹配检查 <> !=

<>等价于!=
列出不是由供应商1003制造的所有产品

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	vend_id <> 1003;

image.png

范围值检查 < > 、 <= 、 >= 、 BETWEEN AND

BETWEEN AND

需要两个值,范围的开始值和结束值。匹配范围中所有的值,包括指定的开始值和结束值
检索价格在5美元和10美元的产品

SELECT
	prod_name,
	prod_price 
FROM
	products 
WHERE
	prod_price BETWEEN 5 
	AND 10;

image.png

空值检查

创建表时,可以指定其中的列是否可以不包含值,在一个列不包含值,称其为包含空值null

null

其与0、空字符串、空格不同
SELECT语句的WHERE有个特殊子句,可以用来检查具有null值的列,为IS NULL为null值或IS NOT NULL为非null值
搜索没有email的客户id

SELECT
	cust_id 
FROM
	customers 
WHERE
	cust_email IS NULL;

image.png

null与不匹配

因为null值具有特殊含义,如果某个键含有null值,不管过滤条件怎样都不会返回有null的值的行
对应到customers表中即如果以cust_email作为搜索条件,不管条件怎样都不会返回有null值的该行
image.png

MySQL必知必会
SQL
许可协议: 
分享

相关文章

7月 6, 2021

第二十九章 数据库维护

7月 6, 2021

第二十八章 安全管理

确保数据的安全和完整需要利用访问控制访问控制root账户不要使用root管理用户创建用户账号简单创建一个新用户账号使用GRANT或INSERT创建重命名用户账号删除用户账号设置访问权限访问控制用户需要对其数据具有适当的访问权,既不能过多,也不能过少,例如多数用户需要对表进行读写,少数用户需要创建和删

7月 6, 2021

第二十七章 全球化和本地化

MySQL处理不同字符集和语言的基础知识字符集和校对顺序校对的重要性使用字符集和校对顺序字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法字符集:字母和符号的集合编码:某个字符集成员的

下一篇

第七章 数据过滤

上一篇

第五章 排序检索数据

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy