作业的数据库查询

时间:2017-07-27 01:21:21

标签: mysql database

我正在开发一个项目,我是数据库中的新手。我需要帮助回答下面的问题,列出方案和数据库表。

数据库表:

  • Product(pid:integer,timestamp:integer,name:string,price:real,location:string)
  • Customer(cid:integer,email:string)
  • Purchases(pid:整数,cid:整数,orderid:整数,金额:整数)
  • Totals(orderid:integer,cid:integer,totalprice:real,timestamp:integer)

情境:

产品ID可以在架构中多次出现。每次更新位置或价格时,都会在数据库中添加另一行,其中包含指示更改时间的时间戳。名称不会被更改,因此相同的pid将始终表示相同的名称。

总计是购买表的摘要,显示购买时间以及所有产品的合并价格。

尽可能尽可能早地做出预测。

使用上述数据库并提供以下问题的查询:

  1. 查找某些时间点成本超过e20.00的产品名称以及某些时间点产品价格低于e0.10的产品名称。

  2. 查找一次性支出超过e200的客户的电子邮件地址。

  3. 查找至少有一次价格变动的产品。

  4. 查找已在“5-12”和“A3”位置显示的产品名称

  5. 查找已购买每件产品的客户的cid,其价格低于e1.00

  6. 查找已在商店注册但未购买的客户的cid。

  7. 查找已购买量最大的客户的cid。

  8. 查找每位注册客户至少购买过一次的最贵产品。

  9. 查找自20150625时间戳之后尚未售出但在该日期之前至少售出一次的产品。

  10. 杂货店希望改善其数据库。编写一个返回表格的查询,该表格基本上是购买表格,加上购买时产品的价格。

1 个答案:

答案 0 :(得分:0)

让我们为您启动项目提供一些帮助❤

在第一个查询中,我们需要专门使用表Products,并且您希望找到name高于x且小于y的产品的price

首先,我们要从表中获取的列:

SELECT name, price FROM Products

然后,由于您需要的查询产品的价格高于20,且产品价格低于0.10,因此您可以使用BETWEEN还原的条件NOT

SELECT name, price FROM Products
WHERE price NOT BETWEEN 0.10 and 20

你可以命令它更具可读性:

SELECT name, price FROM Products
WHERE price NOT BETWEEN 0.10 and 20
ORDER BY name ASC;

我不确定这是否是您所需要的,但我希望它有所帮助!