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的行。
|