【MySQL】(基础篇六) —— 过滤数据

过滤数据

本文将讲授如何使用SELECT语句的WHERE子句指定搜索条件。

WHERE子句

数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition )。

在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,如下所示:

【示例】找出employees表中员工id为100的员工的所有信息

SELECT *
FROM `employees`
WHERE employee_id = 100;

运行结果:
在这里插入图片描述

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

在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误,后面还会学习其它的子句,在全部学完之后,我会总结一下每个子句的先后顺序。

WHERE子句操作符

上面例子中,我们使用等号对条件进行相等比较,where子句还为我们提供了其它的操作符,让我们能够更加灵活地操作筛选的条件。下表给出这些操作符以及对应的含义

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN A AND B在 A 和 B 之间

【示例】找出employees表中部门id(department_id)小于等于40的所有员工数据

SELECT *
FROM `employees`
WHERE department_id <= 40;

运行结果:

在这里插入图片描述

【示例】找出employees表中job_id不是ST_CLERK的所有员工数据

SELECT *
FROM `employees`
WHERE job_id != 'st_clerk';

如果匹配的是字符串类型,则需要加引号,单引号和双引号都可以

<>!= 都可以表示‘不等于’,我更习惯使用!= ,因为在其他的一些语言中(Java,python)中,它也表示不等于。

【示例】找出employees表中员工id在100和110之间的员工的所有信息

SELECT *
FROM `employees`
WHERE employee_id BETWEEN 100 AND 110;

运行结果:

在这里插入图片描述

空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。

NULL: 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。其用法如下:

【示例】查询employees表中manager_id 为 NULL的条目信息

SELECT *
FROM `employees`
WHERE manager_id IS NULL;

运行结果:
在这里插入图片描述

IS NOT NULL则可以实现相反的效果,NOT操作符的具体含义,我会在下面讲解

组合子句

为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。

AND操作符

为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。

【示例】查找employees表中first_name为David且last_name为Austin的条目信息

SELECT *
FROM `employees`
WHERE first_name = 'david' AND last_name = 'austin';

运行结果:

在这里插入图片描述

OR操作符

OR操作符指示MySQL检索匹配任一条件的行。

【示例】查找employees表中first_name为David或first_name为John的条目信息

SELECT *
FROM `employees`
WHERE first_name = 'david' OR first_name = 'john';

运行结果:

在这里插入图片描述

计算次序

WHERE可包含任意数目的AND和OR操作符。允许两者结合以进行复杂和高级的过滤。但是,组合AND和OR带来了一个的问题。SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。换句话说,由于AND在计算次序中优先级更高,写多个操作符的话可能会被错误地组合了。

此问题的解决方法是使用圆括号明确地分组相应的操作符。

【示例】查找employees表中first_name为David或John,且salary大于9000的条目信息

SELECT *
FROM `employees`
WHERE (first_name = 'david' OR first_name = 'john') AND salary > 9000;

运行结果:

在这里插入图片描述

IN操作符

圆括号在WHERE子句中还有另外一种用法。IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

【示例】查找employees表中salary为2200,2400和3300的条目信息

SELECT *
FROM `employees`
WHERE salary IN (2200,2400,3300);

运行结果;

在这里插入图片描述

IN操作符和OR连接多个子句的功能类似,但选择使用它的优点如下:

  • 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
  • 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
  • IN操作符一般比OR操作符清单执行更快。
  • IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。后续文章将对此进行详细介绍。

NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

【示例】查找employees表中commission_pct字段不为空的条目信息

SELECT *
FROM `employees`
WHERE commission_pct IS NOT NULL;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独孤思维:做副业,万物皆可成为素材

01 分享一个独孤日更的素材来源。 很多小伙伴&#xff0c;刚开始写自媒体&#xff0c;都喜欢一本正经的阅读书籍&#xff0c;文章。 把素材来源&#xff0c;灵感来源&#xff0c;全部押注在这个地方。 其实万物皆可成为素材。 比如昨天早上&#xff0c;独孤参加公司的会议…

代码随想录算法训练营第36期DAY56

DAY56 套磁很顺利&#xff0c;发现又有书读了&#xff01; 300最长递增子序列 朴素法&#xff0c;这个好想&#xff0c;但是不对&#xff0c;比如 0 1 0 3 2 3 我的算法会找出0 1 3作为答案&#xff0c;而不是0 1 2 3 可以看出&#xff0c;后面的状态依赖于前面的状态&am…

zero shot,few shot以及无监督学习之间的关系是什么

Zero-shot learning、few-shot learning和无监督学习都是机器学习中的方法&#xff0c;它们共同的特点是在有限或没有标签数据的情况下进行学习。下面是这三种方法之间的关系和区别&#xff1a; Zero-shot Learning (零样本学习)&#xff1a; 零样本学习是在模型训练过程中完全…

中介子方程十

X$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpX$XyXtXkXrXiXαX$XiXαXyXEX$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpX$XyXtXkXrXiXαX$XiXαXyXEX$XαXηXtXαX$XWXyX$XyXWX$XpXαXqXηX$XeXαXhX$XdX$XpX$XdX$XyXeXαX$XEXyXαXiX$XαXiXrXkXtXyX$XpX$XyXtXkXrXiXαX$XiXαXyXEX$XαXeXyX$Xd…

Facebook革新:数字社交的下一个阶段

在数字化时代&#xff0c;社交网络已经成为人们生活中不可或缺的一部分。作为全球最大的社交网络平台之一&#xff0c;Facebook一直在不断创新&#xff0c;引领着数字社交的发展。然而&#xff0c;随着科技的不断进步和社交需求的变化&#xff0c;Facebook正在走向一个新的阶段…

Gitte的使用(Windows/Linux)

Gitte的使用&#xff08;Windows/Linux&#xff09; 一、Windows上使用Gitte1.下载程序2.在Gitte上创建远程仓库3.连接远程仓库4.推送文件到远程仓库 二、Linux上使用Gitte1.第一次从仓库上传1.1生成公钥1.2配置SSH公钥1.3新建一个仓库1.4配置用户名和邮箱在Linux中1.5创建仓库…

python字典应用

""" 字典应用 字典中保存了股票信息&#xff0c;完成下面的操作 1.找出股票价格大于100元的股票并创建一个新的字典 2、找出价格最高和最低的股票对应的股票代码 3.按照股票价格从高到低给股票代码排序 """stocks {AAPL: 191.88,G00G: 1186.96,…

强烈推荐 Setapp 上的 Mac 优质软件

Setapp 一款专为 macOS 设计的软件订阅平台&#xff0c;目前提供高达 240 款精心筛选的高品质应用程序&#xff0c;只需每月 9.9 美元的订阅费&#xff0c;即可畅享所有正版软件的使用权。让使用者无忧享受正版软件的稳定性和安全性&#xff0c;彻底告别盗版软件可能引发的风险…

Linux学习问题

遇到的第一个问题&#xff0c;FinalShell连接Centos7后&#xff0c;就连不上网&#xff0c;Centos7联网后就连不上FinalShell 解决方法&#xff0c;虚拟网卡上的ip地址不能和虚拟机ip地址一样 从这得到的解决方法

【C++11】常见的c++11新特性(一)

文章目录 1. C11 简介2. 常见的c11特性3.统一的列表初始化3.1initializer_list 4. decltype与auto4.1decltype与auto的区别 5.nullptr6.右值引用和移动语义6.1左值和右值6.1.1左值的特点6.1.2右值的特点6.1.3右值的进一步分类 6.2左值引用和右值引用以及区别6.2.1左值引用6.2.2…

ELK组件

资源列表 操作系统 IP 主机名 Centos7 192.168.10.51 node1 Centos7 192.168.10.52 node2 部署ELK日志分析系统 时间同步 chronyc sources -v 添加hosts解析 cat >> /etc/hosts << EOF 192.168.10.51 node1 192.168.10.52 node2 EOF 部署Elasticsea…

开源VisualFreebasic中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序

吴涛老矣&#xff0c;社区苦无64位易语言&#xff0c;用注入DLL增强菜单&#xff0c;做成VS一样的界面 终归是治标不治本&#xff0c;一来会报毒&#xff0c;二来闭源20年没更新了 开源的VB7&#xff0c;欢迎易语言的铁粉进群&#xff1a;1032313876 【Freebasic编程语言】编绎…

Java数据结构与算法(leetcode热题881. 救生艇)

前言 救生艇属于贪心算法&#xff0c;解题之前条件一定要归纳好。题目中存在3个要求&#xff1a; 1.一艘船最多坐2人 2.船数要求最小 3.每艘船重量小于limit 意味着体重较轻的两人可以同乘一艘救生艇。 . - 力扣&#xff08;LeetCode&#xff09; 实现原理 1.重量大的有…

机器学习-14-重温经典的用户流失数据挖掘竞赛(实战)

PYTHON用户流失数据挖掘 用户流失预测案例分析 旅游平台用户流失预测 客户流失及用户画像分析 参考和鲸社区的赛题及数据集下载链接地址 1 收集数据 一、项目介绍 携程作为中国领先的综合性旅行服务公司,每天向超过2.5亿会员提供全方位的旅行服务,在这海量的网站访问量中,…

【设计模式深度剖析】【4】【行为型】【策略模式】

&#x1f448;️上一篇:职责链模式 设计模式-专栏&#x1f448;️ 文章目录 策略模式定义英文原话直译 角色类图策略接口Strategy&#xff1a;具体策略类上下文类Context测试类 策略模式的应用策略模式的优点策略模式的缺点策略模式的使用场景 策略模式 策略模式&#xff08…

33、matlab矩阵分解汇总:LU矩阵分解、Cholesky分解和QR分解

1、LU矩阵分解 语法 语法1&#xff1a;[L,U] lu(A) 将满矩阵或稀疏矩阵 A 分解为一个上三角矩阵 U 和一个经过置换的下三角矩阵 L&#xff0c;使得 A L*U。 语法2&#xff1a;[L,U,P] lu(A) 还返回一个置换矩阵 P&#xff0c;并满足 A P*L*U。 语法3&#xff1a;[L,U,P] …

Java--递归

1.递归就是A方法调用A方法&#xff0c;也就是调用自己本身 2.利用递归可以用简单的程序来解决一些复杂的问题&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#xff0c;递归策略只需少量的程序就可描述出解题过程所需要的多次重复…

Position定位

Position定位 CSS中position属性是比较常用的元素定位方案&#xff0c;position常用的取值有static、relative、absolute、fixed、sticky、inherit。 static static属性是HTML元素的默认值&#xff0c;即没有定位&#xff0c;遵循正常的文档流对象&#xff0c;对于top、bott…

【Python入门与进阶】常见问题与解决方法

1.Anaconda包管理 使用pip卸载包时&#xff0c;报错“无法访问’&#xff0c;在conda环境下进行pip install时&#xff0c;出现拒绝访问的错误 [WinError 5] 2.Jupyter问题 笔记本运行时无反应/文件无法重命名&#xff1a;【Python】Jupyter Notebook无法运行代码&#xff0c…

FENCE.I指令

FENCE.I指令 一、FENCE.I指令简介二、FENCE.I指令举例三、FENCE.I指令格式一、FENCE.I指令简介 FENCE.I 是 RISC-V 指令集架构中的一种 Fence 指令,用于同步指令缓存(Instruction Cache),用于保证内存操作的正确性和顺序性。具体来说,FENCE.I指令可以确保之前发出的所有对…