我必须构造这些查询,因此它们是完美的SQL。查询需要用于SQL Server数据库,我有一个数据库StoresDB
,一个表items_table
。
我需要检索
此表中的项目总数
价格高于或等于10英镑的商品数量 - 列名称为金额
计算机类别中的项目列表 - 列名称='comp_id'按减少的金额排序。
对于上述请求,我尝试了以下内容:
SELECT COUNT(*) FROM items_table
Select * from items_table where amount >= 10
Select * from items_table where comp_id = ’electronics’ desc
我是SQL的新手,不确定我是否正确尝试过这种方法。
答案 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