【SQL刷题】DAY21----SQL组合查询专项练习

博主昵称:跳楼梯企鹅
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;

牛客刷题:牛客刷题跳转链接

目录

前言

 一、组合查询

二、刷题

1.题目一

(1)题目

(2)题目难度

(3)示例

(4)代码

扫描二维码关注公众号,回复: 14520308 查看本文章

(5)运行截图

2.题目二

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

3.题目三

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

4.题目四

(1)题目

(2)题目难度

(3)示例

(4)代码

(5)运行截图

 三、小结

 


前言

给大家推荐一款比较好的刷题王站,马上秋招的小伙伴 快来冲起来,学起来,卷起来

 一、组合查询

UNION非常容易使用,但是使用时有规则。

1.UNION必须由两条或者以上的SELECT组成,语句之间用UNION分隔,三个SELECT语句就用两个UNION

2.UNION的每个查询必须包含相同的列、表达式或者聚集函数

3.列数据类型必须兼容

二、刷题

1.题目一

(1)题目

题目:将两个 SELECT 语句结合起来(一)
描述:将两个 SELECT 语句结合起来,以便从 OrderItems表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。

(2)题目难度

本题难易程度:中等

(3)示例

输入:

DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
	prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
	quantity VARCHAR(255) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('a0001',105),('a0002',100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5),('BNBG',10002);

输出:

a0002|100.000
BNBG|10002.000

(4)代码

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

(5)运行截图

2.题目二

(1)题目

题目:将两个 SELECT 语句结合起来(二)

描述:  将两个 SELECT 语句结合起来,以便从 OrderItems表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。

(2)题目难度

本题难易程度:简单

(3)示例

输入:

DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
	prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
	quantity VARCHAR(255) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('a0001',105),('a0002',100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5),('BNBG',10002);

输出:

a0002|100.000
BNBG|10002.000

(4)代码

select prod_id, quantity
from OrderItems
where quantity = 100
or prod_id regexp '^BNBG'

(5)运行截图

3.题目三

(1)题目

题目:组合 Products 表中的产品名称和 Customers 表中的顾客名称

描述:编写 SQL 语句,组合 Products 表中的产品名称(prod_name)和 Customers 表中的顾客名称(cust_name)并返回,然后按产品名称对结果进行升序排序。

(2)题目难度

本题难易程度:简单

(3)示例

输入:

DROP TABLE IF EXISTS `Products`;
CREATE TABLE IF NOT EXISTS `Products` (
`prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称'
);
INSERT INTO `Products` VALUES ('flower'),
('rice'),
('ring'),
('umbrella');

DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
	cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);
INSERT `Customers` VALUES ('andy'),('ben'),('tony'),('tom'),('an'),('lee'),('hex');

输出:

an
andy
ben
flower
hex
lee
rice
ring
tom
tony
umbrella

(4)代码

select prod_name
from Products
union all
select cust_name
from Customers
order by prod_name

(5)运行截图

4.题目四

(1)题目

题目:纠错4
描述:修正下面错误的SQL

(2)题目难度

本题难易程度:入门

(3)示例

输入:

DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
    cust_name VARCHAR(255) NOT NULL COMMENT '顾客id',
    cust_contact VARCHAR(255) NOT NULL COMMENT '顾客联系方式',
    cust_state VARCHAR(255) NOT NULL COMMENT '顾客州',
    cust_email VARCHAR(255) NOT NULL COMMENT '顾客email'
  );
INSERT `Customers` VALUES ('cust10','8695192','MI','[email protected]'),('cust1','8695193','MI','[email protected]'),('cust2','8695194','IL','[email protected]');

输出:

cust1|8695193.000|[email protected]
cust10|8695192.000|[email protected]
cust2|8695194.000|[email protected]

(4)代码

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; 

(5)运行截图

 三、小结

本篇文章为SQL刷题第21天

欢迎大家一起和博主来刷题0SQL刷题点击开始学习2

猜你喜欢

转载自blog.csdn.net/weixin_50481708/article/details/127032860
今日推荐