【四】过滤数据 WHERE子句

使用WHERE子句

在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出。

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;

注意:WHERE子句的位置 在同时使用 ORDER BY 和 WHERE 子句时,应该让 ORDER BY 位于 WHERE 之后,否则将会产生错误


WHERE子句操作符

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

注意:操作符兼容 某些操作符是冗余的(如< >与!=相同,!<相当于>=)。并非所有DBMS都支持这些操作符。想确定你的DBMS支持哪些操作符,请参阅相应的文档。

 

检查单个值

列出所有价格小于等于10美元的产品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price <= 10;

不匹配检查

列出所有不是供应商DLL01制造的产品:

SELECT vend_id, prod_name
FROM Products
WHERE vend_id <> 'DLL01';

提示:何时使用引号 如果仔细观察上述WHERE子句中的条件,会看到有的值括在单引号内,而有的值未括起来。单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号。 

范围值检查

列出价格在5美元和10美元之间的所有产品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price 
BETWEEN 5 AND 10;

空值检查

NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。

列出所有没有价格(空prod_price字段,不是价格为0)的产品:

SELECT prod_name
FROM Products
WHERE prod_price IS NULL;

 

1. 编写SQL语句,从Products表中检索产品ID(prod_id)和产品名称(prod_name),只返回价格为9.49美元的产品。

SELECT prod_id, prod_name 
FROM Products 
WHERE prod_price = 9.49;

2. 编写SQL语句,从Products表中检索产品ID(prod_id)和产品名称(prod_name),只返回价格为9美元或更高的产品。

SELECT prod_id, prod_name 
FROM Products 
WHERE prod_price >= 9;

3. 从OrderItems表中检索出所有不同订单号(order_num),其中包含100个或更多的产品。

SELECT DISTINCT order_num 
FROM OrderItems 
WHERE quantity >=100;

4. 编写SQL语句,返回Products表中所有价格在3美元到6美元之间的产品的名称(prod_name)和价格(prod_price),然后按价格对结果进行排序。 

SELECT prod_name, prod_price 
FROM products 
WHERE prod_price BETWEEN 3 AND 6 
ORDER BY prod_price; 

 

posted @   盼君终得见  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示