加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

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
        我们看到查询计划依然一样。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读