一、前言
该项目非常适合MySQL入门学习的小伙伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表设计有什么不恰当还请各位大佬多多指点。
所需
环境
MySQL可视化
工具:navicat;
数据库:MySql 5.7/8.0等
版本均可;
需求:
1:每个书店有多家供应商,每家供应商给多个书店供货。
2:每个书店聘用多名员工,每个员工只属于一个书店每个书店存放多本图书,多本图书存放在一家书店。
4: 每本图书可以被任何会员购买,一名会员可以购买任意一本图书。
备注:
书店包含下列属性: 编号,地址,书店名字,老板电话;
员工包含下列属性: 身份证,名字,性别,年龄;
图书包含下列属性: 编号,书名,价格,库存量;
会员包含下列属性: 编号,姓名,电话,积分;
关于某供应商给书店供货要描述供货日期;
关于书店聘用员工要描述聘用日期:
关于会员购买图书需要描述购买数量;
关于书店存放图书需要描述存放位置。
二、E-R图
供应商:(供应商编号,供应商地址,供应商联系人,供应商联系电话,供应商名字,供应商备注)。
书店:(书店编号,书店地址,书店名字,书店老板电话)
员工:(身份证,员工名字,员工性别,员工年龄,书店编号,聘用时期)
图书:(图书编号,书名,价格,库存量,书店编号,存放位置)
会员:(会员编号,会员姓名,会员电话,积分)。
供应信息:(供应商编号,书店编号,供应时间)
购买信息:(会员编号,图书编号,购买数量)
备注:
下划线为主键,红色字为外键;
表1 供应商
字段
数据类型
长度
备注
供应商编号
varchar
50
主键
供应商地址
varchar
50
供应商联系人
varchar
50
供应商联系电话
varchar
50
供应商名字
varchar
50
Not null
供应商备注
varchar
50
表2 书店
字段
数据类型
长度
备注
书店编号
varchar
50
主键
书店地址
varchar
50
书店名字
varchar
50
Not null
书店老板电话
Varchar
50
表3 员工
字段
数据类型
长度
备注
身份证
varchar
20
主键
员工性别
varchar
50
员工年龄
Int
3
员工名字
varchar
50
Not null
书店编号
varchar
50
外键
聘用时间
date
Not null
表4 图书
字段
数据类型
长度
备注
图书编号
varchar
50
主键
书名
varchar
50
Not null
价格
float
8
库存量
int
8
书店编号
varchar
50
外键
存放位置
varchar
50
Not null
表5 会员
字段
数据类型
长度
备注
会员编号
varchar
50
主键
会员姓名
varchar
50
Not null
会员电话
varchar
50
积分
int
50
表6 供应信息
字段
数据类型
长度
备注
供应商编号
varchar
50
主键
书店编号
varchar
50
主键
供货时间
date
Not null
表7 购买信息
字段
数据类型
长度
备注
图书编号
varchar
50
主键
会员编号
varchar
50
主键
购买数量
int
8
Not null
Create database 书店图书进销存
管理系统 character set utf8
collate utf8_general_ci
创建各实体表:
1. 供应商
供应商编号 VARCHAR(50) PRIMARY KEY,
供应商名字 VARCHAR(50) NOT NULL,
2.书店
书店编号 varchar(50) PRIMARY KEY,
书店名字 VARCHAR(50) NOT NULL,
3.员工
身份证 VARCHAR(50) PRIMARY KEY,
员工姓名 VARCHAR(50) NOT NULL,
CONSTRAINT FK书店编号 FOREIGN KEY(书店编号) REFERENCES 书店(书店编号)
4.图书
图书编号 VARCHAR(50) PRIMARY KEY,
存放
位置 VARCHAR(
50)
NOT NULL,
CONSTRAINT FK_书店编号 FOREIGN KEY (书店编号) REFERENCES 书店(书店编号)
5.会员
会员编号 VARCHAR(50) PRIMARY KEY,
会员姓名 VARCHAR(50) NOT NULL,
6. 供应信息
7. 购买信息
插入
数据:
1. 供应商
INSERT INTO 供应商 VALUES (G001,春熙路12号,李明,13123451234,邮电出版社,优等)
INSERT INTO 供应商 VALUES (G002,天府路85号,薛鹏,15198762347,工业出版社,良好)
INSERT INTO 供应商 VALUES (G003,太升路35号,林波,15823140987,机械出版社,良好)
INSERT INTO 供应商 VALUES (G004,民航路94号,苏珊,18078651234,民航出版社,优等)
INSERT INTO 供应商 VALUES (G005,芙蓉路53号,林达,18698704563,商务出版社,良好)
INSERT INTO 供应商 VALUES (G006,天府三街6号,小野,19382069330,三街出版社,优等)
INSERT INTO 供应商 VALUES (G007,十三区43号,成龙,17865989988,符咒出版社,优等)
INSERT INTO 供应商 VALUES (G008,成华大道66号,谭警官,16666666666,成华出版社,良好)
INSERT INTO 供应商 VALUES (G009,天益街83号,橙汁,18765498596,橙汁出版社,优等)
INSERT INTO 供应商 VALUES (G0010,二仙桥23号,二大爷,15465989586,大爷版社,优等)
2.书店
INSERT INTO 书店 VALUES (S001, 长城路5号, 求实书店, 13612345678)
INSERT INTO 书店 VALUES (S002, 长江路64号, 上进书店, 13703456784)
INSERT INTO 书店 VALUES (S003, 黄河路93号, 梦想书店, 13882346743)
INSERT INTO 书店 VALUES (S004, 泰山路59路, 书虫书店, 13998762345)
INSERT INTO 书店
VALUES (
S005,
青城山路23号,
创业书店,
13976543214)
INSERT INTO 书店 VALUES (S006, 春熙路13号, 邮电书店, 13598657412)
INSERT INTO 书店 VALUES (S007, 天府路86号, 工业书店, 15146523698)
INSERT INTO 书店 VALUES (S008, 太升路36号, 机械书店, 14756329833)
INSERT INTO 书店 VALUES (S009, 民航路95号, 民航书店, 16654233322)
INSERT INTO 书店 VALUES (S010, 芙蓉路54号, 商务书店, 13322336655)
3.员工
INSERT INTO 员工 VALUES (511001199001011234, 张三, 男, 33, S001, 2009-07-01)
INSERT INTO 员工 VALUES (510102199102032345, 李四, 男, 32, S002, 2008-03-01)
INSERT INTO 员工 VALUES (510101199203033456, 王丽, 女, 31, S003, 2007-04-01)
INSERT INTO 员工 VALUES (510101199303033456, 王宝玉, 男, 30, S004, 2007-04-01)
INSERT INTO 员工 VALUES (510104199408095678, 秦松, 男, 29, S005, 2006-08-01)
INSERT INTO 员工 VALUES (510001199105079965, 丁真, 男, 32, S006, 2010-06-28)
INSERT INTO 员工 VALUES (510011199304261355, 李明, 男, 30, S007, 2009-01-15)
INSERT INTO 员工 VALUES (510010199512140932, 李华, 女, 28, S008, 2012-05-29)
INSERT INTO 员工 VALUES (510110199811230623, 王明, 男, 25, S009, 2013-04-30)
INSERT INTO 员工 VALUES (510023199407112556, 林琬茹, 女, 29, S010, 2009-09-01)
4.图书
INSERT INTO 图书 VALUES (T001, 围城, 58, 31, S001, 一楼)
INSERT INTO 图书 VALUES (T002, 边城, 46, 12, S002, 二楼)
INSERT INTO 图书 VALUES (T003, 平凡的世界, 32, 87, S003, 三楼)
INSERT INTO 图书 VALUES (T004, 撒野, 36, 67, S004, 二楼)
INSERT INTO 图书 VALUES (T005, 人间失格, 28, 28, S005, 二楼)
INSERT INTO 图书 VALUES (T006, 狂人日记, 99, 16, S006, 三楼)
INSERT INTO 图书 VALUES (T007, 乌合之众, 32, 86, S007, 一楼)
INSERT INTO 图书 VALUES (T008, 自卑与超越, 42, 66, S008, 二楼)
INSERT INTO 图书 VALUES (T009, 人生, 66, 74, S009, 三楼)
INSERT INTO 图书 VALUES (T010, 活着, 78, 33, S010, 一楼)
5.会员
INSERT INTO 会员 VALUES (V001, 林丹, 17109872345, 654)
INSERT INTO 会员 VALUES (V002, 十三, 17209874321, 1368)
INSERT INTO 会员 VALUES (V003, 陈羽, 17308763456, 69)
INSERT INTO 会员 VALUES (V004, 杨帆, 17408765467, 743)
INSERT INTO 会员 VALUES (V005, 小白, 17567431298, 475)
INSERT INTO 会员 VALUES (V006, 小黑, 17632684456, 216)
INSERT INTO 会员 VALUES (V007, 黑大帅, 17698978445, 448)
INSERT INTO 会员 VALUES (V008, 潇洒哥, 17544748596, 666)
INSERT INTO 会员 VALUES (V009, 格林, 17488932254, 1473)
INSERT INTO 会员 VALUES (V010, 路遥, 17588141121, 187)
6. 供应信息
INSERT INTO 供应信息 VALUES (G001, S001, 2020-04-21)
INSERT INTO 供应信息 VALUES (G002, S002, 2020-04-22)
INSERT INTO 供应信息 VALUES (G003, S003, 2020-04-23)
INSERT INTO 供应信息 VALUES (G004, S004, 2020-04-20)
INSERT INTO 供应信息 VALUES (G005, S005, 2020-04-21)
INSERT INTO 供应信息 VALUES (G006, S006, 2020-04-22)
INSERT INTO 供应信息 VALUES (G007, S007, 2020-04-22)
INSERT INTO 供应信息 VALUES (G008, S008, 2020-04-21)
INSERT INTO 供应信息 VALUES (G009, S009, 2020-04-24)
INSERT INTO 供应信息 VALUES (G010, S010, 2020-04-23)
7. 购买信息
INSERT INTO 购买信息 VALUES (T001, V010, 2)
INSERT INTO 购买信息 VALUES (T002, V009, 4)
INSERT INTO 购买信息 VALUES (T003, V008, 5)
INSERT INTO 购买信息 VALUES (T004, V007, 2)
INSERT INTO 购买信息 VALUES (T005, V006, 1)
INSERT INTO 购买信息 VALUES (T006, V005, 6)
INSERT INTO 购买信息 VALUES (T007, V004, 7)
INSERT INTO 购买信息 VALUES (T008, V003, 3)
INSERT INTO 购买信息 VALUES (T009, V002, 2)
INSERT INTO 购买信息 VALUES (T010, V001, 1)
六、主要查询命令
查询所有书店地址信息结果
select 书店
地址 from 书店
查询四月所有供应商中哪些供应过书籍。(查看供应商编号)
select DISTINCT 供应商编号
from 供应信息
where 供应时间
like 2020-04%
查询所有书店中年龄最大的男员工姓名。
select 员工姓名
from 员工
where 员工性别
= 男 ORDER BY 员工年龄
desc limit
1
查询书店老板电话为139开头的书店名字。
select 书店名字
from 书店
where 书店老板电话
like 139%
查询价格低于平均价格的书籍名字。
SELECT 书名
FROM 图书
WHERE 价格
< (
SELECT AVG(价格)
FROM 图书)
查询购买书籍数量最多的会员名字。
SELECT 会员姓名
FROM 会员
WHERE 会员编号
= (
select 会员编号
from 购买信息
GROUP BY 会员编号
ORDER BY(购买数量)
desc limit
1)
查询员工人数最少的书店所在地址。
select 书店
地址 from 书店
where 书店编号
= (
select 书店编号
from 员工
GROUP BY 书店编号
ORDER BY count(
*)
asc limit
1)
查询优等供应商给哪些书店供货过,并按照供货时间从早到晚排序。
select * from 供应信息
where 供应商编号
in (
select 供应商编号
from 供应商
where 供应商备注
= 优等)
ORDER BY 供应时间
查询价格最贵的三种图书,存放在哪些书店里。(查看书店名字)。
select 书店名字
from 书店
where 书店编号
= (
select 书店编号
from 图书
ORDER BY 价格
desc limit
1)
or 书店编号
= (
select 书店编号
from 图书
ORDER BY 价格
desc limit
1,
1)
or 书店编号
= (
select 书店编号
from 图书
ORDER BY 价格
desc limit
2,
1)
查询人生这本书,被哪些会员购买过。
select 会员姓名
from 会员
where 会员编号
in (
select 会员编号
from 购买信息
where 图书编号
in (
select 图书编号
from 图书
where 书名
= 人生))
七、答疑解惑
代码有问题或需要其他的查询语句,都可以随时评论留言或联系博主。
还多请各位小伙伴多多点赞支持,你们的支持是我最大的动力。
博主VX:18884281851
谢谢各位的支持~~