表设计面试题

1.题目

1.已知信息

2021年过年时小明在这些天都收到了许多亲戚\朋友还有同事的红包,也发出了一些红包,有的是微信,有的是支付宝也有现金,请参考下面的题目帮小明设计表格保存红包的信息

2.要求

设计表 (至少包含一张流水表)

2.先列出需要保存的所有信息

1.人物关系,红包类型,红包金额,红包时间,性别,名字

2.流水表: id,红包金额,红包类型,时间,人物id

create table trade(id int primary key auto_increment,money int,type varchar(10),time date,p_id int );

3.人物表: id, 名字,性别,关系

create table person(id int primary key auto_increment,name varchar(20),gender char(1),rel varchar(10));

4.往人物表中插入以下数据:

刘德华,男,亲戚       杨幂,女,亲戚       马云,男,同事      特朗普,男,朋友        貂蝉,女,朋友

insert into person values(null,'刘德华','男','亲戚'),(null,'杨幂','女','亲戚'),(null,'马云','男','同事'),(null,'特朗普','男','朋友'),(null,'貂蝉','女','朋友');

5.往流水表中插入以下数据

​ insert into trade values(null,1000,'微信','2021-03-20',1),

(null,500,'现金','2021-04-14',2),(null,-50,'现金','2021-04-14',2),

(null,20000,'支付宝','2021-03-11',3),(null,-5,'支付宝','2021-03-11',3),

(null,2000,'微信','2021-05-18',4),(null,-20000,'微信','2021-07-22',5);

update trade set money=-20000 where id=7;

3.按要求写sql语句

1.统计2021年2月15号到现在的所有红包收益

select sum(money) from trade where time>='2021-2-15';

2.查询2021年2月15号到现在 金额大于100 所有女性亲戚的名字和金额

select name,money

from trade t join person p on t.p_id=p.id

where time>'2021-2-15' and abs(money) >100 and gender='女' and rel='亲戚';

3.查询三个平台(微信,支付宝,现金)分别收入的红包金额

select type,sum(money) from trade where money>0 group by type ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值