前言
❤欢迎大家阅读我的文章呀❤
今天是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进阶挑战】,让我们一起拭目以待吧!
不懂的问题要及时搞明白,不能得过且过啦!!大家一起加油!
感谢您宝贵的阅读,关注和点赞噢!午安❤