MySQL每日一练--销售管理系统

一,创建数据库SaleSys

在数据库SaleSys中创建3张表

  • 品牌信息表(brand
  1. BrandId    --品牌编号,整型,自动增长,主键
  2. BrandName  --品牌名称,字符型, 唯一约束
  • 商品表(Item
  1. ItemId     --商品编号,整型,自动增长,主键
  2. ItemName   --商品名称,字符型,非空,唯一
  3. ItemBirth  --生产日期,非空
  4. ItemPrice  --价格,小数,非空,检查约束不能是负数
  5. BrandId --品牌编号,非空,外键
  • 销量表(sale
  1. SaleId     --销售编号,整型,自动增长,主键
  2. ItemId    --商品编号,外键非空
  3. SaleNum   --销售数量,检查约束必须大于0
  4. SaleDate  --成交时间,非空

    4,三张表的参考数据如下

  

三,完成如下查询题目

---------------------------------------------------------------------

--1、求表中最大的价格

--2、求每个品牌的最大价格

--3、求品牌最大的价格超过的品牌编号和价格

--4、求表中最小的价格

--5、求每个品牌的最小价格

--6、求品牌最小的价格小于的品牌编号和价格

--7、求生产日期在-08-08之后的,每个品牌最小的价格小于的

--8、求表中价格的合计值

--9、求每个品牌的合计值

--10、求品牌合计值在到之间

--11、求所有产品的价格平均值

--12、求每一个品牌的平均值

--13、求品牌平均值是405060的有哪些

--14、求一共有多少种产品

--15、求每个品牌有多少产品

--16、每个品牌产品数在12之间的

---------------------------------------------------------------------

--1  查询Item表,统计出品牌编号为1的商品的最大价格和最低价格是多少

--2  查询Item表,统计出一共有多少商品

--3  查询Item表,统计出生产日期在2015-08-09之前的商品的最大价格和商品总数

--4  查询Sale表,统计出商品号为1的商品的销售平均销量

--5  查询Sale表,统计出最大商品编号和最小商品编号

--6  查询Brand表,统计有多少品牌

--7  查询Brand表,统计出品牌中有""字的品牌有多少中

--8  查询Item表,统计出价格在100元之上的商品的合计价格

---------------------------------------------------------------------

-   1、统计销售表,获取销售总量、销售记录数、销售平均量各是多少

--  2、统计出销售日期在2015-08-082015-09-10之间的产品的销售数量平均值、最大值、最低值

--  3、统计出品牌下有商品的品牌数量

--  4、求品牌编号为2的商品的平均值是405060的有哪些商品

--  5、品牌编号为的产品合计值

--  6、求品牌合计值在大于的品牌

-- 一,	创建数据库SaleSys
-- 1,删除数据库
	DROP DATABASE IF EXISTS SaleSys;
-- 2,创建数据库
	CREATE DATABASE SaleSys;
-- 3,修改数据库编码方式和字符集排列顺序
	ALTER DATABASE SaleSys CHARACTER SET utf8 COLLATE utf8_bin;
-- 4,使用数据库
	USE SaleSys;
-- 5,查看当前所有数据库
	SHOW DATABASES;
-- 二,	在数据库SaleSys中创建3张表
-- 1,	品牌信息表(brand)
DROP TABLE IF EXISTS brand;
CREATE TABLE brand(
 BrandId INT PRIMARY KEY AUTO_INCREMENT,    -- 品牌编号,整型,自动增长,主键
 BrandName VARCHAR(20) UNIQUE  -- 品牌名称,字符型, 唯一约束
);
-- 2,	商品表(Item)
DROP TABLE IF EXISTS Item;
CREATE TABLE Item(
ItemId INT PRIMARY KEY AUTO_INCREMENT, 		-- 商品编号,整型,自动增长,主键
ItemName VARCHAR(20) UNIQUE NOT NULL, 	-- 商品名称,字符型,非空,唯一
ItemBirth DATETIME NOT NULL,       -- 生产日期,非空
ItemPrice FLOAT NOT NULL CHECK(ItemPrice>=0),	-- 价格,小数,非空,检查约束不能是负数
BrandId INT,
 FOREIGN KEY (BrandId) REFERENCES brand(BrandId)        -- 品牌编号,非空,外键
);
-- 3,	销量表(sale)
DROP TABLE IF EXISTS sale;
CREATE TABLE sale(
SaleId INT PRIMARY KEY AUTO_INCREMENT,       -- 销售编号,整型,自动增长,主键
ItemId INT NOT NULL,                         -- 商品编号,外键非空
SaleNum INT NOT NULL CHECK(SaleNum>=0),      -- 销售数量,检查约束必须大于0
SaleDate DATETIME NOT NULL,
 FOREIGN KEY (ItemId) REFERENCES Item(ItemId)    -- 成交时间,非空
);
-- 三添加数据
-- 1,添加品牌表brand数据		
INSERT INTO brand VALUES( DEFAULT,'戴尔');
INSERT INTO brand VALUES( DEFAULT,'华硕');
INSERT INTO brand VALUES( DEFAULT,'联想');
INSERT INTO brand VALUES( DEFAULT,'美化');
INSERT INTO brand VALUES( DEFAULT,'苹果');
SELECT * FROM brand;
-- 2,添加商品表item数据
INSERT INTO Item VALUES(DEFAULT,'电脑','2013-10-20 09:30:12',3999,1);
INSERT INTO Item VALUES(DEFAULT,'耳机','2014-05-21 21:32:54',44,2);
INSERT INTO Item VALUES(DEFAULT,'路由器','2014-05-21 21:32:54',55,2);
INSERT INTO Item VALUES(DEFAULT,'猫','2014-05-21 21:32:54',22,1);
INSERT INTO Item VALUES(DEFAULT,'键盘','2014-05-21 21:32:54',45,3);
INSERT INTO Item VALUES(DEFAULT,'可乐','2012-07-06 15:35:24',3.5,3);
INSERT INTO Item VALUES(DEFAULT,'手机','2015-04-13 14:34:55',3,4);
INSERT INTO Item VALUES(DEFAULT,'数据线','2015-05-19 08:20:52',79,5);
SELECT * FROM  Item;
-- 3,添加销售表sale数据
INSERT INTO sale VALUES(DEFAULT,1,2,'2015-05-29 16:21:53');
INSERT INTO sale VALUES(DEFAULT,1,50,'2015-05-29 19:15:23');
INSERT INTO sale VALUES(DEFAULT,2,50,'2015-05-29 19:15:23');
INSERT INTO sale VALUES(DEFAULT,2,20,'2015-05-29 19:15:23');
INSERT INTO sale VALUES(DEFAULT,2,50,'2015-05-29 19:15:23');
INSERT INTO sale VALUES(DEFAULT,3,16,'2015-05-29 21:40:08');
INSERT INTO sale VALUES(DEFAULT,3,5,'2015-05-29 12:06:35');
INSERT INTO sale VALUES(DEFAULT,5,12,'2015-05-29 09:00:45');
SELECT * FROM  sale;
-- 四,完成如下查询题目
-- -------------------------------------------------------------------
-- 1、求表中最大的价格
SELECT MAX(ItemPrice) 最大的价格 FROM item;
SELECT ItemPrice 最大的价格 FROM item ORDER BY ItemPrice DESC LIMIT 1;
-- 2、求每个品牌的最大价格
SELECT BrandId 品牌编号,MAX(ItemPrice) 最大的价格 FROM item GROUP BY BrandId;
-- 3、求品牌最大的价格超过50的品牌编号和价格
SELECT BrandId 品牌编号,MAX(ItemPrice) 最大的价格 FROM Item
GROUP BY BrandId HAVING MAX(ItemPrice)>=50;
-- 4、求表中最小的价格
SELECT MIN(ItemPrice) 最小的价格 FROM Item;
SELECT ItemPrice 最小的价格 FROM item ORDER BY ItemPrice LIMIT 1;
-- 5、求每个品牌的最小价格
SELECT BrandId 品牌编号,MIN(ItemPrice) 最小的价格 FROM item GROUP BY BrandId;
-- 6、求品牌最小的价格小于10的品牌编号和价格
SELECT BrandId 品牌编号,MIN(ItemPrice) 最小的价格 FROM item
GROUP BY BrandId HAVING MIN(ItemPrice)<10;
-- 7、求生产日期在2013-08-08之后的,每个品牌最小的价格小于50的
SELECT BrandId 品牌编号,MIN(ItemPrice) 最小的价格
FROM item WHERE ItemBirth>'2013-08-08'
GROUP BY BrandId HAVING MIN(ItemPrice)<50;
-- 8、求表中价格的合计值
SELECT SUM(ItemPrice) 价格的合计值 FROM Item;
-- 9、求每个品牌的合计值
SELECT BrandId 品牌编号,SUM(ItemPrice) 价格的合计值 FROM Item GROUP BY BrandId;
-- 10、求品牌合计值在到40-100之间
SELECT BrandId 品牌编号,SUM(ItemPrice) 价格的合计值 FROM Item 
GROUP BY BrandId HAVING SUM(ItemPrice) BETWEEN 40 AND 100;
-- 11、求所有产品的价格平均值
SELECT AVG(ItemPrice) 价格平均值 FROM Item;
-- 12、求每一个品牌的平均值
SELECT BrandId, AVG(ItemPrice) 每一个品牌的平均值 FROM Item GROUP BY BrandId;
-- 13、求品牌平均值是40、50、60的有哪些
SELECT BrandId 品牌编号 FROM Item GROUP BY BrandId HAVING AVG(ItemPrice) IN (40, 50, 60);
-- 14、求一共有多少种产品
SELECT COUNT(DISTINCT ItemName) 产品数 FROM Item;
-- 15、求每个品牌有多少产品
SELECT BrandId 品牌编号, COUNT(ItemName) 产品数 FROM Item GROUP BY BrandId;
-- 16、每个品牌产品数在1到2之间的
SELECT BrandId 品牌编号, COUNT(ItemName) 产品数 FROM Item GROUP BY BrandId HAVING COUNT(ItemName) BETWEEN 1 AND 2;
-- -------------------------------------------------------------------
-- 1、	查询Item表,统计出品牌编号为1的商品的最大价格和最低价格是多少
SELECT MAX(ItemPrice)最大价格,MIN(ItemPrice)最低价格 FROM Item WHERE BrandId = 1;
-- 2、	查询Item表,统计出一共有多少商品
SELECT COUNT(ItemId) 商品数 FROM Item;
-- 3、	查询Item表,统计出生产日期在2015-08-09之前的商品的最大价格和商品总数
SELECT MAX(ItemPrice) 最大价格, COUNT(ItemId) 商品总数 FROM Item WHERE ItemBirth<'2015-08-09';
-- 4、	查询Sale表,统计出商品号为1的商品的销售平均销量
SELECT AVG(SaleNum) AS 销售平均销量 FROM Sale WHERE ItemId=1;
-- 5、	查询Sale表,统计出最大商品编号和最小商品编号
SELECT MAX(ItemId) 最大商品编号, MIN(ItemId) 最小商品编号 FROM Item;
-- 6、	查询Brand表,统计有多少品牌
SELECT COUNT(*) 品牌数 FROM Brand;
-- 7、	查询Brand表,统计出品牌中有"水"字的品牌有多少中
SELECT COUNT(*) 有“水”字的品牌 FROM Brand WHERE BrandName LIKE '%水%';
-- 8、	查询Item表,统计出价格在100元之上的商品的合计价格
SELECT SUM(ItemPrice) 合计价格 FROM Item WHERE ItemPrice > 100;
-- -------------------------------------------------------------------
-- 1、统计销售表,获取销售总量、销售记录数、销售平均量各是多少
SELECT SUM(SaleNum) 销售总量,COUNT(*) 销售记录数,AVG(SaleNum) 销售平均量 FROM sale;
-- 2、统计出销售日期在2015-08-08到2015-09-10之间的产品的销售数量平均值、最大值、最低值
SELECT AVG(SaleNum) 销售数量平均值,MAX(SaleNum) 销售数量最大值, MIN(SaleNum) 销售数量最低值
FROM sale
WHERE SaleDate BETWEEN '2015-08-08' AND '2015-09-10';
-- 3、统计出品牌下有商品的品牌数量
SELECT COUNT(DISTINCT BrandName) AS 有商品的品牌数量 FROM Brand;
-- 4、求品牌编号为2的商品的平均值是40、50、60的有哪些商品
SELECT Item.ItemId 商品编号,Item.ItemName 商品名称
FROM Item 
JOIN sale ON Item.ItemId = sale.ItemId
WHERE BrandId = 4 AND ItemPrice IN (40,50,60);
-- 5、品牌编号为2的产品合计值
SELECT SUM(ItemPrice) 产品合计值
FROM Item
WHERE BrandId = 2;
-- 6、求品牌合计值在大于1000的品牌
SELECT BrandName 品牌名称
FROM Brand
WHERE BrandId=
(SELECT BrandId FROM Item GROUP BY BrandId HAVING SUM(ItemPrice) >1000);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/89085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RTSP/Onvif视频服务器EasyNVR安防视频云服务平台出现崩溃并重启的情况解决方案

EasyNVR安防视频云服务平台的特点是基于RTSP/Onvif协议将前端设备统一接入&#xff0c;在平台进行转码、直播、处理及分发&#xff0c;在安防监控场景中&#xff0c;EasyNVR可实现实时监控、云端录像、云存储、告警、级联等视频能力&#xff0c;极大满足行业的视频监控需求。 有…

mysql 8.0 窗口函数 之 序号函数 与 sql server 序号函数 一样

sql server 序号函数 序号函数 ROW_NUMBER() 顺序排序RANK() 并列排序&#xff0c;会跳过重复的序号&#xff0c;比如序号为1&#xff0c;1&#xff0c;3DENSE_RANK() 并列排序&#xff0c;不会跳过重复的序号&#xff0c;比如 序号为 1&#xff0c;1&#xff0c;2 语法结构…

《Zookeeper》源码分析(二十)之 Follower

目录 Follower创建Follower实例followLeader()findLeader()connectToLeader()registerWithLeader()syncWithLeader() FollowerZooKeeperServer Follower Leader选举结束后&#xff0c;成为Follower的服务器开始进行Follower的工作&#xff0c;过程如下&#xff1a; 与Leader…

汉诺塔问题--夏令营

题目 tips&#xff1a; 1.本题只用多试几次&#xff0c;由数据推导规律即可 2.汉诺塔问题分析 这里的递归函数是&#xff08;n,a,b,c&#xff09;指n个盘子从a移到c&#xff0c;且凭借b 递归边界是n1 原始思想&#xff1a;要想把n个盘子从a移到c,若n1则直接move a到c n>…

【LUBAN】【功能验证】至简投屏功能之Android有线连接方式测试

1、概述 至简投屏功能之Android有线连接方式支持至简自带应用至加的投屏功能和谷歌官方的Android auto功能。 支持的功能范围列举如下&#xff1a; 1、屏幕投屏&#xff08;支持自动旋转屏&#xff09;2、音视频播放&#xff08;抖音、百度地图等&#xff09;3、车机反控手机…

vue中使用echarts三维的项目

需要安装 echarts 同时引入 echarts-gl 我安装的版本&#xff1a; "echarts": "^5.3.2", "echarts-gl": "^2.0.9", 效果 &#xff1a; 安装后main.js引入 import Vue from "vue"; import * as echarts from "echart…

车联网技术介绍

上图是目前车联网架构图&#xff0c;基于“云-管-端”的车联网系统架构以支持车联网应用的实现&#xff0c; “云”是指 V2X 基础平台、高基于精度定位平台等基础能力&#xff0c;可实现车辆动态厘米级定位&#xff0c;这将满足现阶段以及未来车联网应用场景的定位精度需求。 “…

滑动验证组件---设置movable-view组件的x属性在微信小程序端失效的问题

场景 采用uniapp的movable-view组件实现滑动验证组件。 流程 滑块未滑到最右端时&#xff0c;回弹到原点滑块滑到最右端时&#xff0c;则显示滑动结束&#xff0c;不可再滑动 问题 频繁设置uniapp的movable-view组件的x属性&#xff0c;在H5端正常&#xff0c;但在微信小程…

Linux —— 进程间通信(System V)

目录 一&#xff0c;共享内存 申请共享内存 shmget 控制共享内存 shmctl 关联共享内存 shmat / 去联共享内存 shmdt 二&#xff0c;消息队列 创建或打开消息队列 msgget 发送消息 msgsnd / 接收消息 msgrcv 控制消息 msgctl 三&#xff0c;信号量 创建或打开信号量 s…

【esp32】GPIO引脚功能使用集合

本文主要介绍 esp32 这块芯片的GPIO 口功能使用以及软硬件设计注意事项 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#x1f4dd; 个人主页&#xff1a;欢迎访问我的 Ethernet_Comm 博客主页…

Mac操作系统Safari 17全新升级:秋季推出全部特性

苹果的内置浏览器可能是Mac上最常用的应用程序&#xff08;是的&#xff0c;甚至比Finder、超级Mac Geeks还要多&#xff09;。因此&#xff0c;苹果总是为其浏览器Safari添加有用的新功能。在今年秋天与macOS Sonoma一起推出的第17版中&#xff0c;Safari可以帮助你提高工作效…

【HCIP】15.MPLS基础

多协议标签交换 MPLS位于TCP/IP协议栈中的数据链路层和网络层之间&#xff0c;可以向所有网络层提供服务。 通过在数据链路层和网络层之间增加额外的MPLS头部&#xff0c;基于MPLS头部实现数据快速转发。 术语 MPLS域&#xff08;MPLS Domain&#xff09;&#xff1a;一系列…

C语言学习笔记(完整版)

文章目录 算法算法的基本概念算法的特征算法的优劣 描述算法三种基本结构流程图N-S流程图伪代码 常量和变量了解数据类型常量整形常量实型常量字符型常量转义字符符号常量 变量整形变量实型变量字符型变量 表达式与运算符赋值运算符和赋值表达式变量赋初值强制类型转换 算术运算…

行式存储与列式存储

1.概述 数据处理大致可分为两大类&#xff0c;联机事务处理OLTP(on-line transaction processing) 和联机分析处理OLAP(on-line analytical processing)。 OLTP是传统关系型数据库的主要应用&#xff0c;用来执行一些基本的、日常的事务处理&#xff0c;比如数据库记录的增、删…

LAMP配置与应用

web资源类型&#xff1a; 静态资源&#xff1a;原始形式与响应内容一致&#xff0c;在客户端浏览器执行 动态资源&#xff1a;原始形式通常为程序文件&#xff0c;需要在服务器端执行之后&#xff0c;将执行结果返回给客户端 LAMP架构组成&#xff1a; L&#xff1a;linux …

翻倍以链表形式表示的数字

题目&#xff1a; 示例&#xff1a; 思路&#xff1a; 有点相似于&#xff1a;链表相加II&#xff0c;这道题我们仍然有进位&#xff0c;但不同的是&#xff0c;链表相加我们选择了开辟新节点&#xff0c;这道题我们选择反转两次链表&#xff0c;开始一次&#xff0c;结束一次…

测试工具coverage的高阶使用

在文章Python之单元测试使用的一点心得中&#xff0c;笔者介绍了自己在使用Python测试工具coverge的一点心得&#xff0c;包括&#xff1a; 使用coverage模块计算代码测试覆盖率使用coverage api计算代码测试覆盖率coverage配置文件的使用coverage badge的生成 本文在此基础上…

CrystalNet .Net VCL for Delphi Crack

CrystalNet .Net VCL for Delphi Crack VCL或更为人所知的可视化组件库是基于一个面向对象的框架&#xff0c;什么是用户对开发人员和事件的Microsoft Windows应用程序的接口。可视化组件库是用对象Pascal编写的。它主要是为使用Borland而开发的&#xff0c;它具有与Delphi以及…

Excel/PowerPoint折线图从Y轴开始(两侧不留空隙)

默认Excel/PowerPoint折线图是这个样子的&#xff1a; 左右两侧都留了大块空白&#xff0c;很难看 解决方案 点击横坐标&#xff0c;双击&#xff0c;然后按下图顺序点击 效果