(1)任务描述
本关任务:使用 WHERE 语句和逻辑表达式,检索数据表中指定字段的符合条件的数据。
(2)相关知识
为了完成本关任务,你需要掌握:如何使用 WHERE 语句和操作符来选择符合条件的数据。
在实际情况中,我们不仅需要对某字段的全部数据进行检索,更多的是需要对符合我们需求的数据进行检索。SQL 语言的发明者当然想到了这些,为我们提供了更多的方法来检索你想要的数据。
WHERE 语句就是这样一种存在,只要把你的需求正确地放在 WHERE 后边,它就能帮你检索到你想要的内容。
下表为与 WHERE 语句搭配的操作符列表:
(3)使用WHERE语句检索单范围数据
如果你想在房屋中介数据库中,寻找小于100万的房子,你应该怎么做?你是不是很自然的就想到了要用操作符 < 的。
让我们举个例子来看看,检索单范围数据是怎么实现的:
我们想从表 Customers 中找到消费大于 1000 的人。表 Customers 的内容如下图所示:
输入:
SELECT cust_name, cost
FROM Customers
WHERE cost > 1000
输出:
过程如下:
不仅是 > ,其他操作符 < , <= , >= , !< , !> 的使用方法也是一样的。
(4)使用WHERE语句检索双范围数据
还有一种情况,就是你心目中有一个理想的区间范围。比如你想买房,不能太便宜,因为便宜的有可能又小又偏僻,也不能太贵,因为。。。呵呵大家懂的。这时候,你就需要划定一个范围,SQL 很贴心的为大家提供了自然语言关键字,用来划定数字的范围。
语法规则为: WHERE 字段名 BETWEEN 数字1 AND 数字2
举个例子 我们想从表 Customers 中找到消费在 1000~3000 之间的人。表 Customers 的内容和上例相同。
输入:
SELECT cust_name, cost
FROM Customers
WHERE cost BETWEEN 1000 AND 3000
输出:
过程如下:
Tips: 注意,使用 BETWEEN...AND... 时一定要记住较小的数在前边,较大的数在后边!
(5)使用WHERE语句检索不匹配某条件的语句
有很多人可能有过这样的感觉,问你想要什么样的男/女朋友,你可能说想要这样的,那样的,好像都不错,看感觉吧。虽然你可能不知道你最想要什么,但是你一定知道你不想要什么。
SQL 语句也一样,它为你提供了选择不想要什么的机会。
举个例子 我们想从表 Customers 中找到消费者不在 New York 的人。表 Customers 的内容和上例相同。
输入:
SELECT cust_name, cust_city
FROM Customers
WHERE cust_city <> 'New York'
输出:
过程如下:
Tips: 注意,在 SQL Server 中,不等于只能用 <> 符号,不能使用 != 符号。
(6)编程要求
我们已经为你建好了数据库与数据表,并添加了相应的数据内容。 你只需:
-
补全右侧代码片段中 retrieving with range 下 Begin-End 区间的代码,检索表 Products 中字段 prod_price 价钱介于 3 和 5 的内容,要求显示出商品名称和价钱;
-
补全右侧代码片段中 retrieving with nomatches 下 Begin-End 区间的代码,检索表 Products 中除了 Lion toy 的商品名称和价钱。
其中表 Products 的内容如下图所示:
测试说明
测试过程:
-
本关涉及到的测试文件是 step3_test.sh ,平台将运行用户补全的 step3.sql 文件,得到数据;
-
将得到的数据与答案比较,判断代码是否正确。
如果操作正确,你将得到如下的结果:
开始你的任务吧,祝你成功!
实验代码