sql server怎样写查询语句?浅谈查询性能难题
发布时间:2022-04-26 09:07:23 所属栏目:系统 来源:互联网
导读:学习SQL sever,查询语句是必须要掌握的,对此本文就给大家介绍一下关于sql server简单的查询语句,因为简单语句是基础,要想做复杂查询,先掌握简单查询语句很重要。 简单查询语句 所有复杂的语句都是由简单的语句组成基本都是由SELECT、FROM、WHERE、GROUP
学习SQL sever,查询语句是必须要掌握的,对此本文就给大家介绍一下关于sql server简单的查询语句,因为简单语句是基础,要想做复杂查询,先掌握简单查询语句很重要。 简单查询语句 所有复杂的语句都是由简单的语句组成基本都是由SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等组成,当然还包括一些谓词等等。比如当我们要查询某表中所有数据时我们会像如下进行。 SELECT * FROM TABLE 到这里是不是查询就是从SELECT开始呢?我们应该从实际生活举例,如我们需要到菜市场买菜,我们想买芹菜,我们应该是到有芹菜的摊位上去买,也就是从哪里去买,到这里我们会发现上述查询数据的顺序应该是先FROM然后是SELECT。在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理。 FROM WHERE GROUP BY HAVING SELECT ORDER BY 比如我们要查询筛选客户71下的订单,我们会进行如下查询。 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numbers FROM Sales.Orders WHERE custid = '71' GROUP BY empid, YEAR(orderdate) HAVING COUNT(*) > 1 ORDER BY empid, orderyear 但是实际上按照我们上述所说的顺序,其逻辑化的子句是这样的。 查询方式一(整表查询) USE TSQL2012 GO IF EXISTS( SELECT 1 FROM Sales.Orders) SELECT 'SELECT 1' GO IF EXISTS( SELECT * FROM Sales.Orders) SELECT 'SELECT *' GO 查询方式二(在索引列上条件查找) 我们对某一列创建索引 CREATE INDEX ix_shipname ON Sales.Orders(shipname) 接下来继续查看其执行计划。 此时显示查询计划依然一样。我们再来看看其他查询方式。 查询方式三(使用聚合函数) USE TSQL2012 GO IF ( SELECT 1 FROM Sales.Orders WHERE shipname = 'Ship to 85-B') = 1 SELECT 'SELECT 1' GO IF ( SELECT COUNT(*) FROM Sales.Orders WHERE shipname = 'Ship to 85-B') = 1 SELECT 'SELECT *' GO 我们看到查询计划依然一样。 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |