【SQL自学打卡|DAY13】——组合查询

发布于:2022-12-20 ⋅ 阅读:(268) ⋅ 点赞:(0)

前言

❤欢迎大家阅读我的文章呀❤
今天是SQL必知必会的最后一块练习。
希望你们在我的文章当中能有所收获!!!
SLogan:利用有限的时间,撸起袖子加油干!

知识点回顾

内联结:inner join。取两列的交集。
外联结:left join。左连接,以左边表的列为主,取两列的交集,对于不在右边列存在的名称取null。
    right join。右连接,以右边表的列为主,取两列的交集,对于不在左边列存在的名称取null。

一、组合查询

在这里插入图片描述


【SQL106】 将两个 SELECT 语句结合起来(一)
在这里插入图片描述

解题思路:
这道题考查的是将两个SELECT语句结合起来,我们在之前的刷题当中有碰到过,涉及到的知识点还记得吗?——关键词:UNION

JOIN—连接表,对列操作
UNION–连接表,对行操作。
UNION–将两个表做行拼接,同时自动删除重复的行。
UNION ALL—将两个表做行拼接,保留重复的行。

筛选条件:LIKE用法。WHERE quantity=100,WHERE prod_id LIKE ‘BNBG%’
排序:放在最后进行排序,不能先排序在拼接。ORDER BY prod_id

代码如下:

SELECT prod_id,quantity
FROM OrderItems
WHERE quantity='100'
UNION 
SELECT prod_id,quantity
FROM OrderItems
WHERE prod_id LIKE 'BNBG%'
ORDER BY prod_id

结果:
在这里插入图片描述

【SQL107】 将两个 SELECT 语句结合起来(二)
在这里插入图片描述
解题思路:
题目大意和【SQL106】是一样的,但是有个需要注意的点:注意:这次仅使用单个 SELECT 语句。
只能用一个SELECT的话,那就只能把两个筛选条件写在一起,根据题目意思,是或者(OR)的关系。
代码如下:

SELECT prod_id,quantity
FROM OrderItems
WHERE quantity='100' OR prod_id='BNBG'
ORDER BY prod_id ASC

结果:
在这里插入图片描述

【SQL108】组合 Products 表中的产品名称和 Customers 表中的顾客名称
在这里插入图片描述
在这里插入图片描述

解题思路:
非常简单的一道题目,和第一题的考查点是一样的,使用UNION即可。
不要忘了排序噢。
代码如下:

SELECT prod_name
FROM Products
UNION 
SELECT cust_name
FROM Customers
ORDER BY prod_name

结果:
在这里插入图片描述

【SQL109】纠错4
在这里插入图片描述

解题思路:
这一题的错误点在于使用了两个ORDER BY
使用UNION组合查询时,只能使用一条ORDER BY 字句,且必须位于最后一条SELECT语句之后!!!
正确代码如下:

SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'MI' 
UNION 
SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'IL'ORDER BY cust_name;

结果:
在这里插入图片描述

总结

  今天结束了【SQL必知必会】这一个小专题的练习和分享!

  今天我会再更新一篇关于必知必会的知识点总结,虽然这一大块的题目难度不大,但是我偶尔也会碰到一些细节问题出错,或者是对一些新的知识点吸收的不到位出错。虽然简单,却不能掉以轻心!!!

  预告一下:接下来要学习的是【SQL进阶挑战】,让我们一起拭目以待吧!

  不懂的问题要及时搞明白,不能得过且过啦!!大家一起加油!
  感谢您宝贵的阅读,关注和点赞噢!午安❤

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到