这是两道Java实机测试题目,根据题目要求完成
1. 拉取线上仓库代码(使用git命令)
仓库地址:https://gitee.com/WindLikeBoyLiang/test.git
要求:使用git命令克隆上面的仓库代码到本地磁盘 D:\Test\<your_name>,注意,不能使用如idea、TortoiseGit等可视化工具
2. 编写SQL(会提供相应的测试表结构和数据,题目附带sql数据,可以直接执行)
某电商系统有如下三张表
本地数据库创建test_commerce数据库后,新建查询语句执行以下表结构文件即可得到本题所需测试数据:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for order_items
-- ----------------------------
DROP TABLE IF EXISTS `order_items`;
CREATE TABLE `order_items` (
`item_id` int(10) NOT NULL COMMENT '商品id',
`order_id` int(10) NOT NULL COMMENT '订单id',
`product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',
`quantity` int(10) NULL DEFAULT NULL COMMENT '购买数量',
PRIMARY KEY (`item_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单明细表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of order_items
-- ----------------------------
INSERT INTO `order_items` VALUES (1, 10001, '手机', 1);
INSERT INTO `order_items` VALUES (2, 10002, '平板电脑', 2);
INSERT INTO `order_items` VALUES (3, 10002, '手表', 1);
INSERT INTO `order_items` VALUES (4, 20001, '冰箱', 1);
INSERT INTO `order_items` VALUES (5, 20002, '电饭锅', 3);
INSERT INTO `order_items` VALUES (6, 20002, '热水器', 1);
INSERT INTO `order_items` VALUES (7, 30001, '电脑', 1);
INSERT INTO `order_items` VALUES (8, 30002, '电风扇', 4);
INSERT INTO `order_items` VALUES (9, 30002, '笔记本电脑', 1);
INSERT INTO `order_items` VALUES (10, 40001, '电视机', 2);
INSERT INTO `order_items` VALUES (11, 50001, '苹果手机', 1);
-- ----------------------------
-- Table structure for orders
-- ----------------------------
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`order_id` int(10) NOT NULL COMMENT '订单id',
`user_id` int(10) NOT NULL COMMENT '用户id',
`order_date` date NOT NULL COMMENT '订单时间',
`amount` decimal(10, 2) NOT NULL COMMENT '订单金额',
PRIMARY KEY (`order_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO `orders` VALUES (10001, 1, '2025-08-01', 300.00);
INSERT INTO `orders` VALUES (10002, 1, '2025-08-02', 500.00);
INSERT INTO `orders` VALUES (20001, 2, '2025-08-01', 200.00);
INSERT INTO `orders` VALUES (20002, 2, '2025-08-02', 800.00);
INSERT INTO `orders` VALUES (30001, 3, '2025-08-01', 100.00);
INSERT INTO `orders` VALUES (30002, 3, '2025-08-02', 1100.00);
INSERT INTO `orders` VALUES (40001, 4, '2025-08-01', 500.00);
INSERT INTO `orders` VALUES (50001, 5, '2025-08-01', 400.00);
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_id` int(10) NOT NULL COMMENT '用户id',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名称',
`city` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户所在城市',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES (1, '张三', '北京');
INSERT INTO `users` VALUES (2, '李四', '上海');
INSERT INTO `users` VALUES (3, '王五', '深圳');
INSERT INTO `users` VALUES (4, '赵六', '广州');
INSERT INTO `users` VALUES (5, '陈七', '广西');
SET FOREIGN_KEY_CHECKS = 1;
题目如下:
请写出 SQL,查询“下单金额排名前 3 的用户的姓名、所在城市、总下单金额,以及他们最近一次订单的订单号、订单时间和购买的商品明细(商品名称、商品总数量)”。
要求/提示:
1.需要用到子查询(例如获取前 3 的用户,或者获取最近一次订单)。
2.需要用到联表(例如把用户信息、订单和订单明细结合起来)。
3.输出字段要求: 用户姓名 用户所在城市 总下单金额 最近一次订单号 最近一次订单的商品名称 最近一次订单商品总数量。