-1

我必须构造这些查询,使它们成为完美的 SQL。查询需要针对 SQL Server 数据库,我有一个 database StoresDB,一个 table items_table

我需要检索

  1. 此表中的项目总数

  2. 价格高于或等于 10 英镑的商品数量 - 列名称为金额

  3. 计算机类别中的项目列表 - 列名 ='comp_id' 按减少的数量排序。

对于上述请求,我尝试了以下操作:

  1. SELECT COUNT(*) FROM items_table

  2. Select * from items_table where amount >= 10

  3. Select * from items_table where comp_id = ’electronics’ desc

我对 SQL 很陌生,不确定我是否正确尝试过。

4

2 回答 2

1

在编写此类查询时,了解一些事情可能是件好事:

一个)SELECT COUNT(*) FROM items_table

此查询编写正确。

b)SELECT COUNT(*) FROM items_table WHERE amount >= 10

amount查询是可以的,但是选择创建覆盖 WHERE 子句的索引,在这种情况下,最好在列上有非聚集索引

C)SELECT * FROM items_table WHERE comp_id = 'electronics' ORDER BY price DESC

在最后一个查询中,您会遇到在结果中搜索所有列的问题,SELECT * ...这在生产中被认为是不好的做法,因此您需要在 SELECT 列表中仅放入真正需要的列,而不是所有列。您还可以在 comp_id 列上创建非聚集索引,其中包含 SELECT 列表中的列。

于 2013-03-24T21:14:55.317 回答
0

a) 看起来正确。

b) 您被要求进行计数,但正在查询列表。

    SELECT COUNT(*) FROM items_table WHERE price >= 10

c) 这个看起来不错,但你缺少一个ORDER BY声明。

    SELECT * FROM items_table WHERE catID='electronics' ORDER BY price DESC
于 2013-03-24T19:31:18.900 回答