Skip to main content

在SQL中选择范围内的数据

不要再使用Session了!简单的问卷调查可能有什么坑?LocalStorage和Cookie如何选择?Session的安全问题是什么? (六月 2025)

不要再使用Session了!简单的问卷调查可能有什么坑?LocalStorage和Cookie如何选择?Session的安全问题是什么? (六月 2025)
Anonim

结构化查询语言(SQL)为数据库用户提供了创建自定义查询以从数据库中提取信息的功能。在前面的文章中,我们探讨了使用SQL SELECT查询从数据库中提取信息。让我们扩展讨论并探索如何执行高级查询以检索匹配特定条件的数据。让我们考虑一个基于常用Northwind数据库的示例,该数据库经常附带数据库产品作为教程。

以下是数据库产品表的摘录:

产品表
产品ID产品名称供应商ID单位数量单价库存量
1110盒x 20袋18.0039
2124 - 12盎司瓶19.0017
3茴香糖浆112 - 550毫升瓶10.0013
4厨师Anton的Cajun调味料248 - 6盎司罐子22.0053
5厨师Anton的Gumbo Mix236盒21.350
6奶奶的Boysenberry传播312 - 8盎司罐子25.00120
7鲍勃叔叔的有机干梨312 - 1磅pkgs。30.0015

简单的边界条件

我们对查询的第一个限制涉及简单的边界条件。我们可以在SELECT查询的WHERE子句中使用由标准运算符构造的简单条件语句来指定它们,例如<,>,> =和<=。

首先,让我们尝试一个简单的查询,它允许我们提取数据库中UnitPrice超过20.00的所有产品的列表:

SELECT ProductName,UnitPrice FROM products WHERE UnitPrice> 20.00

这将生成四个产品的列表,如下所示:

ProductName UnitPrice ------- --------厨师Anton's Gumbo Mix 21.35厨师Anton's Cajun调味料22.00奶奶Boysenberry涂抹25.00 Bob叔叔有机干梨30.00

我们也可以将WHERE子句与字符串值一起使用。这基本上将字符等同于数字,A代表值1,Z代表值26.例如,我们可以使用以下查询显示名称以U,V,W,X,Y或Z开头的所有产品:

SELECT ProductName FROM products WHERE ProductName> ='T'

产生结果:

产品名称-------鲍勃叔叔的有机干梨

使用边界表达范围

WHERE子句还允许我们使用多个条件对值实现范围条件。例如,如果我们想要采用上面的查询并将结果限制为价格在15.00和20.00之间的产品,我们可以使用以下查询:

SELECT ProductName,UnitPrice FROM products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

这会产生如下结果:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

用BETWEEN表达范围

SQL还提供了一个BETWEEN语法快捷方式,可以减少我们需要包含的条件数量,并使查询更具可读性。例如,我们可以表达相同的查询,而不是使用上面的两个WHERE条件:

SELECT ProductName,UnitPrice FROM products WHERE UnitPrice BETWEEN 15.00 AND 20.00

与我们的其他条件子句一样,BETWEEN也适用于字符串值。如果我们想要生成以V,W或X开头的所有国家/地区的列表,我们可以使用以下查询:

SELECT ProductName FROM products WHERE ProductName BETWEEN“A”和“D”

产生结果:

产品名称-------茴香糖浆柴昌厨师Anton's Gumbo Mix厨师Anton's Cajun调味料

WHERE子句是SQL语言的一个强大部分,它允许您将结果限制为落在指定范围内的值。它通常用于帮助表达业务逻辑,应该是每个数据库专业人员工具包的一部分。

将通用子句合并到存储过程中以使那些没有SQL知识的人可以访问它通常很有帮助。