MySQL过滤检索

SQL语句中过滤条件(filter condition)的关键字是WHERE,跟在表名后面。

1. WHERE语句操作符

不同数据库管理系统,其支持的操作符略有不同。

操作符说明
=等于
>大于
<小于
!=不等于
<>不等于
>=大于等于
<=小于等于
!<不小于
!>不大于
BETWEEN在中间
IS NULL为空

2. 单条件过滤 WHERE

SELECT * FROM student WHERE name = 'user1'
  • 输出结果:

    1	user1	18	大一新生
    

3. 多条件过滤 ANDOR

使用 AND 或 OR 子句:

  • AND连接表达式表示过滤条件都为真的数据;
  • OR连接表达式表示匹配过滤条件任意一个

AND示例:

SELECT * FROM student WHERE age >= 18 AND age <= 23;
  • 条件:学生年龄大于等于18 并且 学生年龄小于 23

  • 执行结果:

  • 1	user1	18	大一新生
    2	user2	20	毕业生
    

OR示例:

SELECT * FROM student WHERE age >= 18 OR age <= 23;
  • 条件:学生年龄大于等于18 或 学生年龄小于 23

ANDOR示例:

SELECT * FROM student WHERE age >= 18 AND (age <= '23' OR id >= 2);
  • 使用ORAND时应明确过滤条件,用小括号括起来,因为数据库管理系统按顺序执行,不用括号括起来很容易造成语义错误;

  • 过滤条件:查询年龄大于18 并且 (年龄大于等于23或id大于等于2) 的数据

  • 查询结果:

    1	user1	18	大一新生
    2	user2	20	毕业生
    3	user3	27	社会人士

4. 范围查询 BETWEEN

SELECT * FROM student WHERE age BETWEEN 18 AND 23
  • 查询年龄在18到23之间的(包含18和23)

  • 查询结果:

    1	user1	18	大一新生
    2	user2	20	毕业生

5. 空值查询 IS NULL

SELECT * FROM student WHERE age IS NULL
  • 数据库表不填充数据默认为空(NULL),当然也可给指定类型的列设置默认值

  • 过滤条件:查询年龄为空的数据

  • 查询结果(因为insert的数据age都有值,所以返回为空):

6. IN操作

SELECT * FROM student WHERE age IN (18,20,27);
  • 查询条件:年龄在 18 或 20 或 27 的数据

  • IN是范围查询,匹配小括号中指定的任意值,功能跟OR类似,一个IN相当于好多个OR

  • 查询结果:

    1	user1	18	大一新生
    2	user2	20	毕业生
    3	user3	27	社会人士
    

7. NOT操作符

SELECT * FROM student WHERE NOT age = 20;
  • NOT操作符表示否定,跟在WHERE后面,功能类似<>

  • 查询结果:

    1	user1	18	大一新生
    3	user3	27	社会人士
    4	user4	17	高三学子
    5	user4	17	高三学子
    

NOTIN的查询:

SELECT * FROM student WHERE NOT age IN (20, 27);

  • 查询条件:年龄不在 20 或 27 中的数据

  • 执行结果:

    1	user1	18	大一新生
    4	user4	17	高三学子
    5	user4	17	高三学子
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值