题目:

会员类型表UserTypeInfo [系统管理员-管理会员 店主-卖家 普通会员-买家]
类型编号 typeId int 主键 自增长
类型名 typeName varchar(20) 不能为空

会员信息表UserInfo
会员编号 userId int 主键 自增长
会员名 userName varchar(20) 不能为空
密码 userPwd varchar(20)
类型编号 typeId int 外键(引用UserTypeInfo的typeId)
会员状态 userStatus varchar(20) 默认值为”正常”

店铺信息表ShopInfo
店铺编号 shopId int 主键 自增长
店铺名 shopName varchar(50) 不能为空
店主编号 userId int 外键(引用UserInfo的userId)
店铺积分 userPoint int 默认值为0

商品类型表 proType
类型编号 typeId int 主键 自增长
类型名 typeName varchar(50) 唯一约束 不能为空
类型说明 typeDesc varchar(50)

商品信息表 proInfo
商品编号 proId int 主键 自增长
商品名称 proName varchar(50) 不能为空
商品单价 proPrice float
商品数量 proCount int
商品状态 proStates varchar(50) 默认值为”上架”
所属店铺编号 shopId int 外键(引用shopInfo的shopId)
所属类型编号 typeId int 外键(引用proType的typeId)

订单信息表 orderInfo
订单编号 orderId int 主键 自增长
订购的商品编号 proId int 外键
订购的数量 orderCount int
订单日期 orderDate date 默认为系统的当前时间
订单状态 orderStatus 值只能为"未处理" 和 “已发货”,默认为"未处理"
会员编号 userId int 外键

1、按照上面要求创建表和添加约束

2、为每张表添加测试数据

3、查询所有店铺的编号、名称、积分,以及店主名

4、查询所有订单的编号、订购的商品名称、商品的类型名称 以及 订购的数量

5、查询所有商品的编号、名称、单价、所属类型名、所属店铺名、以及店主名

6、查询所有订单的编号、订购的商品名称、商品的类型名称,商品所属店铺名,店主名以及订购的数量

7、查询每个店铺的名称,以及该店铺下商品的种类,以及商品的总数量

8、查询每个商品的名称、该商品所有订单的数量

9、查询价格最贵的商品的名称、所属店铺的名称以及店主的名称

10、查询单次订购数量最多的订单的编号、订购的商品名称、订购的日期以及订购该商品的会员名称

11、查询出店铺名以’好’字开头的店铺信息以及店主的名称

12、查询出没有发布商品的店铺信息

13、将没有发布商品的店铺的积分减1

14、查询出没有被订购的商品编号、商品名、所属的店铺名

15、查询所有商品的编号、名称、被订购的次数以及订购的总数量

解答:

-- 1.按照要求创建表和添加约束
create table UserTypeInfo(typeId int primary key auto_increment,typeName varchar(20) not NULL
)
DESC UserTypeInfo;-- 查询表结构
SELECT * FROM UserTypeInfo;
DELETE FROM UserTypeInfo WHERE typeName = "管理员";
INSERT into UserTypeInfo (typeName) VALUES ("普通会员")create table UserInfo(userId int primary key auto_increment,userName varchar(20) not NULL,userPwd  varchar(20),typeId INT,userStatus VARCHAR(20) DEFAULT "正常",FOREIGN KEY(typeId) references UserTypeInfo(typeId)
)
DESC UserInfo;-- 查询表结构
SELECT * FROM UserInfo;create table ShopInfo(shopId int primary key auto_increment,shopName varchar(50) not NULL,userId INT,userPoint INT DEFAULT 0,FOREIGN KEY(userId) references UserInfo(userId)
)
DESC ShopInfo;-- 查询表结构
SELECT * FROM ShopInfo;create table proType(typeId int primary key auto_increment,typeName varchar(50) unique not NULL,typeDesc varchar(50)
)
DESC proType;-- 查询表结构
SELECT * FROM proType;create table proInfo(proId int primary key auto_increment,proName varchar(50) not NULL,proPrice FLOAT,proCount INT,proStates VARCHAR(50) DEFAULT "上架",shopId INT,typeId INT,FOREIGN KEY(shopId) references ShopInfo(shopId),FOREIGN KEY(typeId) references proType(typeId)
)
DESC proInfo;-- 查询表结构
SELECT * FROM proInfo;create table orderInfo(orderId int primary key auto_increment,proId INT,orderCount INT,orderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,orderStatus enum('未处理','已发货') DEFAULT "未处理",userId INT,FOREIGN KEY(proId) references proInfo(proId),FOREIGN KEY(userId) references UserInfo(userId)
)
DESC orderInfo;-- 查询表结构
SELECT * FROM orderInfo;-- 2.为每张表添加测试数据
-- UserInfo
INSERT into UserInfo (userName,userPwd,typeId) VALUES ("张三","123456","1");
INSERT into UserInfo (userName,userPwd,typeId) VALUES ("李四","987654","2");
INSERT into UserInfo (userName,userPwd,typeId) VALUES ("王五","888888","3");
-- ShopInfo
INSERT into ShopInfo (shopName,userId,userPoint) VALUES ("小碗菜",3,50);
-- proType
INSERT into proType (typeName,typeDesc) VALUES ("餐馆","提供饭菜的地方");
INSERT into proType (typeName,typeDesc) VALUES ("毒药店","专门养蟑螂的地方");
-- proInfo
INSERT into proInfo (proName,proPrice,proCount,shopId,typeId) VALUES ("土豆丝",12.5,12,1,1);
INSERT into proInfo (proName,proPrice,proCount,shopId,typeId) VALUES ("烤蟑螂",10.0,1,2,2);
-- orderInfo
INSERT into orderInfo (proId,orderCount,userId) VALUES (2,5,3);-- 3.查询所有店铺的编号、名称、积分,以及店主名
SELECT shopId,shopName,userPoint,userName FROM ShopInfo,UserInfo
where ShopInfo.userId = UserInfo.userId;-- 4.查询所有订单的编号、订购的商品名称、商品的类型名称 以及 订购的数量
SELECT orderId,proName,typeName,orderCount FROM orderInfo,proInfo,proType
where orderInfo.proId = proInfo.proId and proInfo.typeId = proType.typeId;-- 5.查询所有商品的编号、名称、单价、所属类型名、所属店铺名、以及店主名
SELECT proId,proName,proPrice,typeName,shopName,userName FROM proInfo,proType,ShopInfo,UserInfo
where proInfo.typeId = proType.typeId AND proInfo.shopId = ShopInfo.shopId AND ShopInfo.userId = UserInfo.userId;-- 6.查询所有订单的编号、订购的商品名称、商品的类型名称,商品所属店铺名,店主名以及订购的数量
SELECT orderId,proName,typeName,shopName,userName,orderCount FROM orderInfo,proInfo,proType,ShopInfo,UserInfo
WHERE orderInfo.proId = proInfo.proId AND proInfo.typeId = proType.typeId AND proInfo.shopId = shopInfo.shopId AND orderInfo.userId = UserInfo.userId;-- 7.查询每个店铺的名称,以及该店铺下商品的种类,以及商品的总数量
SELECT shopName,typeName,proCount FROM ShopInfo,proType,proInfo
WHERE proInfo.shopId = ShopInfo.shopId AND proInfo.typeId = proType.typeId;-- 8.查询每个商品的名称、该商品所有订单的数量
SELECT proName,COUNT(orderId) FROM proInfo,orderInfo
WHERE proInfo.proId = orderInfo.proId;-- 9.查询价格最贵的商品的名称、所属店铺的名称以及店主的名称
SELECT proName,shopName,userName,proPrice FROM UserInfo,ShopInfo,proInfo
WHERE  proInfo.shopId = ShopInfo.shopId AND ShopInfo.userId = UserInfo.userId
GROUP BY proPrice DESC limit 1;-- 10.查询单次订购数量最多的订单的编号、订购的商品名称、订购的日期以及订购该商品的会员名称
SELECT MAX(orderCount),orderId,proName,orderDate,userName FROM UserInfo,orderInfo,proInfo
WHERE UserInfo.userId = orderInfo.userId  AND orderInfo.proId = proInfo.proId
GROUP BY orderCount DESC limit 1 ;-- 11.查询出店铺名以'蟑'字开头的店铺信息以及店主的名称
SELECT shopId,shopName,userPoint,userName,ShopInfo.userId FROM ShopInfo,UserInfo
WHERE ShopInfo.shopName LIKE "蟑%" AND ShopInfo.userId = UserInfo.userId;-- 12.查询出没有发布商品的店铺信息
SELECT * FROM ShopInfo where shopId NOT in (
SELECT shopId FROM proInfo);-- 13.将没有发布商品的店铺的积分减1
update ShopInfo SET userPoint = userPoint-1 WHERE shopId NOT in (
SELECT shopId FROM proInfo);-- 14.查询出没有被订购的商品编号、商品名、所属的店铺名
SELECT proId,proName,shopName FROM proInfo,ShopInfo where proId NOT in (
SELECT proId FROM orderInfo) AND proInfo.shopId = ShopInfo.shopId;-- 15.查询所有商品的编号、名称、被订购的次数以及订购的总数量
INSERT INTO orderinfo VALUES (null,1,2,null,null,1)
SELECT proInfo.proId,proName,COUNT(proInfo.proId)'被订购次数',SUM(orderCount)'订购总数量' FROM proInfo LEFT JOIN orderInfo ON
proInfo.proId = orderInfo.proId GROUP BY proName;

小汤学编程之MySQL经典例题——表的创建与查询相关推荐

  1. 小汤学编程之JAVA经典例题——嵌套集合

    题目: 有一个记事本,能记录周一到周天,每天做的所有事情和事情的次数,周而复始.小明在这个记事本上记录了3周,内容如下: 第一周 ·周一:学java,逛街 ·周二:打台球,旅游 ·周三:溜冰,吃烧烤 ...

  2. 小汤学编程之MySQL(三)——约束、多表查询、事务和数据库其他操作

    一.约束 1.主键约束     2.自动增长     3.非空约束     4.唯一约束     5.默认约束     6.外键约束     7.级联删除和级联更新     8.null删除和null ...

  3. 小汤学编程之MySQL(一)——基本概念、使用前的准备和了解SQL

    一.基本概念 1.数据库及其特点     2.数据库管理系统     3.数据库的分类 二.使用前的准备 1.安装与卸载     2.服务的启动     3.登录与退出 三.了解SQL 1.什么是SQ ...

  4. 小汤学编程之MySQL(二)——数据库操作、表结构操作、表数据操作、查询数据和数据类型

    一.数据库操作 1.创建数据库     2.查询数据库     3.修改数据库     4.使用数据库 二.表结构操作 1.创建表     2.查询表     3.修改表     4.删除表 三.表数 ...

  5. 小汤学编程之JavaEE学习day08——Maven

    一.Maven介绍 1.什么是Maven     2.Maven的功能     3.什么是构建     4.项目的构建方式 二.Maven的安装 1.下载     2.安装     3.配置      ...

  6. 小汤学编程之JavaScript学习day01——认识JS、JS基础语法

    一.认识JS 1.JavaScript的组成     2.浏览器执行js简介     3.JavaScript是什么?     4.扩展内容 二.JS基础语法 1.代码书写位置     2.变量    ...

  7. 小汤学编程之JDBC(二)——dbutils框架和DataSource连接池

    一.dbutils框架 1.介绍     2.新增/删除/修改     3.各种查询     4.扩展:Bean中属性名与数据表列名的映射 二.DataSource连接池 1.获取DataSource ...

  8. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT

    一.SVN 1.SVN介绍     2.SVN安装     3.SVN操作 二.GIT 1.GIT介绍     2.集中式和分布式     3.GIT的基本使用     4.GIT时光机     5. ...

  9. 小汤学编程之JavaEE学习day06——LayUI

    一.LayUI简介 1.下载     2.入门案例 二.栅格布局 三.图标 四.按钮 1.按钮类型     2.主题     3.尺寸     4.圆角     5.按钮组 五.后台布局 六.表格数据 ...

最新文章

  1. 驱动之LCD的介绍与应用20170209
  2. spring boot使用注解的方式整合mybaits
  3. centos7装单机hadoop2.7.3
  4. 微波工程基础_哈工大电子与信息工程—复试考试大纲
  5. 3.nginx 的基本配置与优化
  6. mysql sumif优化,sumif函数的使用方法
  7. python的pyc反编译
  8. Hadoop的集群搭建windows基于VMware虚拟机超详细教程(一主二从)
  9. Linux, CentOS7 安装并打开最新版firefox浏览器
  10. 将1自动补位为01_自动补位为辅助后游戏就输了一半?那是你不懂辅助的正确打开方式...
  11. Win10休眠后蓝牙键盘无法唤醒怎么办?
  12. 计算机网路——163邮箱授权码
  13. 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互
  14. 一名弱弱的程序猿立冬到星海湾大桥走了一天。。。
  15. Python Flask No.1_简介
  16. Qt编写视频监控管理平台(支持海康/大华/宇视/华为/天地伟业/H264/H265等)
  17. JAVA简易二手交易系统
  18. Qt5.5-msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误
  19. 存储心跳线作用_硬盘跳线有什么用 硬盘跳线的作用有哪些
  20. 复数的常规运算与C代码实现

热门文章

  1. fastJson null字符串转空 null数字转0
  2. Eclipse Oxygen 解决 自动导包的问题
  3. OGNL、EL表达式——Struts
  4. NOIP练习赛题目6
  5. 临时禁用自增列插入数据
  6. 我不够格,但我还是希望事情到此为止,继续工作罢
  7. 企业级OpenCV、图像识别资料免费下载,仅此1天!
  8. 仅信用卡大小,性能比TX2强15倍,英伟达边缘AI计算新品Jetson Xavier NX
  9. 天池发起全球城市计算AI挑战赛-总奖池30万人民币
  10. 6个部件组成一个圆球_2016年新课标人教版小学六年级数学上册单元练习题集