美文网首页
SQL 对结果进行过滤(一)

SQL 对结果进行过滤(一)

作者: 山药鱼儿 | 来源:发表于2022-03-07 22:57 被阅读0次

本节,我们将来学习 SELECT 语句中 WHERE 子句的基本用法:通过 WHERE 子句来指定搜索条件。

使用 WHERE 子句

当我们需要检索出数据库表中指定的数据子集时,就需要使用 WHERE 子句来指定搜索条件(过滤条件)。WHERE 字句在表名之后给出。比如,下面的 SQL 将只返回 Products 表中价格为 9.49 美元的产品 ID 和产品价格。

SELECT prod_id, prod_name
FROM Products
WHERE prod_price = 9.49;

数据表子集检索结果:

表中的全部数据如下:

WHERE 子句操作符

在上述的 SQL 中小鱼使用了 = 操作符,除了等于操作符之外,大部分 DBMS 支持 != < <= > >= BETWEEN IS NULL 操作符。下面,我们分别来实践一下吧~

下面的 SQL 返回价格为 9 元或更高的商品 ID 、商品名称和商品价格:

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

条件检索结果:

下面,我们检索出所有非 DLL01 供应商供应的产品名称:

SELECT prod_name, vend_id
FROM Products
WHERE vend_id != 'DLL01';

检索结果:

如果是检查某个范围的值,可以使用 BETWEEN 操作符。比如下面的 SQL 将检索出价格范围在 3.49 ~ 5.99 之间的所有产品。

SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 3.49 AND 5.99;

检索结果:

注:BETWEEN 匹配范围中所有的值,包括指定的开始值和结束值。

在创建表时,开发人员会指定表中的列能否不包含值,在一个列不包含值时,我们称其包含空值(NULL)。

注:字段包含空值与字段包含 0 、空字符串、空白字符不同。

接下来,我们检索下表中未填写邮箱的客户 ID 和客户名称:

SQL 语句如下:

SELECT cust_id, cust_name
FROM Customers
WHERE cust_email is NULL;

检索结果:

综合提高

从如下的订单表中检索出包含 100 个或更多产品的不同订单号:

使用 WHERE 子句和 DISTINCT 关键字完成 SQL 如下:

SELECT DISTINCT order_num
FROM OrderItems
WHERE quantity >= 100;

检索结果:

接下来,检索出产品表中,价格在 3 美元到 6 美元之间的产品名称和价格,并按照价格进行降序排列。

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

注: BETWEEN 位于表名之后,ORDER BY 必须是 SELECT 语句中的最后一个子句。

检索排序结果:

相关文章

网友评论

      本文标题:SQL 对结果进行过滤(一)

      本文链接:https://www.haomeiwen.com/subject/jvznrrtx.html