开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情
一、前言
大家好,今天文章的内容是:
- 【使用
where子句指定搜索条件。】
二、内容
2.1、WHERE 子句
数据库中的表一般会包含大量的数据,通常来说,我们会根据需求来将表中查询到的数据进行过滤,从而提取返回结果的一个子集。像这种需求就可以使用 WHERE 子句来完成。
也就是说,在 SELECT 语句中,数据根据 WHERE 子句中指定的搜索条件进行过滤,WHERE 子句在表名(FROM子句)之后给出。
备注:
WHERE子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
2.2、语法
下面是 WHERE 子句的语法:
SELECT
字段1, 字段2,...字段N
FROM
表
WHERE
条件1 [AND [OR]] 条件2 ...
解析如下:
- 上述语句我们使用了
WHERE子句来设置数据过滤条件 - 你可以在 WHERE 子句中指定任何条件。
- 我们可以指定多个条件,各个条件之间用 AND 或者 OR 隔开
- 另外需要注意,WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令
这里举一个例子:
SELECT
P_name, p_price
FROM
products
WHERE
p_price = 100;
上述语句从 product 表中检索两个列,并根据搜索条件 p_price = 100 进行数据过滤,最后只返回 p_price 值为 100 的行。
备注:
如果同时使用
ORDER BY子句和WHERE子句,那么应该让ORDER BY子句位于WHERE子句之后,否则将产生错误。
2.3、条件操作符
在前面 WHERE 子句的例子中,我们使用了条件操作符=。
下面给出 MySQL 的条件操作符:
=:等于<>:不等于!=:不等于<:小于>:大于<=:小于等于>=:大于等于BETWEEN:在指定的两个值之间
这里再举几个使用 WHERE 子句的例子。
- 返回品牌名为 HUAWEI 的行:
SELECT
p_brand, p_name, p_price
FROM
products
WHERE
p_brand = 'HUAWEI';
- 返回品牌名不是 HUAWEI 的行:
SELECT
p_brand, p_name, p_price
FROM
products
WHERE
p_brand <> 'HUAWEI';
-- 当然也可以使用 != 来代替 <>
- 返回价格小于 100 的所有行:
SELECT
p_name, p_price
FROM
products
WHERE
p_price < 100;
- 返回价格在 20 和 100 之间的所有行:
SELECT
p_name, p_price
FROM
products
WHERE
p_price BETWEEN 20 AND 100;
-- BETWEEN匹配范围中的所有值,并且包括指定的开始值和结束值
2.4、空值检查
在创建表时,表设计人员可以指定其中的列是否可以不包含值。如果一个列不包含值时,称其为包含空值
NULL
我们可以通过WHERE子句来检查表中是否具有 NULL 值的列。
举个例子,下面语句用于检索学生表中的 stu_id 列包含 NULL 值的所有行。
SELECT
stu_name
FROM
students
WHERE
stu_id IS NULL;
三、后话
好了,今天的文章内容就到这里,感谢观看。