提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
高级过滤
- Q1、检索供应商名称
- Q2、检索并列出已订购产品的清单(稍难)
- Q3、返回所有价格在 3美元到 6美元之间的产品的名称和价格
- 总结
Q1、检索供应商名称
编写 SQL 语句,从 Vendors 表中检索供应商名称(vend_name),仅返回加利福尼亚州的供应商(这需要按国家[USA]和州[CA]进行过滤,没准其他国家也存在一个CA)
提示:Vendors表有字段供应商名称(vend_name)、供应商国家(vend_country)、供应商州(vend_state)
SELECT vend_name FROM Vendors WHERE vend_country='USA' AND vend_state='CA'
Q2、检索并列出已订购产品的清单(稍难)
编写SQL 语句,查找所有订购了数量至少100 个的 BR01、BR02 或BR03 的订单。你需要返回 OrderItems 表的订单号(order_num)、产品 ID(prod_id)和数量(quantity),并按产品 ID 和数量进行过滤。
SELECT order_num,prod_id,quantity FROM OrderItems WHERE prod_id REGEXP 'BR0[1-3]' AND quantity >= 100
提示:这里使用了正则表达式REGEXP,下面是REGEX介绍
MySQL supports another type of pattern matching operation based on the regular expressions and the REGEXP operator.
- It provide a powerful and flexible pattern match that can help us implement power search utilities for our database systems.
- REGEXP is the operator used when performing regular expression pattern matches. RLIKE is the synonym.
- It also supports a number of metacharacters which allow more flexibility and control when performing pattern matching.
- The backslash is used as an escape character. It’s only considered in the pattern match if double backslashes have used.
- Not case sensitive.
机翻(以原文为主):
-
MySQL支持基于正则表达式和REGEXP操作符的另一种类型的模式匹配操作。
-
它提供了强大而灵活的模式匹配,可以帮助我们为数据库系统实现强大的搜索实用程序。
-
REGEXP是执行正则表达式模式匹配时使用的运算符。RLIKE是同义词。
-
它还支持许多元字符,在执行模式匹配时允许更大的灵活性和控制。
-
反斜杠用作转义字符。如果使用了双反斜杠,则仅在模式匹配中考虑它。
-
不区分大小写。
Q3、返回所有价格在 3美元到 6美元之间的产品的名称和价格
编写 SQL 语句,返回所有价格在 3美元到 6美元之间的产品的名称(prod_name)和价格(prod_price),使用 AND操作符,然后按价格对结果进行升序排序
代码如下:
SELECT prod_name,prod_price FROM Products WHERE prod_price BETWEEN 3 AND 6 ORDER BY prod_price ASC
总结
WHERE prod_id REGEXP ‘BR01[1-3]’