结构化查询语言(SQL)为数据库用户提供了创建自定义查询以从数据库中提取信息的功能。在前面的文章中,我们探讨了使用SQL SELECT查询从数据库中提取信息。让我们扩展讨论并探索如何执行高级查询以检索匹配特定条件的数据。让我们考虑一个基于常用Northwind数据库的示例,该数据库经常附带数据库产品作为教程。 以下是数据库产品表的摘录: 我们对查询的第一个限制涉及简单的边界条件。我们可以在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 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知识的人可以访问它通常很有帮助。产品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 厨师Anton的Cajun调味料 2 48 - 6盎司罐子 22.00 53 5 厨师Anton的Gumbo Mix 2 36盒 21.35 0 6 奶奶的Boysenberry传播 3 12 - 8盎司罐子 25.00 120 7 鲍勃叔叔的有机干梨 3 12 - 1磅pkgs。 30.00 15
简单的边界条件
使用边界表达范围
用BETWEEN表达范围