如何构建这些SQL查询,使它们成为完美的SQL?

时间:2013-03-24 19:19:55

标签: sql sql-server sql-server-2008

我必须构造这些查询,因此它们是完美的SQL。查询需要用于SQL Server数据库,我有一个数据库StoresDB,一个表items_table

我需要检索

  1. 此表中的项目总数

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

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

  4. 对于上述请求,我尝试了以下内容:

    1. SELECT COUNT(*) FROM items_table

    2. Select * from items_table where amount >= 10

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

    4. 我是SQL的新手,不确定我是否正确尝试过这种方法。

2 个答案:

答案 0 :(得分:1)

编写此类查询时,了解一些事情可能会很好:

a)SELECT COUNT(*) FROM items_table

此查询已正确写入。

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

查询没问题,但选择创建覆盖WHERE子句的索引,在这种情况下,最好在amount列上建立非聚集索引

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

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

答案 1 :(得分: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