4、条件查询
条件查询 where
select 03
字段1,字段2,....
from 01
表名
where 02
条件;
执行顺序:先执行 from 再执行 where 最后执行 select。
一 比较运算符
//找出年龄大于40并且小于60的英雄
SELECT * FROM hero where age>40 and age<60;//1 and写法
SELECT * FROM hero WHERE age BETWEEN 40 AND 60; //2 between and 写法 (包头又包尾)
between and 注意点:一定是左小右大
二 逻辑运算符查询
1)与 and = 区间查询 between and
SELECT * FROM hero WHERE age>30 and sex='男';//and书写 适和多个不同的字段
secect * from hero where age between 30 and 50;//bewween and 是闭区间。适和一个字段区间值 也可以用在字符上
什么是闭区间
闭区间是直线上的连通的闭集,是直线上介于固定两点间的所有点的集合(包括给定的两点),用[a,b]来表示(包含两个端点a和b)(且a<b)。由于它是有界闭集,所以它是紧致的。
2)或 or = in
SELECT * FROM hero WHERE age=44 or age=62 or age=65; //or格式书写 or适合多个字段
SELECT * FROM hero WHERE age in(44,62,65);//in格式书写 in适合一个字段多个值
in里面是具体值 不是区间 一定不能搞错了
3)非 not in
SELECT * FROM hero where age not in(30);//出去括号里面的 其他数据都返回
三 模糊查询 like
操作符 LIKE 就是声明后面的SQL是通配符查询,而不是等号查询。
通配符
1)%:0个或多个字符(任意个字符)
2)_:一个字符(下划线)
1)% 通配符
SELECT * FROM hero WHERE name LIKE '张飞%'; //1 匹配张飞开头的 SELECT * FROM hero WHERE name LIKE '%张飞'; //2 匹配张飞结尾的 SELECT * FROM hero WHERE name LIKE '%张飞%';//3 匹配包含张飞的
2)_ 通配符(下划线)
SELECT * FROM hero where name LIKE '_张飞'; //匹配到 猛张飞 SELECT * FEOM hero WHERE name LIKE '张飞_'; //匹配到 张飞猛
SELECT * FROM hero WHERE name LIKE '__张飞'; //匹配到 你好张飞 SELECT * FROM hero WHERE name LIKE '张飞__'; //匹配到 张飞你好
3)没有用通配符
//这两句SQL是 画等于号的
select * from hero where name like '张飞';
select * from hero where name = '张飞';
//只能匹配'张飞'这样的数据,其他的匹配不到
小技巧:1、通配符的使用会减低效率 2、通配符不会匹配到NULL 3、其他语句可以实现的效果,尽量不适用统配符
4)转义的使用
//找出名字中有下划线的 select name from hero where like '%\_%;//这里用里转义符
四 其他小知识点:
1)and 和 or 的优先级
select * from 表名 where 工资>3000 and (岗位编号=20 or 岗位编号=30);
优先级不确定,用小括号解决,括号里面的优先级最高
2)is null 空的判断
//找出那些英雄的年龄为NULL select * from hero age is null; //正确 select * from hero age = null; //错误
在数据库中NULL不是一个值,就是空,啥也没有。是空,而不是空值,不能用等号衡量。必须使用 is null 或者 is not null。

浙公网安备 33010602011771号