MySQL条件查询——条件运算符、逻辑运算符、模糊查询、安全等于

本文详细介绍了MySQL中的条件查询,包括语法、条件表达式筛选、逻辑表达式筛选和模糊查询(LIKE、BETWEEN AND、IN、IS NULL)。重点讲解了各运算符的用法和示例,如安全等于<=>的优缺点,以及如何处理NULL值的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天喋喋为大家介绍一下条件查询的语法和分类,补充了一些小知识点,欢迎大家来提出宝贵意见~~多多支持噢
这里模糊查询的分类是单独分为like、between and、in、is null,有的地方是将模糊查询(like、between and、in、is null)
和> < 、 = 、 != 、 >= 、 <= 统称为条件运算符~

条件查询:

条件查询:根据条件过滤原始表的数据,查询到想要的数据

一、 语法:

小贴士:这里的①②③表示的是执行顺序~

Select    查询列表(字段、表达式、函数、常量值)        ③
From    表名          ①
(以上是基础查询,这样是查询表中所有行的数据)
若只查询部分行的数据,则需要追加where子句过滤一下
Where   筛选条件        ②

     以上有三个子句,标明执行顺序如下(执行顺序和书写顺序不一致):
     ① 若先执行from表名,即先看当前的库是否有这个表,有则定位到这张表
     ② 筛选,即看哪一行满足要求
     ③ 查询

例如:查询部门表中部门名以A字开头的部门编号和位置编号
在这里插入图片描述
当筛选条件结果成立(ture/false)时,则可过滤出来。否则,反之。(类似于Java中的if)

二、 分类:

1. 按条件表达式筛选

简单条件运算符:
> 、       < 、       = 、      != 、     >=、       <=
例如:查询工资>12000的员工姓、邮箱和经理编号
在这里插入图片描述
例如:查询供应商编号不等于1003的编号和价格
在这里插入图片描述
注:非等    !=(MySQL支持 <>

2. 按逻辑表达式筛选

逻辑运算符:
作用:用于连接条件表达式
例如:查询工资在10000~20000之间的员工名、工资和奖金
在这里插入图片描述

用法
&&ll!Java中推荐使用
andornotMySQL中推荐使用

注:
      and(&&): 如果两个条件同时成立(都为true),则结果为true,反之为false
      or(||):两个条件只要有一个成立,则结果为true,反之为false
      not(!):如果连接的条件本身为false,则结果为true,反之为false

3. 模糊查询

1》like

特点:一般和通配符搭配使用,
通配符:% 代表任意多个字符,包含0个字符;
               _ 代表任意单个字符

例如: 查询名字以Y开头的所有消费者
在这里插入图片描述
注:‘_’ 占一位 ‘%’占多位.其中有三种表示方式:
        ①包含 Y: ‘%Y% ’
        ②第二位为 Y:’_Y% ’
        ③倒数第二位为 Y:’%Y _’

2》 between   and

特点:
       可以提高语句的简洁度;
       包含临界值;
       两个临界值不能调换顺序,虽然不会报错,但效果不一样
例如:查询员工编号在100到120之间的员工编号、员工名和工资
方式(1)
在这里插入图片描述
方式(2)
在这里插入图片描述
注:使用第二种方式, 能够提高语句的简洁度

3》In

含义:用于判断某字段的值是否属于in列表中的某一项
特点:使用in提高语句的简洁度(主要就是简单)
          In列表的值类型必须一致(统一)或者兼容(可以隐式的转化)
          ‘123’可以转化为整形 123
          in里不支持写通配符

例如: 查询编号为’IT_PROT’、 ‘AD_VP’、'AD_PRES’的姓和编号
在这里插入图片描述
以下两种写法比较:
在这里插入图片描述
原因在于: in等价于=, 也就是判断id 是否等于 ‘AD_%’ ,而不是like(模糊查询) ,并不支持like这种写法。

4》is null / is not null

注意:
       =或<> 不能用于判断null值
       is null 或 is not null 可以判断null值

例如(1):查询没奖金的员工名和奖金率
在这里插入图片描述
注意:    这里为empty
原因****在于 :=运算符不能判断null值,此时只能使用is
在这里插入图片描述
例如(2):查询有奖金的员工名和奖金率
在这里插入图片描述

#补充#

安全等于 <=>

在这里插入图片描述
<=> (安全等于)
不仅可以判断null值 ,还可以判断普通类型的值
但是也有弊端:可读性差低

is null   对比      <=>
is null:仅仅可以判断null值,可读性较高,建议使用
<=> :既可以判断null值,又可以判断普通的数值,可读性低

条件查询案例解析:
查询员工号为176的员工的姓名和部门号和年薪
忽略的问题:null
在这里插入图片描述
如果这样写,出现一个问题——null值

解决办法:ifnull
如果奖金本身为空,那么将其值写为0
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值