前言

MySQL是一款流行的开源数据库。它也是一个关系型数据库管理系统,本章就来简单的对MySQL查询进行一个小练习。


📕往期知识点

📕往期内容回顾
💡 python教程】保姆版教使用pymysql模块连接MySQL实现增删改查
💡 python+requests+BeautifulSoup实现对数据保存到mysql数据库
💡selenium自动化测试实战案例哔哩哔哩信息至Excel
💡 舍友打一把游戏的时间,我实现了一个selenium自动化测试并把数据保存到MySQL

在这里插入图片描述

👓练习题(1)

📌描述


题目:从 Customers 中检索所有的顾客名称(cust_name),并按从 Z 到 A 的顺序显示结果。


用户信息表:customers

  • 姓名(cust_name)
  • 客户id(cust_id)

在这里插入图片描述
如: 有表Customers,cust_id代表客户id,cust_name代表客户姓名。


📝 根据示例,你的查询应返回以下结果:
在这里插入图片描述

表数据代码

DROP TABLE IF EXISTS `Customers`;

# 创建表
CREATE TABLE IF NOT EXISTS `Customers`(
	cust_id VARCHAR(255) NOT NULL COMMENT '客户id',
	cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);

# 添加信息
INSERT `Customers` VALUES ('a1','andy'),('a2','ben'),('a3','tony'),('a4','tom'),('a5','an'),('a6','lee'),('a7','hex');

👓练习题(2)

📌描述


题目:编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。


信息表:orders

  • 顾客 ID(cust_id)
  • 订单号(order_num)
  • 订单日期(order_date)

在这里插入图片描述
如:
第一行表示:cust_id为andy的用户的订单号是aaaa,订单日期为2021-01-01 00:00:00


📝
根据示例,你的查询应返回以下结果:
在这里插入图片描述

表数据代码

DROP TABLE IF EXISTS `Orders`;

# 建表
CREATE TABLE IF NOT EXISTS `Orders` (
  `cust_id` varchar(255) NOT NULL COMMENT '顾客 ID',
  `order_num` varchar(255) NOT NULL COMMENT '订单号',
  `order_date` timestamp NOT NULL COMMENT '订单时间'
);

# 添加数据
INSERT INTO `Orders` VALUES ('andy','aaaa','2021-01-01 00:00:00'),
('andy','bbbb','2021-01-01 12:00:00'),
('bob','cccc','2021-01-10 12:00:00'),
('dick','dddd','2021-01-11 00:00:00');

👓练习题(3)

📌描述


题目:编写 SQL 语句,显示 OrderItems 表中的数量(quantity)和价格(item_price),并按数量由多到少、价格由高到低排序。


示例:orderitems表

  • 数量(quantity)
  • 价格(item_price)

在这里插入图片描述
如:
第一行表示:数量是1,价格为100

📝
根据示例,你的查询应返回以下结果:
在这里插入图片描述

数据表代码

DROP TABLE IF EXISTS `OrderItems`;

# 创建表
CREATE TABLE IF NOT EXISTS `OrderItems` (
  `quantity` INT(64) NOT NULL COMMENT '数量',
  `item_price` INT(64) NOT NULL COMMENT '订单价格'
);

# 添加数据
INSERT INTO `OrderItems` VALUES (1,100),
(10,1003),
(2,500);

👓练习题(4)

📌描述


题目:从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9.49 美元的产品。


示例:产品表products

  • 产品id(prod_id)
  • 产品名称(prod_name)
  • 价格(prod_price)
    在这里插入图片描述
    如:
    第一行表示:产品id是a0018,产品名称为sockets产品价格为9.49


    📝
    根据示例,你的查询应返回以下结果:
    在这里插入图片描述

表数据代码

DROP TABLE IF EXISTS `Products`;

# 创建表
CREATE TABLE IF NOT EXISTS `Products` (
  `prod_id` VARCHAR(255) NOT NULL COMMENT '产品 ID',
  `prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称',
  `prod_price` DOUBLE NOT NULL COMMENT '产品价格'
);

# 添加数据
INSERT INTO `Products` VALUES ('a0018','sockets',9.49),
('a0019','iphone13',600),
('b0019','gucci t-shirts',1000);

👓练习题(5)

📌描述


题目:从 items 表中检索出所有不同且不重复的订单号(order_num),其中每个订单都要包含 100 个或更多的产品。


示例:items表

  • 订单号order_num
  • quantity产品数量

在这里插入图片描述
如:
第一行表示:订单号是1,产品数量为100

📝
根据示例,你的查询应返回以下结果:
在这里插入图片描述

数据表代码

DROP TABLE IF EXISTS `Items`;

# 创建表
CREATE TABLE IF NOT EXISTS `Items`(
	order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
	quantity VARCHAR(255) NOT NULL COMMENT '商品数量'
);

# 添加数据
INSERT `Items` VALUES ('a1','105'),('a2','1100'),('a2','200'),('a4','1121'),('a5','10'),('a2','19'),('a7','5')

📑题目答案

习题一答案:

select cust_name from Customers order by cust_name desc;

习题二答案:

SELECT
    cust_id,
    order_num
FROM
    Orders
ORDER BY
    cust_id,
    order_date DESC;

习题三答案:

SELECT
    quantity,
    item_price
FROM
    OrderItems
ORDER BY
    quantity DESC,
    item_price DESC;

习题四答案:

SELECT
    prod_id,
    prod_name
FROM
    Products
WHERE
    prod_price = 9.49;

习题五答案:

select order_num 
from OrderItems 
group by order_num 
having max(quantity)  >= 100
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐