介绍WHERE子句和BETWEEN条件
结构化查询语言(SQL)为数据库用户提供了创建自定义查询以从数据库中提取信息的功能。 在前面的文章中,我们探讨了使用SQL SELECT查询从数据库中提取信息 。 让我们详细讨论这个讨论,并探讨如何执行高级查询来检索符合特定条件的数据。
让我们考虑一个基于常用Northwind数据库的示例,该数据库经常随数据库产品一起提供,作为教程。
以下是数据库产品表的摘录:
产品ID | 产品名称 | 供应商ID | 单位数量 | 单价 | 库存量 |
---|---|---|---|---|---|
1 | 柴 | 1 | 10盒x 20袋 | 18.00 | 39 |
2 | 常 | 1 | 24 - 12盎司瓶 | 19.00 | 17 |
3 | 八角糖浆 | 1 | 12 - 550毫升的瓶子 | 10.00 | 13 |
4 | 厨师安东的Cajun调味料 | 2 | 48 - 6盎司罐子 | 22.00 | 53 |
五 | 厨师安东的浓汤混合 | 2 | 36盒 | 21.35 | 0 |
6 | 祖母的波森莓蔓延 | 3 | 12 - 8盎司罐子 | 25.00 | 120 |
7 | 伯伯叔叔的有机干梨 | 3 | 12 - 1磅包装。 | 30.00 | 15 |
简单的边界条件
我们将在查询中放置的第一个限制涉及简单的边界条件。 我们可以在SELECT查询的WHERE子句中使用由标准运算符(如<,>,> =和<=)构造的简单条件语句指定它们。
首先,让我们尝试一个简单的查询,它允许我们提取数据库中UnitPrice大于20.00的所有产品的列表:
这产生了四种产品的清单,如下所示:
ProductName单价------- --------厨师安东的浓汤混合21.35厨师安东的美国调味品22.00奶奶波森莓蔓延25.00叔叔Bob's有机干梨30.00我们也可以使用带有字符串值的WHERE子句。 这基本上将字符等同于数字,其中A表示值1,Z表示值26.例如,我们可以使用以下查询显示名称以U,V,W,X,Y或Z开头的所有产品:
SELECT ProductName FROM products WHERE ProductName> ='T'这产生了结果:
产品名称------- Bob叔叔的有机干梨使用边界表示范围
WHERE子句还允许我们通过使用多个条件在值上实现范围条件。 例如,如果我们想要采用上述查询并将结果限制为价格介于15.00和20.00之间的产品,则可以使用以下查询:
SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice> 15.00 AND UnitPrice <20.00这产生如下所示的结果:
ProductName单价------- -------- Chai 18.00 Chang 19.00用BETWEEN表达范围
SQL还提供了一种快捷方式BETWEEN语法,可以减少我们需要包含的条件数量并使查询更具可读性。 例如,不是使用上面的两个WHERE条件,我们可以将相同的查询表示为:
SELECT ProductName,UnitPrice FROM产品单价在15.00和20.00之间与我们的其他条件子句一样,BETWEEN也适用于字符串值。 如果我们想生成一个以V,W或X开头的所有国家的列表,我们可以使用查询:
SELECT ProductName FROM产品WHERE ProductName BETWEEN“A”和“D”这产生了结果:
产品名称-------八角糖浆Chai Chang厨师Anton's Gumbo Mix厨师Anton's Cajun调味料WHERE子句是SQL语言的一个强大部分,它允许您将结果限制为落在指定范围内的值。 它通常用于帮助表达业务逻辑,并应该成为每个数据库专业人员工具箱的一部分。
将常用子句合并到存储过程中以使其可以在没有SQL知识的情况下访问它们通常很有帮助。