数据过滤
WHERE子句
在SELECT
语句中,数据根据WHERE
子句指定的搜索条件进行过滤。
NOTE:在同时使用
ORDER BY
和WHERE
子句时,ORDER BY
应位于WHERE
后,否则会产生错误
e.g.
SELECT
语句从products表中检索两个列,但只返回prod_price大于5的行。
输入
SELECT prod_name, prod_price
FROM products
WHERE prod_price > 5;
输出

WHERE子句操作符
MySQL支持下面表列出的所有条件操作符
操作符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
BETWEEN | 在指定两个值之间 |
空值检查
空值NULL
就是没有值,但0、空字符串或空格并不是空值哦。
SELECT
有特殊的WHERE
子句来检查具有NULL
值的列。
e.g.
下面的语句会返回没有产品价格prod_price的所有产品prod_name。
输入
SELECT prod_name
FROM products
WHERE prod_price IS NULL;
组合WHERE子句
操作符(operator):用来联结或改变WHERE
子句中的子句的关键字
AND操作符
e.g.
SELECT
语句从products表中检索3个列,但只返回vend_id = 'DLL01'并且prod_price小于10的行。
输入
SELECT prod_id, prod_price, prod_name
FROM products
WHERE vend_id = 'DLL01' AND prod_price < 10;
输出

OR操作符
e.g.
SELECT
语句从products表中检索3个列,但只返回vend_id = 'DLL01'或者prod_price小于10的行。
输入
SELECT prod_id, prod_price, prod_name
FROM products
WHERE vend_id = 'DLL01' OR prod_price < 10;
输出

IN操作符
IN
操作符用来指定条件范围。
IN操作符的优点:
IN操作符语法更清楚且直观 IN操作符一般比OR操作符更快 IN最大的优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句
下面直接看例子吧。
e.g.
SELECT
语句从products表中检索供应商vend_id为'DLL01'和 'BRS01'的产品。
输入
SELECT vend_id, prod_id, prod_price, prod_name
FROM products
WHERE vend_id IN ('DLL01', 'BRS01')
ORDER BY vend_id;
输出

NOT操作符
NOT
操作符用于否定它之后所跟的任何条件
e.g.
这个例子可以和上面的做对比。
输入
SELECT vend_id, prod_id, prod_price, prod_name
FROM products
WHERE vend_id NOT IN ('DLL01', 'BRS01')
ORDER BY vend_id;
输出

嗯,这篇就这样吧,BYE-BYE!
往期回顾

文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。