想着正好给它刷一遍,然后将自己刷题的一些想法总结下,于是有了今天这篇文章,希望能给需要的小伙伴一点点帮助
SQL46 列出供应商及其可供产品的数量
描述
有 Vendors 表含有 vend_id 供应商id.
| vend_id |
| — |
| a0002 |
| a0013 |
| a0003 |
| a0010 |
有 Products 表含有供应商 id 和供应产品 id
| vend_id | prod_id |
| — | — |
| a0001 | egg |
| a0002 | prod_id_iphone |
| a00113 | prod_id_tea |
| a0003 | prod_id_vivo phone |
| a0010 | prod_id_huawei phone |
问题
列出供应商(Vendors 表中的 vend_id)及其可供产品的数量,包括没有产品的供应商。你需要使用 OUTER JOIN 和 COUNT() 聚合函数来计算 Products 表中每种产品的数量,最后根据 vend_id 升序排序。
注意:vend_id 列会显示在多个表中,因此在每次引用它时都需要完全限定它。
示例结果
返回供应商 id 和对应供应商供应的产品的个数
| vend_id | prod_id |
| — | — |
| a0002 | 1 |
| a0013 | 0 |
| a0003 | 1 |
| a0010 | 1 |
示例解析
供应商 a00013 供应的商品不在 Products 表中所以为 0,其他供应商供应的产品为 1 个。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
解答
利用 COUNT()
函数对 Vendors
中的 vend_id
分组并统计。
另外则是考察 LEFT JOIN
,即题目中所说的 OUTER JOIN
,其具体使用语法如下。
1 2 3 4 |
|
1 |
|
SQL47 将两个 SELECT 语句结合起来(一)
描述
表 OrderItems 包含订单产品信息,字段 prod_id 代表产品 id、quantity 代表产品数量
| prod_id | quantity |
| — | — |
| a0001 | 105 |
| a0002 | 100 |
| a0002 | 200 |
| a0013 | 1121 |
| a0003 | 10 |
| a0003 | 19 |
| a0003 | 5 |
| BNBG | 10002 |
问题
将两个 SELECT 语句结合起来,以便从 OrderItems 表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。
示例结果
返回产品 id prod_id和产品数量 quantity
| prod_id | quantity |
| — | — |
| a0002 | 100 |
| BNBG | 10002 |
示例解析
产品 id a0002 因为数量等于 100 被选取返回;BNBG 因为是以 BNBG 开头的产品所以返回;最后以产品 id 进行排序返回。
示例
1 2 3 4 5 6 |
|
解答
依照题意,其实我们利用一个 SELECT
然后搭配 WHERE
条件查询就能将满足题意的纪律筛选出来。但是为了练习关键字 UNION
的使用,可以将两个条件查询语句分开,然后用 UNION
联接起来,最后则是按照 prod_id
正序排列。
1 |
|
SQL48 将两个 SELECT 语句结合起来(二)
描述
表 OrderItems 包含订单产品信息,字段 prod_id 代表产品 id、quantity 代表产品数量。
| prod_id | quantity |
| — | — |
| a0001 | 105 |
| a0002 | 100 |
| a0002 | 200 |
| a0013 | 1121 |
| a0003 | 10 |
| a0003 | 19 |
| a0003 | 5 |
| BNBG | 10002 |
问题
将两个 SELECT 语句结合起来,以便从 OrderItems 表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。
注意:这次仅使用单个 SELECT 语句。
示例结果
返回产品 id prod_id 和产品数量 quantity
| prod_id | quantity |
| — | — |
| a0002 | 100 |
| BNBG | 10002 |
示例解析
产品 id a0002 因为数量等于 100 被选取返回;BNBG 因为是以 BNBG 开头的产品所以返回;最后以产品 id 进行排序返回。
示例
1 2 3 4 5 6 |
|
解答
根据题意仅使用单个 SELECT
语句,那就直接利用 WHERE
条件查询,然后将两个条件利用连接符 OR
并联即可。
1 |
|
SQL49 组合 Products 表中的产品名称和 Customers 表中的顾客名称
描述
Products 表含有字段 prod_name 代表产品名称
| prod_name |
| — |
| flower |
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
描述
Products 表含有字段 prod_name 代表产品名称
| prod_name |
| — |
| flower |
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
[外链图片转存中…(img-WtPFyuId-1714163978744)]