博主昵称:跳楼梯企鹅
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;牛客刷题:牛客刷题跳转链接
目录
前言
给大家推荐一款比较好的刷题王站,马上秋招的小伙伴 快来冲起来,学起来,卷起来
一、组合查询
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','cust10@cust.com'),('cust1','8695193','MI','cust1@cust.com'),('cust2','8695194','IL','cust2@cust.com'); 输出: cust1|8695193.000|cust1@cust.com cust10|8695192.000|cust10@cust.com cust2|8695194.000|cust2@cust.com
(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