where 条件字句
搜索条件可由一个或多个逻辑表达式组成 , 结果一般为布尔值
逻辑运算符
运算符 |
语法 |
描述 |
and && |
a and b a && b |
逻辑与 两个为真, 结果为真 |
or || |
a or b a || b |
逻辑或 一个为真, 结果为真 |
not ! |
not a !a |
逻辑非 真为假, 假为真 |
-- ========== where ============
SELECt `name`,`sex` FROM student
-- 查询 name 数值在 95 ~ 100 之间的
SELECt `NAMe`, `address` FROM student WHERe `NAME` >= 95 AND `NAME`<= 100
-- and &&
SELECt `NAMe`, `address` FROM student WHERe `NAME` >= 95 && `NAME` <= 100
-- between and (区间)
SELECt `name`,`address` FROM student WHERe `name` BETWEEN 95 AND 100
-- 查询name 不等于 1 的同学
SELECt `NAMe`, `address` FROM student WHERe `NAME` != 1 AND `NAME` < 10
-- not
SELECt `NAMe`, `address` FROM student WHERe NOT `NAME` = 100 AND `NAME` > 90
模糊查询: 比较运算符
运算符 |
语法 |
描述 |
is null |
a is null |
如果a为null, 结果为真 |
is not null |
a is not null |
如果a不为null, 结果为真 |
between and |
3 between 1 and 5 |
如果 3 在 1 和 5 之间, 结果为真 |
Like |
a like b |
sql匹配, 如果a匹配b, 结果为真 |
In |
a in (abcd, pdosa, …) |
若 a 在 (abcd, pdosa, …) 中, 结果为真 |
-- ========== 模糊查询 ============
-- 查询 姓张的 like 结合 %(代表0到任意个字符) _(代表一个字符)
SELECt `name` FROM student WHERe `name` LIKE '张%'
-- 查询 姓张的 后面只有一个字的
SELECt `name` FROM student WHERe `name` LIKE '张_'
-- 查询 姓张的 后面有两个字的
SELECt `name` FROM student WHERe `name` LIKE '张__'
-- 查询 名字中有张字的
SELECt `name` FROM student WHERe `name` LIKE '%张%'
-- ==== in 具体的一个或多个值 ====
-- 查询 1,2,3 号同学
SELECt `id`,`name` FROM student WHERe `id` IN (1,2,3)
-- 查询 北京 的同学
SELECt `id`,`name`,`address` FROM student WHERe `address` IN ('北京')
-- ==== null , not null ====
-- 查询地址为空或者null的
SELECt `name`,`address` FROM student WHERe `address`='' OR `address` IS NULL
-- 查询有日期的 不为空的
SELECt `name`,`address`,`birthday` FROM student WHERe `birthday` IS NOT NULL
-- 查询没有日期的 为空的
SELECt `name`,`address`,`birthday` FROM student WHERe `birthday` IS NULL