云南农业职业技术学院 - 互联网技术学院 - 美和易思《MYSQL 高级查询与编程》 综合机试试卷
数据库及试题文档下载:https://download.csdn.net/download/weixin_44893902/14503097
目录
(2)从表 t_customer 中,统计男性顾客数和女性顾客数,显示信息:性别 sex,人数 count;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer02);
(4)统计下过单的顾客的信息,显示信息为:顾客姓名 cus_name,电话 phone,性别 sex;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer04);
(9)写存储过程实现查询某个顾客的登录账号,存储过程需要传入顾客姓名,并且将查到的登录账号传出,并查询展示出来;(注:执行你所编写 sql 语句,检查结果,sql 保存命名为 answer09);
题目:电商平台 mysql 数据库系统管理
一、 语言和环境
二、 题目(100 分)
1、需求场景:
2、功能需求:
a、创建数据库,名称为 mall;
b、创建数据表 t_customer(顾客)、t_order(订单)、t_orderdetail(订单明细), t_goods(商品)表结构如下:
c、录入以下数据:
t_customer 表:

t_order 表:

t_goods 表:

t_orderdetail 表:

3、实现功能
(1)写更新语句,将 t_goods 表里的每个商品的单价增加 2 元;(注:执行你所编写 sql 语句,检查结果变化,sql 保存命名为 answer01,将更新前的数据截图保存命名为 answer01(old),更新后的数据截图命名为 answer02(new));


UPDATE t_goods SET price=price+2;
查询更新前后的数据:
SELECT * FROM t_goods;
恢复:
UPDATE t_goods SET price=price-2;
(2)从表 t_customer 中,统计男性顾客数和女性顾客数,显示信息:性别 sex,人数 count;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer02);

CREATE VIEW answer02 AS
SELECT sex 性别,COUNT(*) 人数 FROM t_customer GROUP BY sex;
(3)统计没有卖出过的商品的信息,按库存降序,单价升序排列,显示信息为:商品名 goods_name,单价 price,库存量 stock;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer03);

CREATE VIEW answer03 AS
SELECT goods_name 商品名,price 单价,stock 库存量
FROM t_goods WHERE goods_id NOT IN (SELECT goods_id FROM t_orderdtrail) ORDER BY price ASC;
(4)统计下过单的顾客的信息,显示信息为:顾客姓名 cus_name,电话 phone,性别 sex;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer04);

CREATE VIEW answer04 AS
SELECT cus_name 顾客姓名,phone 电话,sex 性别 FROM t_customer
WHERE cus_id IN (SELECT cus_id FROM t_order);
(5)写更新语句,更新 t_order 所有订单的 money 字段为订单的真实金额,订单状态改为已支付;(注:执行你所编写 sql 语句,检查结果变化,sql 保存命名为 answer05,将更新前的数据截图保存命名为 answer05(old),更新后的数据截图命名为 answer05(new));
查询更新前后数据:
SELECT * FROM t_order;
更新前:

更新后:

UPDATE t_order t1,(SELECT order_id,(g.price*goods_count) trueMoney FROM t_orderdtrail od,t_goods g
WHERE od.goods_id=g.goods_id) t2 SET t1.money=t2.trueMoney,t1.`status`=1 WHERE t1.order_id=t2.order_id;
恢复:
UPDATE t_order SET money=0,`status`=0
(6)从表 t_customer 和 t_order,统计每个顾客(包括下过单和没下过的顾客)的下单总金额和下单总数,显示信息为:顾客姓名,电话,下单总金额 allMoney,下单总数 order_num;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer06);

CREATE VIEW answer06 AS
SELECT cus_name 顾客姓名,phone 电话,SUM(price) 下单总金额,COUNT(o.order_id) 下单总数
FROM t_orderdtrail od,t_order o,t_customer c,t_goods g
WHERE o.order_id=od.order_id AND o.cus_id=c.cus_id AND od.goods_id=g.goods_id
GROUP BY cus_name;
(7)查询每个顾客的购物信息,显示信息:顾客姓名 cus_name,商品名 goods_name,购买次数 buy_count;(注:将结果保存为视图,并将结果截图,视图和图片命名为 answer07);

CREATE VIEW answer07 AS
SELECT cus_name 顾客姓名,goods_name 商品名称, COUNT(o.order_id) 购买次数
FROM t_orderdtrail od,t_order o,t_customer c,t_goods g
WHERE o.order_id=od.order_id AND o.cus_id=c.cus_id AND od.goods_id=g.goods_id
GROUP BY goods_name;
(8)为了保证删除订单时候,数据能保持一致性,对 t_order 表加触发器,在删除订单数据之后,触发删除订单明细表里的对应数据;(注:执行你所编写 sql 语句,检查结果变化,sql 保存命名为 answer08);
DROP TRIGGER IF EXISTS `answer08`;
delimiter $$
CREATE TRIGGER answer08
AFTER DELETE ON t_order
FOR EACH ROW
BEGIN
DELETE FROM t_orderdtrail WHERE t_orderdtrail.order_id=t_order.order_id;
END $$
delimiter ;
(9)写存储过程实现查询某个顾客的登录账号,存储过程需要传入顾客姓名,并且将查到的登录账号传出,并查询展示出来;(注:执行你所编写 sql 语句,检查结果,sql 保存命名为 answer09);
创建存储过程:
delimiter $$
CREATE PROCEDURE answer09(
IN name VARCHAR(20)
)
BEGIN
SELECT cus_name 顾客姓名,account 账号 FROM t_customer WHERE cus_name=name;
END
$$
delimiter ;
实现存储过程:

SET @name='王二';
CALL answer09(@name);
三、评分标准:
数据库完整导入代码:
/*
Navicat MySQL Data Transfer
Source Server : test
Source Server Version : 50646
Source Host : localhost:3306
Source Database : mall
Target Server Type : MYSQL
Target Server Version : 50646
File Encoding : 65001
Date: 2021-01-15 21:37:04
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for t_customer
-- ----------------------------
DROP TABLE IF EXISTS `t_customer`;
CREATE TABLE `t_customer` (
`cus_id` int(11) NOT NULL AUTO_INCREMENT,
`cus_name` varchar(20) CHARACTER SET utf8 NOT NULL,
`phone` varchar(15) NOT NULL,
`sex` char(1) CHARACTER SET utf8 DEFAULT NULL,
`account` varchar(20) NOT NULL,
`pwd` char(8) DEFAULT NULL,
PRIMARY KEY (`cus_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of t_customer
-- ----------------------------
INSERT INTO `t_customer` VALUES ('1', '张芮', '15908719999', '女', 'zhangrui', '12345678');
INSERT INTO `t_customer` VALUES ('2', '李四', '15908712222', '男', 'lisi', '12345678');
INSERT INTO `t_customer` VALUES ('3', '王二', '15908713333', '男', 'wanger', '12345678');
INSERT INTO `t_customer` VALUES ('4', '赵五', '15908714444', '男', 'zhaowu', '12345678');
INSERT INTO `t_customer` VALUES ('5', '李晓', '15908715555', '女', 'lixiao', '12345678');
-- ----------------------------
-- Table structure for t_goods
-- ----------------------------
DROP TABLE IF EXISTS `t_goods`;
CREATE TABLE `t_goods` (
`goods_id` int(11) NOT NULL AUTO_INCREMENT,
`goods_name` varchar(50) CHARACTER SET utf8 NOT NULL,
`price` decimal(8,2) DEFAULT NULL,
`unit` varchar(10) CHARACTER SET utf8 DEFAULT NULL,
`stock` int(11) DEFAULT '100',
PRIMARY KEY (`goods_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of t_goods
-- ----------------------------
INSERT INTO `t_goods` VALUES ('1', '土蜂蜜', '122.00', '公斤', '300');
INSERT INTO `t_goods` VALUES ('2', '野生干菌子', '152.00', '公斤', '50');
INSERT INTO `t_goods` VALUES ('3', '百香果', '14.50', '公斤', '100');
INSERT INTO `t_goods` VALUES ('4', '火腿肉', '99.00', '公斤', '60');
INSERT INTO `t_goods` VALUES ('5', '本地腐乳', '12.50', '瓶', '300');
INSERT INTO `t_goods` VALUES ('6', '腊肠', '147.00', '公斤', '300');
-- ----------------------------
-- Table structure for t_order
-- ----------------------------
DROP TABLE IF EXISTS `t_order`;
CREATE TABLE `t_order` (
`order_id` int(11) NOT NULL,
`cus_id` int(11) NOT NULL,
`number` char(6) NOT NULL,
`money` decimal(8,2) DEFAULT NULL,
`order_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`status` char(1) CHARACTER SET utf8 DEFAULT NULL,
`remark` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of t_order
-- ----------------------------
INSERT INTO `t_order` VALUES ('1', '1', '000001', '0.00', '2021-01-15 21:36:56', '0', '');
INSERT INTO `t_order` VALUES ('2', '2', '000002', '0.00', '2021-01-15 21:36:56', '0', '');
INSERT INTO `t_order` VALUES ('3', '1', '000003', '0.00', '2021-01-15 21:36:56', '0', '');
INSERT INTO `t_order` VALUES ('4', '2', '000004', '0.00', '2021-01-15 21:36:56', '0', '');
INSERT INTO `t_order` VALUES ('5', '3', '000005', '0.00', '2021-01-15 21:36:56', '0', '');
INSERT INTO `t_order` VALUES ('6', '1', '000006', '0.00', '2021-01-15 21:36:56', '0', '请分装成两份');
INSERT INTO `t_order` VALUES ('7', '4', '000007', '0.00', '2021-01-15 21:36:56', '0', '请包装多加一层防护');
-- ----------------------------
-- Table structure for t_orderdtrail
-- ----------------------------
DROP TABLE IF EXISTS `t_orderdtrail`;
CREATE TABLE `t_orderdtrail` (
`order_id` int(11) NOT NULL,
`goods_id` int(11) NOT NULL,
`goods_count` int(11) DEFAULT '1',
`remark` varchar(100) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of t_orderdtrail
-- ----------------------------
INSERT INTO `t_orderdtrail` VALUES ('1', '2', '2', '一公斤一袋分装');
INSERT INTO `t_orderdtrail` VALUES ('2', '1', '1', '');
INSERT INTO `t_orderdtrail` VALUES ('3', '2', '2', '一公斤一袋分装');
INSERT INTO `t_orderdtrail` VALUES ('4', '5', '1', '');
INSERT INTO `t_orderdtrail` VALUES ('5', '6', '2', '一公斤一袋分装');
INSERT INTO `t_orderdtrail` VALUES ('6', '2', '3', '');
INSERT INTO `t_orderdtrail` VALUES ('7', '4', '1', '');
云南农业职业技术学院 - 互联网技术学院 - 美和易思《MYSQL 高级查询与编程》 综合机试试卷的更多相关文章
- 《MYSQL高级查询与编程》综合机试试卷 - 云南农职美和易思
题目:银行mysql数据库系统管理 目录 题目:银行mysql数据库系统管理 一.语言和环境 二.题目(100分): 功能需求: 要求: 三.提交方式 四.评分标准: 五.实现代码: 创建表结构: 插 ...
- 云南农业职业技术学院 / 互联网技术学院官网 HTML5+CSS3
HTML学完后写了,有小组成员参与开发,我只写了主页,那就只贴主页的代码出来了. 作为初学者,代码写得不太好,写博客纯属记录!有问题望指导! 码云开源仓库地址:https://gitee.com/yn ...
- HTML5 +Java基础 大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业
第1题 [单选题][0.33分][概念理解] 关于java中的逻辑运算符,下列说法正确的是 逻辑运算符||.&&.!都是用于连接两个关系表达式</p> 当&&am ...
- Java高级大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业
第1题 .关于XML的文档结构描述错误的是 一个基本的XML文档通常由序言和文档元素两部分组成 XML文档中的序言可以包括XML声明.处理指令和注释 XML文档中的元素以树形结构排列 XML文档的声 ...
- Java+HTML5 试题 云南农业职业技术学院 - 互联网技术学院
摸底测试 100题_共100.00分_及格60.00分 第1题 [单选题][1.00分][概念理解] 执行完下面程序片段后, ( )的结论是正确的. int a, b, c; a = 1; b = ...
- 【MySQL作业】SELECT 数据查询——美和易思定制显示查询结果应用习题
点击打开所使用到的数据库>>> 1.分类显示所有商品信息,按商品价格升序排列. "分类显示所有商品信息"表明查询表"商品",排序列为" ...
- 【MySQL作业】SELECT 数据查询——美和易思MySQL运算符应用习题
点击打开所使用到的数据库>>> 1.查询指定姓名的客户(如"张晓静")的地址和电话号码. select address 地址, phone 电话号码 from c ...
- 【MySQL作业】外连接查询——美和易思外连接查询应用习题
点击打开所使用到的数据库>>> 1.使用左接获取所有客户的基本信息以及订购信息,要求输出客户姓名.电话.订单 ID 和下单时间. 由于需要获取所有客户的基本信息,如果采用左连接加以实 ...
- 【MySQL作业】连接查询——美和易思内连接查询应用习题
点击打开所使用到的数据库>>> 1.使用内连接获取客户"王传华"所有的订单信息和客户信息. 使用内连接获取客户"王传华"所有的订单信息和客户信 ...
随机推荐
- map/multimap深度探索
map/multimap同样以rb_tree为底层结构,同样有元素自动排序的特性,排序的依据为key. 我们无法通过迭代器来更改map/multimap的key值,这个并不是因为rb_tree不允许, ...
- Docker学习(三)——Docker镜像使用
Docker镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从Docker Hub公共镜像源下载. 1.镜像使用 (1)列 ...
- Vue 标签中的ref属性和refs
ref: ref 被用来给元素或子组件注册引用信息.引用信息将会注册在父组件的 $refs 对象上.如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素:如果用在子组件上,引用就指向组件. ...
- 【Services】【Web】【Nginx】静态下载页面的安装与配置
1. 拓扑 F5有自动探活机制,如果一台机器宕机,请求会转发到另外一台,省去了IPVS漂移的麻烦 F5使用轮询算法,向两台服务器转发请求,实现了负载均衡 2. 版本: 2.1 服务器版本:RHEL7. ...
- 观察者模式之spring事件机制
ddsspring中的事件机制使用到设计模式中的观察者模式 ,观察者模式有两个概念,1.观察者.被观察者.2.被观察者做出相应得动作,观察者能接收到.不分析设计模式,学习下spring中的事件机制实际 ...
- angular过滤器在html和js中的使用
在HTML中使用格式为:{{数据 | 过滤器名称:条件一:条件二--}}:过滤条件间使用:隔开 例如: 在代码中一般格式为: 变量 = $filter("过滤器名称")(被过滤数 ...
- 为什么volatile能保证有序性不能保证原子性
对于内存模型的三大特性:有序性.原子性.可见性. 大家都知道volatile能保证可见性和有序性但是不能保证原子性,但是为什么呢? 一.原子性.有序性.可见性 1.原子性: (1)原子的意思代表着-- ...
- Abp Vnext 替换Redis的实现为csredis
Host项目安装csredis的nuget包和data protect包并 移除 Microsoft.Extensions.Caching.StackExchangeRedis Microsoft.A ...
- VS 2019 调试 Asp.net WebApi 失败:ID为xx的进程当前未运行
概述 解决方案 用记事本或者其他文本编辑器,从文件夹中打开启动项项目下的 .csproj 文件: 删除节点 WebProjectProperties 内的所有代码: 保存后,VS会提示全部重新加载项目 ...
- springboot项目WEB-INF 目录 jsp页面报404
我是跟着<深入浅出 Spring Boot 2.x>这本书学习的,在"初识Spring MVC"章节中,搭建项目,然后访问jsp页面时报错:Path with &quo ...