持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
Express-学习之路 13,mysql-DQL 条件查询
引言
本系列会以我的一个理解,来介绍并开始学习 Express。
中间会插入自己所联系到的 乱七八糟 的 知识点。
介绍
今天继续 mysql 数据库 中的 sql 语句的学习。
DQL
使我们在修改数据时,我们的 where 后面的条件是多个的话,我们如何连接呢?
需要通过 DQL 的条件查询来进行解决。
逻辑运算符
-
如果是 和 运算符,这里使用 and 或者 && 符号,
update xxx set a1=b1,a2=b2 where name = 'xiaoming' and age < 18; -
如果是 或 运算符,这里使用 or 或者 || 来进行
update xxx set a1=b1,a2=b2 where name = 'xiaoming' or name = 'daming'; -
这里如果既有 和 又有 或 的情况下是什么呢?
update xxx set a1=b1,a2=b2 where name = 'xiaoming' or name = 'daming' and age < 18;上面这个语句的结果? 是 选择出 xiaoming 或者 daming,然后年龄小于18 ?
可能与我们预期的结果不一样,因为 and 优先级 大于 or !
-
结果就为 选择出所有的 xiaoming,和 年龄大于18的 daming
如果想要避免此类事情的发生,善于使用()来进行包裹,也有助于提高语句的阅读。
update xxx set a1=b1,a2=b2 where ( name = 'xiaoming' or name = 'daming' ) and age < 18;
-
-
如果语句中有多个 or ,那么使用 in ,会更方便
update xxx set a1=b1,a2=b2 where name = 'xiaoming' or name = 'daming' or name = 'xiaozhang';update xxx set a1=b1,a2=b2 where name in('xiaoming', 'daming', 'xiaozhang'); -
如果是 非 运算符,这里使用 Not 或者 ! 来进行
update xxx set a1=b1,a2=b2 where name != 'xiaoming';选择名字为非 xiaoming 的数据。
-
不等于的运算符为 != 或者是 <>
比较运算符
-
like yyy 模糊匹配
yyy(_匹配单个字符,%匹配任意个字符)
下面这句的意思是,xxx 表里 查找字段 name 的值为两个的字符的。
select * from xxx where name like '__'; -
is null 值为 null
表里面,某个字段里面的值,是 null 的值
select * from xxx where name is null;表里面,某个字段里面的值,是非 null 的话
select * from xxx where name is null;
总结
学习了 mysql 中的 DQL 条件查询。