项目分析
分析用户表,此处包含用户名密码,就需要一个用户表。包含用户名(账号,电话)、密码

此处有各种各样的商品,就需要一个商品表。包含产品名字、产品价格、产品编号

订单编号即订单表。订单编号、用户表(账号,电话号码)、创建时间()、总价格

所属账户必须有一个所属用户

生成时间

订单详情表。包含订单编号(外键,对应订单表中的订单编号)、购买数量、产品编号

最后还有分析图标用到的表就是产品类别表。包含产品编号、类别名字

分析完成即可创建表,把结构写出来,然后编写SQL语句来创建。
1.产品类目表 tb_category
1.主键 cate_id number(11) 主键
2.类目名称 cate_name varchar2(50) not null:手机、笔记本、服装
3.创建时间 create_date varchar2(40)
2.产品表tb_product
1.主键 pro_id number(11) 主键
2.产品名字 pro_name varchar2(100) not null
3.产品的图片 pro_pic varchar2(200)
4.产品价格 pro_price number(20) 单位 分
5.产品描述 pro_des varchar2(200)
6.产品类目 cate_id number(11) 外键(tb_category中主键)
7.创建时间 create_date varchar2(40)
8.产品品牌 pro_brand varchar2(20):小米、苹果、天堂..
3.用户表tb_user
1.主键 user_id number(11) 主键
2.账户 user_account varchar2(20) 电话号码
3.昵称 user_name varchar2(50)
4.密码 password varchar2(50)
5.创建时间 create_date varchar2(40)
4.订单表tb_orders
1.主键 o_id number(11) 主键
2.订单编号 o_code varchar2(50)
3.订单所属账号 o_user_account(20) 外键(tb_user中账户)
4.订单总价: o_total number(30) 单位:分
5.创建时间:create_date varchar2(40)
5.订单产品表tb_orders_product
1.主键 op_id number(11) 主键
2.产品id pro_id number(11) 外键(tb_product中主键)
3.订单编号 o_code varchar2(50)
4.产品购买数量 pro_count number(10)
创建表代码:
create table tb_category
( cate_id number(11) primary key,
cate_name varchar2(50) not null,
create_date varchar2(40)
)
create table tb_product
( pro_id number(11) primary key,
pro_name varchar2(100) not null,
pro_pic varchar2(200),
pro_price number(20), --单位 分
pro_des varchar2(200),
cate_id number(11) references tb_category(cate_id),
create_date varchar2(40),
pro_brand varchar2(20) --小米、苹果、天堂..
)
create table tb_user
( user_id number(11) primary key,
user_account varchar2(20), --电话号码
user_name varchar2(50),
password varchar2(50),
create_date varchar2(40)
)
create table tb_orders
( o_id number(11) primary key,
o_code varchar2(50),
o_user_account varchar2(20),
o_total number(30), --单位:分
create_date varchar2(40)
)
create table tb_orders_product
( op_id number(11) primary key,
id_pro_id number(11) references tb_product(pro_id),
o_code varchar2(50),
pro_count number(10)
)
数据库文件,把这个用oracle打开执行以下,即可得到大量的数据,用于做项目


功能初始思路:
功能1:根据输入的名称和密码查找数据库
--根据输入的名称和密码查找数据库
select *
from tb_user
where user_account = 'xxx' and password = 'xxx';
--功能2:订单查看
--显示:序号、订单编号,所属账户,生成时间,商品信息(商品名字,购买数量,商品单价),订单的总价
--显示:序号、订单编号,所属账户,生成时间,商品信息(商品名字,购买数量,商品单价),订单的总价
--先思考需要那些列
select rownum 序号,o_code 订单编号,
o_user_account 所属账户,
create_date 生成时间,
o_total 订单总价
from tb_orders;
--正式代码
select rownum 序号,o.o_code 订单编号,
o.o_user_account 所属账户,
o.create_date 生成时间,
p.pro_name 商品名称,
p.pro_price 商品单价,
op.pro_count 购买数量,
o.o_total 订单总价
from tb_orders o,tb_orders_product op,tb_product p
where o.o_code = op.o_code
and op.op_id = p.pro_id;
功能3:销售额统计(根据用户选择的年份,统计当前每月销售额)
--功能3:销售额统计(根据用户选择的年份,统计当前每月销售额)
select substr(create_date,6,2) 月份,sum(o_total)
from tb_orders
where substr(create_date,1,4) = '2018'
group by substr(create_date,6,2)
order by 月份 ;
功能4:销售记录统计(根据用户选择的年份,统计当前本年每月订单的数量)
--功能4:销售记录统计(根据用户选择的年份,统计本年每月订单的数量)
select substr(create_date,6,2) 月份,count(1) 数量 from tb_orders
where substr(create_date,1,4) = '2018'
group by substr(create_date,6,2)
order by substr(create_date,6,2);
功能5:商品销售占比统计(根据用户选择的年份,统计本年品牌销售数量的占比)
--功能5:商品销售占比统计(根据用户选择的年份,统计本年品牌销售数量)
select p.pro_brand,sum(op.pro_count) 销售数量,sum(op.pro_count*p.pro_price)销售额 from tb_orders o,tb_orders_product op,tb_product p
where o.o_code=op.o_code
and op.pro_id = p.pro_id
and substr(o.create_date,1,4) = '2018'
group by p.pro_brand;
网友评论