电子商务网站

一、概要

作为《某电子商务网站》项目开发组的程序员,请按要求完成:
数据库的创建;
数据表的创建;
数据的操作。

二、实施步骤及内容

《电子商务网站》的E-R图如图2.13 所示,逻辑数据模型如图2.14 所示,物理数据模型如图2.15所示,数据表字段名定义见表2.7。请按以下设计完成数据库创建、数据表创建和数据操作任务:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码

-- 创建数据库表
CREATE TABLE IF NOT EXISTS T_category(
	Category_id CHAR(50) NOT NULL COMMENT '常平类别ID,主键',
	Category_name VARCHAR(100) NOT NULL COMMENT '产品类别名称',
	Register_date VARCHAR(10) NOT NULL COMMENT '注册时间',
	PRIMARY KEY(Category_id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS T_product(
	Product_id CHAR(50) NOT NULL COMMENT '产品编号',
	Category_id CHAR(50) NOT NULL COMMENT '产品类别ID',
	Product_name VARCHAR(50) NOT NULL COMMENT '产品名称',
	Price DECIMAL(8,2) COMMENT '产品价格',
	Remark VARCHAR(50) NOT NULL COMMENT '产品描述',
	Register_date DATETIME NOT NULL COMMENT '注册时间',
	PRIMARY KEY(Product_id,Category_id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS T_product_review(
	Review_id CHAR(50) NOT NULL COMMENT '评论编号',
	Product_id CHAR(50) NOT NULL COMMENT '产品编号',
	Review VARCHAR(100) NOT NULL COMMENT '评论内容',
	Register_date DATETIME NOT NULL COMMENT '注册时间',
	PRIMARY KEY(Review_id,Product_id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 插入数据
INSERT INTO T_category VALUES('01','电子类',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_category VALUES('02','家用类',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_category VALUES('03','生活类',DATE_FORMAT(NOW(),'%Y-%m-%d'));

INSERT INTO T_product VALUES('1','01','笔记本电脑',5680,'good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product VALUES('2','01','智能手机',2400,'good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product VALUES('3','01','智能手表',1000,'good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product VALUES('4','02','沙发',5000,'good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product VALUES('5','03','手提包',1000,'good',DATE_FORMAT(NOW(),'%Y-%m-%d'));

INSERT INTO T_product_review VALUES('001','1','very good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product_review VALUES('002','1','common',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product_review VALUES('003','1','nice',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product_review VALUES('004','2','very good',DATE_FORMAT(NOW(),'%Y-%m-%d'));
INSERT INTO T_product_review VALUES('005','5','beautiful',DATE_FORMAT(NOW(),'%Y-%m-%d'));

-- 查询某类别下所有产品;
SELECT * FROM T_product WHERE Category_id=1

-- 查询产品价格在1000---3000元之间的产品;
SELECT * FROM T_product WHERE Price BETWEEN 1000 AND 3000

-- 查询录入日期在2022年9月到11月之间的产品数据

-- 方法一
SELECT * FROM T_product WHERE YEAR(Register_date)=2022 AND 
MONTH(Register_date) BETWEEN 9 AND 11

-- 方法二
SELECT * FROM T_product WHERE Register_date > '2022-09-01' AND 
Register_date < '2022-11-30'

-- 查询评论数在1—3条的所有产品
SELECT Product_name,Price,Remark,Register_date FROM T_product AS p INNER JOIN
(SELECT Product_id,COUNT(*) AS revcount FROM T_product_review
GROUP BY T_product_review.`Product_id`
HAVING COUNT(*) >= 1 AND COUNT(*) <= 3) AS t
ON p.Product_id=t.Product_id


-- 查询产品价格在1000—4000元之间的所有评论
SELECT * FROM T_product_review AS a INNER JOIN T_product AS b
ON a.Product_id = b.Product_id
WHERE Price >= 1000 AND Price <= 4000





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值