MySQL每日一练--餐馆管理系统数据库

 1.创建数据库(ReManager)

  2.创建菜品类别表 (FoodsType),表结构如下:

Typeid    int          主键,自增,标识种子和标识增量都是1

TypeName  varchar(50)  唯一约束,不允许为空

创建菜品表 (Menu),表结构如下:

Menuid      int          主键,自增,标识种子和标识增量都是1

MenuName    varchar(50)  唯一约束,不允许为空

Typeid      int          外键约束(与FoodsType表关联)

Price       decimal(6,2) 加check约束,取值只能在0-10000之间

创建销售表(Sales)

Salesid     int          主键,自增,标识种子和标识增量都是1

Menuid      int          外键约束(与Menu表相关联)

SalesDate   date         默认约束,默认值是系统时间

Amount      decimal(10,2)

3.为3张表分别添加数据(方法不限):

菜品类别表 (FoodsType)数据如下:

  1. 川菜
  2. 湘菜
  3. 粤菜
  4. 浙菜
  5. 苏菜

菜品表 (Menu),数据如下:

1   麻婆豆腐   1   12

2   霸王别姬   2   18

3   鱼香肉丝   1   16

4   叫花鸡     5   25

5   脆皮乳猪   3   30

6   文昌鸡     3   28

7   西湖醋鱼   4   25

8   洞庭野鸭   2   50

销售表(Sales),数据如下:

1   2   2010-1-2    19

2   5   2011-2-3    25

3   8   2012-5-5    50

4   7   2012-8-1    25

5   1   2011-11-23  12

6   3   2009-1-1    16

7   4   2010-1-1    25

8   6   2014-3-6    28

9   1   2013-1-1    12

4.使用T-SQL代码实现如下题目:

1.把菜品表中文昌鸡的价格修改为 30

 2.由于浙菜销售情况不好,要求把菜品类别表中的 类别名为 浙菜的 行删掉。

 3.把菜品中,菜品类别为 川菜并且价格大于15的菜品的信息查询出来

 4.把菜品表中的菜品按照销售价格降序排列

 5.要求查询出每种菜品类别的 菜品数量,菜品平均价格。并且只显示菜品数量大于1的信息

 6.要求查询出 菜品名,菜品价格,菜品销售日期,并且按 菜品销售日期降序排列

7. 查询川菜和粤菜的销售情况,显示菜名,菜品价格,菜系名称,销售日期和销售数量

 代码如下(如果有不对的地方,欢迎指正):

-- 一,	创建数据库ReManager
-- 1,删除数据库
	DROP DATABASE IF EXISTS ReManager;
-- 2,创建数据库
	CREATE DATABASE ReManager;
-- 3,修改数据库编码方式和字符集排列顺序
	ALTER DATABASE ReManager CHARACTER SET utf8 COLLATE utf8_bin;
-- 4,使用数据库
	USE ReManager;
-- 二. 创建菜品类别表 (FoodsType),表结构如下:
DROP TABLE IF EXISTS FoodsType;
CREATE TABLE FoodsType(
Typeid INT PRIMARY KEY AUTO_INCREMENT,                   -- 主键,自增,标识种子和标识增量都是1
 TypeName VARCHAR(50) NOT NULL UNIQUE                  -- 唯一约束,不允许为空
);
-- 创建菜品表 (Menu),表结构如下:
DROP TABLE IF EXISTS Menu;
CREATE TABLE Menu(
Menuid INT PRIMARY KEY AUTO_INCREMENT,                        -- 主键,自增,标识种子和标识增量都是1
MenuName VARCHAR(50) NOT NULL UNIQUE,                         -- 唯一约束,不允许为空
Typeid INT ,                                          -- 外键约束(与FoodsType表关联)
Price DECIMAL(6,2) CHECK (Price >= 0 AND Price <= 10000),       -- 加check约束,取值只能在0-10000之间
FOREIGN KEY(Typeid) REFERENCES FoodsType(Typeid)
);
-- 创建销售表(Sales)
DROP TABLE IF EXISTS Sales;
CREATE TABLE Sales(
Salesid INT PRIMARY KEY AUTO_INCREMENT,-- 主键,自增,标识种子和标识增量都是1
Menuid INT ,                            -- 外键约束(与Menu表相关联)
SalesDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,      -- 默认约束,默认值是系统时间
Amount DECIMAL(10,2),
FOREIGN KEY(Menuid) REFERENCES Menu(Menuid)
);
-- 三.为3张表分别添加数据(方法不限):
-- 1.添加菜品类别表FoodsType数据
INSERT INTO FoodsType VALUES(DEFAULT,'川菜');
INSERT INTO FoodsType VALUES(DEFAULT,'湘菜');
INSERT INTO FoodsType VALUES(DEFAULT,'粤菜');
INSERT INTO FoodsType VALUES(DEFAULT,'浙菜');
INSERT INTO FoodsType VALUES(DEFAULT,'苏菜');
SELECT * FROM FoodsType;
-- 2.添加菜品表Menu数据
INSERT INTO Menu VALUES(DEFAULT,'麻婆豆腐',1,12);
INSERT INTO Menu VALUES(DEFAULT,'霸王别姬',2,18);
INSERT INTO Menu VALUES(DEFAULT,'鱼香肉丝',1,16);
INSERT INTO Menu VALUES(DEFAULT,'叫花鸡',5,25);
INSERT INTO Menu VALUES(DEFAULT,'脆皮乳猪',3,30);
INSERT INTO Menu VALUES(DEFAULT,'文昌鸡',3,28);
INSERT INTO Menu VALUES(DEFAULT,'西湖醋鱼',4,25);
INSERT INTO Menu VALUES(DEFAULT,'洞庭野鸭',2,50);
SELECT * FROM Menu;
-- 3.添加销售表Sales数据
INSERT INTO Sales VALUES(DEFAULT,2,'2010-1-2',19);
INSERT INTO Sales VALUES(DEFAULT,5,'2011-2-3',25);
INSERT INTO Sales VALUES(DEFAULT,8,'2012-5-5',50);
INSERT INTO Sales VALUES(DEFAULT,7,'212-8-1',25);
INSERT INTO Sales VALUES(DEFAULT,1,'2011-11-23',12);
INSERT INTO Sales VALUES(DEFAULT,3,'2009-1-1',16);
INSERT INTO Sales VALUES(DEFAULT,4,'2010-1-1',25);
INSERT INTO Sales VALUES(DEFAULT,6,'2014-3-6',28);
INSERT INTO Sales VALUES(DEFAULT,1,'2013-1-1',12);
SELECT * FROM Sales;
-- 四.使用T-SQL代码实现如下题目:
-- 1.把菜品表中文昌鸡的价格修改为 30
UPDATE Menu SET Price = 30 WHERE MenuName = '文昌鸡';
-- 2.由于浙菜销售情况不好,要求把菜品类别表中的 类别名为 浙菜的 行删掉。
-- (1)
DELETE FROM Sales WHERE Menuid IN
(SELECT Menuid FROM Menu WHERE Typeid =
(SELECT Typeid FROM FoodsType WHERE TypeName='浙菜'));
-- (2)
DELETE FROM Menu WHERE Typeid = (SELECT Typeid FROM FoodsType WHERE TypeName='浙菜');
-- (3)
DELETE FROM FoodsType WHERE TypeName='浙菜';
-- 3.把菜品中,菜品类别为 川菜并且价格大于15的菜品的信息查询出来
 SELECT m.*
 FROM Menu m
 JOIN FoodsType t ON m.Typeid = t.Typeid
 WHERE t.TypeName = '川菜' AND m.Price > 15;
-- 4.把菜品表中的菜品按照销售价格降序排列
SELECT * FROM Menu ORDER BY Price DESC;
-- 5.要求查询出每种菜品类别的 菜品数量,菜品平均价格。并且只显示菜品数量大于1的信息
SELECT FoodsType.TypeName 菜品类别, COUNT(*)菜品数量, AVG(Menu.Price) 平均价格 
FROM Menu JOIN FoodsType ON Menu.Typeid = FoodsType.Typeid GROUP BY FoodsType.TypeName HAVING COUNT(*) > 1;
-- 6.要求查询出 菜品名,菜品价格,菜品销售日期,并且按 菜品销售日期降序排列
SELECT Menu.MenuName 菜品名,Menu.Price 菜品价格, Sales.SalesDate 菜品销售日期 
FROM Menu JOIN Sales ON Menu.Menuid = Sales.Menuid ORDER BY Sales.SalesDate DESC;
-- 7. 查询川菜和粤菜的销售情况,显示菜名,菜品价格,菜系名称,销售日期和销售数量
SELECT Menu.MenuName 菜名,Menu.Price 菜品价格,FoodsType.TypeName 菜系名称,Sales.SalesDate 销售日期,Sales.Amount 销售数量 
FROM Menu JOIN FoodsType ON Menu.Typeid = FoodsType.Typeid JOIN Sales ON Menu.Menuid = Sales.Menuid 
WHERE FoodsType.TypeName IN ('川菜','粤菜');

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、需求分析 随着社会服务行业的发展,餐饮业对自身服务的质量和能力也有了更高的要求。餐饮管理系统正是在这样的情况之下越来越受到重视。餐厅的内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的管理工作,如果没有一套可靠的餐饮管理系统,单凭手工操作,不仅效率低,而且会极大地影响到酒店的服务质量。 设计的目标:实现餐饮管理的科学化、自动化,提高各个模版的办公效率,为高质量的餐饮服务提供保证。 系统功能概述 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是计算机管理。 传统的手工操作管理存在着许多无法避免的问题,例如: 人工计算机账单金额出现差错; 收银工作中跑单、漏单、偷钱现象普遍; 个别服务员作弊、改单、宰客情形时有发生; 客人消费单据难以保存和查询。 如果借助计算机来管理,就可以轻松的解决处理这些问题。一个餐饮管理信息系统应该包括基本的餐厅的服务管理、管理人员信息的维护等,以及与之相应的操作。所以整个餐饮管理信息系统分为两个大部分,即后台的数据管理维护和前台的操作。后台数据库的管理能保证系统各项功能正常运行,前台操作能提供给客户尽可能方便快捷的服务。 功能模块划分 1. 前台操作系统 订餐管理模块:点菜(输入桌台代码和食物代码)、加菜、下单。 结账管理模块:结账(输入桌台代码)、结账方式选择(包括现金结账、信用卡结账、支票结账、签单等)。 交班管理模块:统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作作准备。 2. 后台管理维护系统 用户权限设置:可以查询员工的基本资料(姓名、性别、年龄、出生年月、籍贯、家庭住址等),员工登录名称、密码、员工操作权限等,可以根据需要进行设置。 菜谱设置:新菜单录入(包括菜式名称、代码、类型、价格、成本等)、菜式修改、删除等菜式维护。 付款方式设置:分为人民币付款、信用卡、支票签单等,可以根据需要进行添加和删除。 系统流程分析 系统流程图1所示。当用户进入系统主界面以后,新用户经过注册后才能凭借其用户名和密码登录,老用户可以直接登录。用户登录以后,系统自动判断出其操作权限。操作权限包括普通员工和管理人员。新用户的操作权限默认为是普通员工。普通员工只能进行订餐、结账操作,而管理人员除此之外还可以进行系统设置与营业分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在奋斗的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值