销售数据仓库建立第一步: 销售订单数据库的建立

任务一:设计销售订单数据库。

其中:产品信息包括产品编号、产品名称、产品分类;
客户信息包括客户编号、客户名称、客户所在省、市、街道、邮编;
销售订单包括订单号、产品编号、客户编号、订单时间、登记时间和订单金额。

任务二:设计存储过程,生成100条销售订单数据。

要求:提交编写的脚本,运行截图,上传实验报告文档。

建表语句:

CREATE TABLE `customer` (
  `customer_number` int(11) NOT NULL COMMENT '客户编号',
  `customer_name` varchar(50) DEFAULT NULL COMMENT '客户名称',
  `customer_street_address` varchar(50) DEFAULT NULL COMMENT '客户住址',
  `customer_zip_code` int(11) DEFAULT NULL COMMENT '邮编',
  `customer_city` varchar(30) DEFAULT NULL COMMENT '所在城市',
  `customer_state` varchar(30) DEFAULT NULL COMMENT '所在省份',
  PRIMARY KEY (`customer_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE product(
product_code int NOT NULL  COMMENT '产品编码',
product_name varchar(30) DEFAULT NULL COMMENT '产品名称',
product_category varchar (30) DEFAULT NULL COMMENT '产品类型',
PRIMARY KEY ( product_code )
)
CREATE TABLE sales_order  (
order_number int NOT NULL  COMMENT '订单号',
customer_number  int DEFAULT NULL,
product_code  int DEFAULT NULL,
order_date  datetime DEFAULT NULL COMMENT '订单日期',
entry_date  datetime DEFAULT NULL COMMENT '登记日期',
order_amount decimal (10,2) DEFAULT NULL COMMENT'销售金额',
PRIMARY KEY ( order_number )
)

设计存储过程,插入数值:

BEGIN
	#Routine body goes here...

    set @start_time= unix_timestamp('2020-11-5');
    set @end_time= unix_timestamp('2020-12-5');
    set @i=1;
    
while  @i<=100  DO
  set @order_number = @i;
  set @customer_number = floor( 1+rand()*6);
  set @product_code = floor(1 + rand()* 2);
  set @order_date = from_unixtime(@start_time + rand()* (@end_time - @start_time));
  set @amount := floor(1000 + rand()* 9000);
  
  insert  into sales_order values
       (@order_number,@customer_number, @product_code,@order_date,@order_date,@amount);
  set @i=@i+1;
end while;

END

写完函数点击运行

结果:
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值