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。

 

posted @ 2020-11-16 21:24  棉花糖88  阅读(110)  评论(0)    收藏  举报