当前位置: 首页 > news >正文

MySQL电商管理系统练习题及答案

一 、表结构

  • 用户表(user):id(主键)、username、password、email、phone、age
  • 商品表(product):id(主键)、name、price、stock、description
  • 订单表(order):id(主键)、user_id(外键,关联用户表)、total_price、status、create_time、update_time
  • 订单详情表(order_detail):id(主键)、order_id(外键,关联订单表)、product_id(外键,关联商品表)、quantity

二、创建数据表

-- 创建用户表
CREATE TABLE IF NOT EXISTS `user` (`id` INT(11) NOT NULL AUTO_INCREMENT,`username` VARCHAR(50) NOT NULL,`password` VARCHAR(50) NOT NULL,`email` VARCHAR(100) DEFAULT NULL,`phone` VARCHAR(20) DEFAULT NULL,`age` INT(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建商品表
CREATE TABLE IF NOT EXISTS `product` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(100) NOT NULL,`price` DECIMAL(10, 2) NOT NULL,`stock` INT(11) NOT NULL,`description` TEXT,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建订单表
CREATE TABLE IF NOT EXISTS `order` (`id` INT(11) NOT NULL AUTO_INCREMENT,`user_id` INT(11) NOT NULL,`total_price` DECIMAL(10, 2) NOT NULL,`status` VARCHAR(20) NOT NULL,`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建订单详情表
CREATE TABLE IF NOT EXISTS `order_detail` (`id` INT(11) NOT NULL AUTO_INCREMENT,`order_id` INT(11) NOT NULL,`product_id` INT(11) NOT NULL,`quantity` INT(11) NOT NULL,PRIMARY KEY (`id`),FOREIGN KEY (`order_id`) REFERENCES `order`(`id`) ON DELETE CASCADE,FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

三、单表查询练习题

#2.	查询用户表中所有用户的id、username和email。
SELECT id,username,email FROM `user`;
#3.	查询商品表中所有商品的name、price和stock。
SELECT `name`,price,stock FROM product;
#4.	查询订单表中所有订单的user_id、total_price和status。
SELECT user_id,total_price,`status` FROM `order`;
#5.	查询订单详情表中所有订单详细信息的id、order_id和product_id。
SELECT id,order_id,product_id FROM order_detail;
#6.	查询用户表中用户名包含“@”的用户的id、username和email。
SELECT id,username,email FROM `user` WHERE username LIKE "%@%";
#7.	查询商品表中价格大于100的商品的name、price和stock。
SELECT `name`,price,stock FROM product WHERE price >100;
#8.	查询订单表中状态为“已完成”的订单的user_id、total_price和status。
SELECT user_id,total_price,`status` FROM `order` WHERE `status` ="已完成";
#9.	查询用户表中phone为空的用户的id、username和email。
SELECT  id,username,email FROM `user` WHERE phone IS NULL;
#10.	查询商品表中description为空的商品的name、price和stock。
SELECT `name`,price,stock FROM product WHERE description IS NULL;
#11.	查询订单详情表中product_id为1的订单详细信息的id、order_id和quantity。
SELECT id,order_id,quantity FROM order_detial  WHERE product_id=1;
#12.	查询用户表中email长度大于10的用户id、username和email。
SELECT id,username,email FROM `user` WHERE LENGTH(email)>10;
#13.	查询商品表中stock小于10的商品的name、price和stock。
SELECT `name`,price,`stock` FROM product WHERE `stock`<10;
#14.	查询订单表中status为“待付款”的订单的user_id、total_price和status。
SELECT user_id,total_price,`status` FROM `order` WHERE `status` = "待付款";
#15.	查询订单详情表中quantity大于10的订单详细信息的id、order_id和quantity。
SELECT id,order_id,quantity FROM order_detial  WHERE quantity>10;
#16.	查询用户表中username以“张”开头的用户id、username和email。
SELECT id,username,email FROM `user` WHERE username="张%";
#17.	查询商品表中price大于100且stock大于10的商品的name、price和stock。
SELECT `name`,price,`stock` FROM product WHERE `stock`>10 AND price>100;
#18.	查询订单表中status为“已完成”且total_price大于500的订单的user_id、total_price和status。
SELECT user_id,total_price,`status`FROM `order` WHERE `status`='已完成'AND total_price>500;
#19.	查询订单表中,用户id为1的订单的创建时间(create_time)和更新时间(update_time)。
SELECT user_id,create_time,update_time FROM `order` WHERE user_id=1;
#20.	查询订单表中,订单状态为“待付款”的订单的id、user_id和create_time。
SELECT id,user_id,create_id FROM `order` WHERE `status`='待付款';
#1.	查询用户表中所有用户的昵称(username)和邮箱(email),按照邮箱地址升序排序。
SELECT username,email FROM `user` ORDER BY email ASC;
#2.	查询商品表中所有商品的名字(name)、价格(price)和库存(stock),按照价格降序排序,库存不足10的商品优先显示。
SELECT `name`,price,stock FROM product ORDER BY price DESC,stock ASC;
#3.	查询订单表中所有订单的创建时间(create_time),按照时间升序排序,并显示最近10条订单。
SELECT create_time FROM `order` ORDER BY create_time LIMIT 10;
#4.	查询订单表中的订单总数
SELECT COUNT(*) '订单总数' FROM `order`;
#5.	查询订单表中订单的总金额(total_price)
SELECT SUM(total_price)'总金额' FROM `order`;
#6.	查询订单表中订单的平均金额
SELECT AVG(total_price)'平均金额' FROM `order`;
#7.	查询订单表中订单状态为“已完成”的订单数量。
SELECT COUNT(*)'订单数量'FROM `order` WHERE status='已完成';
#8.	查询订单表中订单状态为“进行中”的订单总金额 
SELECT SUM(total_price)'订单总金额 'FROM `order` WHERE status='进行中';
#9.	查询订单表中第一个订单的创建时间。
SELECT create_time FROM `order` ORDER BY create_time ASC LIMIT 0,1;
#10.	查询订单表中最后一条订单的创建时间。
SELECT create_time FROM `order` ORDER BY create_time DESC LIMIT 0,1;
#11.	查询用户表中年龄在20到30岁的用户,按照年龄升序排序。
SELECT * FROM `user` WHERE age BETWEEN 20 AND 30 ORDER BY age;
#12.	查询商品表中价格在100到500之间的商品,按照价格升序排序。
SELECT * FROM product WHERE price BETWEEN 100 AND 500 ORDER BY price;
#13.	查询订单表中订单状态为“进行中”的订单,按照创建时间升序排序。
SELECT * FROM `order` WHERE status='进行中' ORDER BY create_time;
#14.	查询订单表中由用户1创建的订单,按照订单金额升序排序。
SELECT * FROM `order` WHERE user_id=1 ORDER BY total_price;
#15.	查询订单详情表中订单id为1的订单详情,按照商品名称升序排序。
SELECT * FROM `order` WHERE user_id=1 ORDER BY name;
#16.	查询商品表中库存大于10的商品,并显示商品名和库存。
SELECT `name`,stock FROM product WHERE stock > 10;
#17.	查询订单表中订单状态为“已完成”的订单,按照订单金额降序排序,显示前5条。
SELECT total_price FROM `order` WHERE `status`='已完成'  ORDER BY total_price DESC LIMIT 0,5;
#18.	查询用户表中年龄大于25岁的用户,并显示用户名。
SELECT username FROM `user` WHERE age>25; 
#19.	查询商品表中价格低于200的商品,并显示商品名。
SELECT`name`FROM product WHERE price<200;
#20.	查询订单表中订单状态为“进行中”的订单,按照订单创建时间降序排序,显示最近10条。
SELECT create_time FROM `order` WHERE `status`='进行中' ORDER BY  create_time DESC LIMIT 0,10;
#21.	查询用户表中用户id为1的用户,并显示其昵称和邮箱。
SELECT username,email FROM `user` WHERE id=1;
#22.	查询商品表中库存小于5的商品,并显示商品名和库存。
SELECT `name`,stock FROM product WHERE stock<5;
#23.	查询订单表中订单总金额大于1000的订单,按照订单创建时间升序排序。
SELECT * FROM product WHERE price>1000 ORDER BY creat_time ASC;
#24.	查询订单表中订单状态为“已完成”的订单,并显示订单号和订单状态。
SELECT id,`status` FROM `order` WHERE `status`='已完成';
#25.	查询订单详情表中订单id为1的订单详情,按照商品编号升序排序,显示前10条。
SELECT * FROM order_deatil WHERE order_id=1 ORDER BY product_id ASC LIMIT 0,10;
#26.	 查询订单表中订单状态为“进行中”的订单,按照订单创建时间升序排序,显示最近20条。 
SELECT * FROM `order` WHERE `status`='进行中' ORDER BY create_time ASC LIMIT 0,20;
#27.	查询用户表中年龄在20到30岁的用户,按照年龄降序排序,显示最近5条。
SELECT * FROM `user` WHERE age BETWEEN 20 AND 30 ORDER BY age DESC LIMIT 0,5;
#28.	查询用户表中,按照年龄分组后,年龄在20到30岁的用户数量,并显示各年龄组的用户数量。
SELECT age, COUNT(*) FROM `user` WHERE age BETWEEN 20 AND 30 GROUP BY age;
#29.	查询订单表中,按照订单状态分组后,各订单状态的数量,并按照订单状态降序排序。
SELECT `status`,COUNT(*) '数量' FROM `order` GROUP BY `status` ORDER BY `status` DESC;
#30.	查询订单表中,按照订单状态分组,每个状态下的总金额,并按照总金额降序排序,显示前5条。
SELECT `status`,SUM(total_price) FROM `order` GROUP BY `status` ORDER BY SUM(total_price) DESC LIMIT 0,5;

欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位指点,在此表示感激不尽。文章持续更新中…

相关文章:

MySQL电商管理系统练习题及答案

一 、表结构 用户表(user)&#xff1a;id(主键)、username、password、email、phone、age商品表(product)&#xff1a;id(主键)、name、price、stock、description订单表(order)&#xff1a;id(主键)、user_id(外键&#xff0c;关联用户表)、total_price、status、create_time…...

每日3道PWN(第二天)

ciscn_2019_n_1 参考&#xff1a; [BUUCTF-pwn]——ciscn_2019_n_1-CSDN博客 [BUUCTF]PWN5——ciscn_2019_n_1_ciscn_2019_n_4-CSDN博客 BUUCTF—ciscn_2019_n_1 1-CSDN博客 checksec一下 64位栈溢出 按f5查看main函数&#xff0c;双击可疑函数 发现含有命令执行的且发现fl…...

SAP STMS传输请求

一、概述 一般SAP项目上都会有六套系统&#xff0c;分别是&#xff1a; 测试环境-DEV系统 主要由100&#xff1a;沙盘系统&#xff1a;用于业务顾问配置 200&#xff1a;开发系统&#xff1a;用于开发ABAP写代码 300&#xff1a;测试系统&#xff1a;主要是单元测试、顾问自己…...

L1-009:N个数求和

目录 ⭐题目描述⭐ ⭐分析 ⭐程序代码 运行结果 ⭐文案分享⭐ ⭐题目描述⭐ 本题的要求很简单&#xff0c;就是求N个数字的和。麻烦的是&#xff0c;这些数字是以有理数分子/分母的形式给出的&#xff0c;你输出的和也必须是有理数的形式。 输入格式&#xff1a; 输入第一行给出…...

当发送“Hello,World”时,channel发生了什么?

一、Netty概述 1.Netty是什么&#xff1f; Netty 是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于快速开发可维护、高性能的网络服务器和客户端。 2.Netty的地位怎么样&#xff1f; Netty 在 Java 网络应用框架中的地位就好比&#xff1a;Spring 框架在 JavaEE …...

服务器运行情况及线上排查问题常用命令

一、top命令 指令行&#xff1a; top返回&#xff1a; 返回分为两部分 &#xff08;一&#xff09;系统概览&#xff0c;见图知意 以下是几个需要注意的参数 1、load average&#xff1a; 系统负载&#xff0c;即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分…...

Hadoop学习笔记(HDP)-Part.18 安装Flink

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …...

LeetCode56. 合并区间

&#x1f517;:【贪心算法&#xff0c;合并区间有细节&#xff01;LeetCode&#xff1a;56.合并区间-哔哩哔哩】 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if(intervals.size()0){return intervals;…...

解决typescript报错:找不到名称xxx

现象&#xff1a; 原因&#xff1a;在同时导入默认导出和命名导出时&#xff0c;默认导出必须放在命名导出之前 下面的就是原始文件&#xff1a; 默认导出指&#xff1a; export default导出类型&#xff0c; import时无需大括号 命名导出指&#xff1a; 仅有export关键字…...

UVM中封装成agent

在验证平台中加入monitor时&#xff0c;看到driver和monitor之间的联系&#xff1a;两者之间的代码高度相似。其本质是因为二者 处理的是同一种协议&#xff0c;在同样一套既定的规则下做着不同的事情。由于二者的这种相似性&#xff0c;UVM中通常将二者封装在一起&#xff0c;…...

OSI七层模型与TCP/IP四层模型

一、OSI七层模型简述 OSI 模型的七层是什么&#xff1f;在 OSI 模型中如何进行通信&#xff1f;OSI 模型有哪些替代方案&#xff1f; TCP/IP 模型关于专有协议和模型的说明 二、七层模型详解&#xff08;DNS、CDN、OSI&#xff09; 状态码DNS nslookup命令 CDN whois命令 …...

QT 中 QProgressDialog 进度条窗口 备查

基础API //两个构造函数 QProgressDialog::QProgressDialog(QWidget *parent nullptr, Qt::WindowFlags f Qt::WindowFlags());QProgressDialog::QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *…...

学习ShardingSphere前置知识

学习ShardingSphere前置准备知识 一. SPI SPI&#xff08;Service Provider Interface&#xff09;是一种Java的扩展机制&#xff0c;用于实现组件之间的松耦合。在SPI模型中&#xff0c;服务提供者&#xff08;Service Provider&#xff09;定义了一组接口&#xff0c;而服务…...

读书笔记-《数据结构与算法》-摘要3[选择排序]

选择排序 核心&#xff1a;不断地选择剩余元素中的最小者。 找到数组中最小元素并将其和数组第一个元素交换位置。在剩下的元素中找到最小元素并将其与数组第二个元素交换&#xff0c;直至整个数组排序。 性质&#xff1a; 比较次数(N-1)(N-2)(N-3)…21~N^2/2交换次数N运行…...

Arduino驱动MLX90614红外测温传感器(温湿度传感器)

目录 1、传感器特性 2、测量方法 3、硬件原理图 4、控制器和传感器连线图...

Ubuntu上传文件到SMB共享文件夹

0. 前言 公司有一些数据共享文件夹&#xff0c;平时可以把开发的重要文件放到上面备份。本人开发使用ubuntu系统&#xff0c;共享文件夹是windows的形式&#xff0c;想通过命令的方式&#xff0c;方便快捷&#xff0c;还可shell脚本自动化。 1. 安装挂载库 sudo apt-get upd…...

【Linux】基础IO--重定向理解Linux下一切皆文件缓冲区

文章目录 一、重定向1.什么是重定向2.dup2 系统调用3.理解输入重定向、输出重定向和追加重定向4.简易shell完整实现 二、理解linux下一切皆文件三、缓冲区1.为什么要有缓冲区2.缓冲区的刷新策略3.缓冲区的位置4.实现一个简易的C语言缓冲区5.内核缓冲区 一、重定向 1.什么是重定…...

RINEX介绍

一、RINEX是什么 Receiver Independent Exchange Format (RINEX) 是一种用于存储、交换和处理全球定位系统 (GPS) 接收机观测数据的标准化文件格式。RINEX 格式由国际电信联盟 (ITU) 和国际GPS服务 (IGS) 组织共同开发和维护。它提供了一种通用的数据格式&#xff0c;使得不同…...

ROS-ROS通信机制-服务通信

文章目录 一、服务通信基本知识二、自定义srv三、C实现四、Python实现 一、服务通信基本知识 服务通信也是ROS中一种极其常用的通信模式&#xff0c;服务通信是基于请求响应模式的&#xff0c;是一种应答机制。也即: 一个节点A向另一个节点B发送请求&#xff0c;B接收处理请求…...

chown和chmod

chown和chmod都是在Linux和Unix系统中用于设置文件和文件夹权限的命令&#xff0c;但它们的功能和用途有所不同。 功能&#xff1a;chown主要用于修改文件或文件夹的所有者和所属组&#xff0c;而chmod则主要用于修改文件或文件夹的读写执行权限。用途&#xff1a;如果想要授权…...

【GPU】linux 安装、卸载 nvidia 显卡驱动、cuda 的官方文档、推荐方式(runfile)

文章目录 1. 显卡驱动1.1. 各版本下载地址1.2. 各版本文档地址1.3. 安装、卸载方式 2. CUDA2.1. 各版本下载地址2.2. 各版本文档地址2.3. 安装、卸载方式2.4. 多版本 CUDA 切换方式 1. 显卡驱动 1.1. 各版本下载地址 https://www.nvidia.com/Download/Find.aspx?langzh-cn 1…...

6页手写笔记总结信号与系统常考知识大题知识点

题型一 判断系统特性题型二 求系统卷积题型三 求三大变换正反变换题型四 求全响应题型五 已知微分方程求系统传递函数题型六 已知系统的传递函数求微分方程题型七 画出系统的零极点图&#xff0c;并判断系统的因果性和稳定性 &#xff08;笔记适合快速复习&#xff0c;可能会有…...

Qt-QSplitter正确设置比例

简短版本&#xff1a; splitter->setSizes({1000, 2000}); // 这个值至少跟像素值设置的一样大&#xff0c;或者更大&#xff0c;例如x10倍详细版本&#xff1a; setSizes 官方介绍如下&#xff1a; Sets the child widgets’ respective sizes to the values given in the…...

一篇吃透大厂面试题,2024找工作一帆风顺。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…...

【1day】用友 U8 Cloud系统TaskTreeQuery接口SQL注入漏洞学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...

华为快应用中自定义Slider效果

文章目录 一、前言二、实现代码三、参考链接 一、前言 在华为快应用中官方提供了<slider>控件&#xff0c;但是这个控件的限制比较多&#xff0c;比如滑块无法自定义&#xff0c;所以这里进行下自定义&#xff0c;自己修改样式。 二、实现代码 整体效果如下: 源码如下…...

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …...

CCF计算机软件能力认证考试—202209-1如此编码

题目背景 某次测验后&#xff0c;顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字&#xff0c;小 P 同学不禁陷入了沉思…… 题目描述 已知某次测验包含 &#xfffd; 道单项选择题&#xff0c;其中第 &#xfffd; 题&#xff08;1≤&#xfffd;≤&…...

Ubuntu18.04安装Ipopt-3.12.8流程

本文主要介绍在Ubuntu18.04中安装Ipopt库的流程&#xff0c;及过程报错的解决方法&#xff0c;已经有很多关于Ipopt安装的博客&#xff0c;但经过我的测试&#xff0c;很多都失效了&#xff0c;经过探索&#xff0c;找到可流畅的安装Ipopt的方法&#xff0c;总结成本篇博客。 …...

linux 内核同步互斥技术之信号量

信号量 信号量允许多个进程同时进入临界区&#xff0c;大多数情况下只允许一个进程进入临界区&#xff0c;把信号量的计数值设置为 1&#xff0c;即二值信号量&#xff0c;这种信号量称为互斥信号量。可允许多个锁持有者。 和自旋锁相比&#xff0c;信号量适合保护比较长的临界…...

上海手机网站建设/市场推广方案

云计算在眼下的中国呈现出冰火两重天的怪象&#xff1a;这边厢&#xff0c;云服务提供商们个个摩拳擦掌、热情高涨&#xff0c;大家恨不得从“万亿云计算市场”蛋糕中分得一大块&#xff0c;却鲜有人脚踏实地做产品&#xff1b;那边厢&#xff0c;用户们迷茫、观望者甚多&#…...

wordpress 访客/广州全网推广

目录 一.静态代理 二.动态代理&#xff1a; 一.静态代理 1&#xff09;静态代理角色分析&#xff1a; a&#xff1a;抽象角色&#xff1a;一般使用接口 或者 抽象类来实现。 b&#xff1a;真实角色&#xff1a;被代…...

毕业设计代做网站都有哪些/如何建网站

作者&#xff1a; 小马哥 rstevens (rstevens2008hotmail.com) 欢迎转载&#xff0c;未经允许&#xff0c;请勿用于商业目的1. 定义 Packet&#xff1a; 通过网卡收发的报文&#xff0c;包括链路层、网络层、传输层的协议头和携带的数据 Data Buffer&#xff1a;用…...

wordpress中国/汕头网站关键词推广

1.注释注释是为了解释某些代码所加的文字&#xff0c;类似批注&#xff0c;提高程序可读性。编译时&#xff0c;编译器直接跳过&#xff0c;不会 变成字节码文件。单行注释&#xff1a;以"//"开头&#xff0c;这一行"//"后面均为注释&#xff0c;换行即结束…...

酒类网站如何做/推广网站源码

定期更新新媒体知识&#xff0c;在学习之中&#xff0c;有问题可以留言&#xff0c;大家交流&#xff0c;谢谢&#xff01;新媒体平台视觉呈现 头像&#xff1a;表明账号主体&#xff0c;加深印象 名称&#xff1a;账号的名字&#xff0c;最好能说明账号内容领域或主题&#x…...

wordpress文章相关文章/太原seo快速排名怎么样

2019独角兽企业重金招聘Python工程师标准>>> 一、为什么跳槽和选择公司 1. 为什么跳槽 虽然我们跳槽的原因各自不同&#xff0c;但是主要原因一般都是 待遇、成长、稳定这些主要因素&#xff0c;也有一些比如想距离家更近等等因素。 待遇就是收入&#xff0c;比如工…...