本题目要求编写SQL语句, 利用sh_goods表创建视图view_goods,包含商品打折前后的价格信息。视图中包含四列,分别为商品id,商品名称,商品原价格(old_price)和商品打五折后的价格(new_price) 表结构: CREATE TABLE sh_goods ( id INT PRIMARY KEY, --商品id category_id INT NOT NULL DEFAULT 0 , -- 商品分类id name VARCHAR(120) NOT NULL, --商品名称 keyword VARCHAR(255) NOT NULL, -- 关键词编号 content TEXT NOT NULL , --商品详情 price DECIMAL(10, 2) NOT NULL DEFAULT 0 , --价格 stock INT NOT NULL DEFAULT 0, -- 库存 score DECIMAL(3, 2) NOT NULL DEFAULT 0 , -- 用户评分 comment_count INT NOT NULL DEFAULT 0 -- 评论数量 ) ; 表样例 sh_goods表: sh_goods表数据.PNG 查询视图样例: 答案.PNG
时间: 2024-02-10 16:11:52 浏览: 340
可以使用以下SQL语句创建视图view_goods:
```
CREATE VIEW view_goods AS
SELECT id, name, price AS old_price, price * 0.5 AS new_price
FROM sh_goods;
```
该视图包含四列,分别为商品id,商品名称,商品原价格(old_price)和商品打五折后的价格(new_price)。它基于sh_goods表,选择商品id、商品名称和价格列,同时计算出新的价格列(即原价格的一半),并将其添加到视图中。
相关问题
本题目要求编写SQL语句, 利用sh_goods表创建视图view_goods,包含原售价大于1000元的商品在打折前后的价格信息。视图中包含四列,分别为商品id,商品名称,商品原价格(old_price)和商品打五折后的价格(new_price)。
可以使用以下 SQL 语句创建所需的视图:
```sql
CREATE VIEW view_goods AS
SELECT id, name, old_price, old_price * 0.5 AS new_price
FROM sh_goods
WHERE old_price > 1000;
```
这个语句首先从 sh_goods 表中选择 id、name 和 old_price 列,并使用 WHERE 子句筛选出原价大于 1000 的商品。然后,使用 AS 子句为新的视图添加一个新的列 new_price,该列是 old_price 的一半,即打五折后的价格。最后,使用 CREATE VIEW 语句将其保存为名为 view_goods 的视图。
本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
好的,您的问题是如何编写SQL语句,结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。下面是SQL语句:
CREATE VIEW view_goods_2 AS
SELECT sh_goods.id, sh_goods.name
FROM sh_goods
INNER JOIN sh_goods_attr_value
ON sh_goods.id = sh_goods_attr_value.goods_id
GROUP BY sh_goods.id, sh_goods.name
HAVING COUNT(sh_goods_attr_value.attr_value_id) > 1;
该视图将返回拥有属性值数量大于1个的商品对应的商品id和name。请注意,此视图基于两个表之间的连接和聚合函数。因此,确保这两个表中的值具有正确的格式和数据类型,并且在执行此SQL语句之前,请备份您的数据。
阅读全文