字段名 字段说明 字段名 字段说明 Category_id 产品类别ID char(50) Remark 产品描述 varchar(50) Category_name 产品类别名称 varchar(100) Review_id 评论编号 int Register_date 默认值为当前录入时间 datetime Review 评论内容 Product_id 产品编号 int Product_name 产品名称 varchar(50) Price 产品价格 float 实施步骤 --创建数据库ProductDB 使用ProductDB --创建表T_category 创建表T_product 创建表T_product_review /*建约束、建关系*/ --产品表中产品价格列(Price)只能输入1-1000之间的数; --录入时间列(Register_date)默认值为当前录入时间(三个表均设置) --建关系 为T_product_review表设置外键 为T_product表设置外键 --在三个表中录入3条测试数据; 在T_category插入数据('0001','电子产品',default) 在T_product表中插入数据('0001','洗衣机',999,'性价比非常高',default) 在T_product_review表中插入数据('01',1,'此款洗衣机挺好用的,价格也不贵',default) --查询某类别下所有产品; --查询产品价格在300-500元之间的产品; --查询录入日期在2011年3月到6月之间的产品数据; --查询产品价格在90-200元之间的所有评论; --查询评论数在1-3条的所有产品
时间: 2024-04-03 14:35:50 浏览: 126
oracle建触发器与创建递增字段
答案如下:
创建数据库和表的 SQL 语句如下:
--创建数据库ProductDB
CREATE DATABASE ProductDB;
--使用ProductDB
USE ProductDB;
--创建表T_category
CREATE TABLE T_category (
Category_id char(50),
Category_name varchar(100),
Register_date datetime default CURRENT_TIMESTAMP,
Remark varchar(50),
PRIMARY KEY (Category_id)
);
--创建表T_product
CREATE TABLE T_product (
Product_id int,
Product_name varchar(50),
Price float check (Price >= 1 and Price <= 1000),
Register_date datetime default CURRENT_TIMESTAMP,
Category_id char(50),
Remark varchar(50),
PRIMARY KEY (Product_id),
FOREIGN KEY (Category_id) REFERENCES T_category(Category_id)
);
--创建表T_product_review
CREATE TABLE T_product_review (
Review_id int,
Product_id int,
Review varchar(500),
Register_date datetime default CURRENT_TIMESTAMP,
PRIMARY KEY (Review_id),
FOREIGN KEY (Product_id) REFERENCES T_product(Product_id)
);
插入数据的 SQL 语句如下:
--在T_category插入数据('0001','电子产品',default)
INSERT INTO T_category (Category_id, Category_name, Remark) VALUES ('0001', '电子产品', 'default');
--在T_product表中插入数据('0001','洗衣机',999,'性价比非常高',default)
INSERT INTO T_product (Product_id, Product_name, Price, Category_id, Remark) VALUES (1, '洗衣机', 999, '0001', '性价比非常高');
--在T_product_review表中插入数据('01',1,'此款洗衣机挺好用的,价格也不贵',default)
INSERT INTO T_product_review (Review_id, Product_id, Review) VALUES (1, 1, '此款洗衣机挺好用的,价格也不贵');
查询语句如下:
--查询某类别下所有产品
SELECT * FROM T_product WHERE Category_id = '0001';
--查询产品价格在300-500元之间的产品
SELECT * FROM T_product WHERE Price >= 300 AND Price <= 500;
--查询录入日期在2011年3月到6月之间的产品数据
SELECT * FROM T_product WHERE YEAR(Register_date) = 2011 AND MONTH(Register_date) >= 3 AND MONTH(Register_date) <= 6;
--查询产品价格在90-200元之间的所有评论
SELECT T_product_review.* FROM T_product_review INNER JOIN T_product ON T_product_review.Product_id = T_product.Product_id WHERE T_product.Price >= 90 AND T_product.Price <= 200;
--查询评论数在1-3条的所有产品
SELECT T_product.*, COUNT(T_product_review.Review_id) AS review_count FROM T_product LEFT JOIN T_product_review ON T_product.Product_id = T_product_review.Product_id GROUP BY T_product.Product_id HAVING review_count >= 1 AND review_count <= 3;
阅读全文