SQL - 过滤数据之Where关键字

1、使用WHERE子句

数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件。

SELECT *
FROM demo
WHERE gender = '0'

分析:这条语句以gender列等于0作为过滤条件,只有gender等于0时,数据才会被检索出来。

2、WHERE子句操作符

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间

注意:如果将值与串类型的列进行比较,则需要限定引号。用来与数值列进行比较的值不用引号。

SELECT *
FROM demo
WHERE id = 0

3、空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。它与字段包含0、空字符串或包含空格的字段不同。SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。

SELECT *
FROM demo
WHERE nickname IS NULL

分析:词条语句会返回nickname列为NULL的行。相反,如果需要返回不为NULL的行,可以使用IS NOT NULL,具体可以自行测试。

4、组合WHERE子句

前面介绍的所有WHERE子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。

4.1 AND操作符
SELECT *
FROM demo
WHERE gender = '0' AND id > 4

分析:这条sql表示查询出gender列为0并且id大于4的行。AND需要两边条件都满足才能被返回。

4.2 OR操作符
SELECT *
FROM demo
WHERE gender = '0' or id < 4

分析:这条sql表示查询出gender列为0或者id小于4的行。OR只需要满足任意一边的条件即可被返回。需要注意的是,如果WHERE子句中有AND,也有OR组合在一起时,AND在计算次序中优先级更高。

5、IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

SELECT *
FROM demo
WHERE id IN (1,2,3)

分析:此条sql会查询出id为1、2、3的行。

6、NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

SELECT *
FROM demo
WHERE id  NOT IN (1,2,3)

分析:此条sql与上面那条sql相反,它会查询出id不为1、2、3的行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值