位置: 编程技术 - 正文

详解SQL Server的简单查询语句(sql server功能介绍)

编辑:rootadmin

推荐整理分享详解SQL Server的简单查询语句(sql server功能介绍),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql servers,sql server的介绍,sql server语句大全讲解,sql server的介绍,sql server的介绍,sql server语句大全讲解,sql server基本知识,sql servers,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

对于一些原理性文章园中已有大量的文章尤其是关于索引这一块,我也是花费大量时间去学习,对于了解索引原理对于后续理解查询计划和性能调优有很大的帮助,而我们只是一些内容进行概括和总结,这一节我们开始正式步入学习SQL中简单的查询语句,简短的内容,深入的理解。

简单查询语句

所有复杂的语句都是由简单的语句组成基本都是由SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等组成,当然还包括一些谓词等等。比如当我们要查询某表中所有数据时我们会像如下进行。

SELECT * FROM TABLE

到这里是不是查询就是从SELECT开始呢?我们应该从实际生活举例,如我们需要到菜市场买菜,我们想买芹菜,我们应该是到有芹菜的摊位上去买,也就是从哪里去买,到这里我们会发现上述查询数据的顺序应该是先FROM然后是SELECT。在SQL 基础教程中列出子句是按照以下顺序进行逻辑处理。

比如我们要查询筛选客户下的订单,我们会进行如下查询。

但是实际上按照我们上述所说的顺序,其逻辑化的子句是这样的。

对于博主的SQL系列并非会将SELECT、HAVING等语句单独拿来讲,针对的是有了一定基础的人群,后续内容也是如此,所以到了这里我们算是将简单查询语句叙述完毕。但是我一直强调的是简短的内容,深入的理解,所以接下来看看有些需要注意的地方。

我们看到过很多文章一直在讲SQL性能问题,比如在查询所有数据时要列出所有列而非SELECT *,所以在本系列中,我也会在适当的去讲性能问题,比如本节要讲的SELECT 1和SELECT *的性能问题。

SELECT 1和SELECT *性能探讨

在数据库中查看执行计划时我们通常会点击【显示估计的执行计划】快捷键是Ctrl+L,这里我们可以看到它已经表明显示的只是估计的执行计划,所以是不准确的,所以为了显示实际的执行计划,我们应该启动【包括实际的执行计划】,快捷键是Ctrl+M,这样才能得到比较准确的执行计划,如下

查询方式一(整表查询)

此时查看执行计划是相同的,如下:

查询方式二(在索引列上条件查找)

我们对某一列创建索引

接下来继续查看其执行计划。

详解SQL Server的简单查询语句(sql server功能介绍)

此时显示查询计划依然一样。我们再来看看其他查询方式。

查询方式三(使用聚合函数)

我们看到查询计划依然一样。

查询方式四(使用聚合函数Count在非索引列上查找)

我们看到执行计划还是一样。

查询方式五(子查询)

我们看看在子查询中二者性能如何

此时结果二者查看执行计划还是一样

查询方式六(在视图中查询)

我们创建视图继续来比较SELECT 1和SELECT *的性能

进行视图查询

结果执行计划如下:

此时我们通过上述图发现利用视图查询时,SELECT *的性能是如此低下占有%,而SELECT 1才3%,这是为何呢?不明白其中原因,希望有清楚其中原因的园友能够留下你们的评论给出合理的解释。

SELECT 所有列和SELECT *性能探讨

一直以来所有教程都在讲SELECT *性能比SELECT 所有列性能低,同时也给出了合理的理由,我也一直这样认为,但是在查资料学习过程中,发现如下一段话。

最后一句表明SELECT *使用的唯一场景是在EXISTS中,看到这里颠覆我以往看的教程的想法,不太明确,真的是这样吗?

总结

通过以上对SELECT 1和SELECT *性能的探讨,在视图中利用SELECT *性能更加低下,同时也结合SELECT *尽量避免用,我是不是可以下结论我可以更倾向于用SELECT 1呢?第二点是看到上述所给的资料SELECT *在Exist中的性能是不是和一定SELECT 所有列一样呢?这是我存在疑问的两个问题,是不是我所疑问的两个问题,没有具体的答案,需要看应用场景呢?那应用场景又是在哪里?毕竟不是专业的DBA,同时对SQL也研究不深,所以希望看到此文的读者,能给出精彩的回答,同时也让我学习学习。

标签: sql server功能介绍

本文链接地址:https://www.jiuchutong.com/biancheng/318995.html 转载请保留说明!

上一篇:详解SQL Server数据库架构和对象、定义数据完整性(sql server数据)

下一篇:VS2015安装之后加装Sql server2014详细步骤(vs2015安装方法)

  • 计提本月附加税会计分录
  • 个体工商户个人经营所得税优惠政策
  • 净利润为什么要减折旧
  • 成本核算方法有先进先出法吗
  • 跨境电商零售正面清单
  • 商业承兑汇票贴现手续费是多少
  • 承租方收到融资租赁款会计处理
  • 出租固定资产取得的租金收入属于什么收入
  • 诉讼费走哪个会计科目
  • 汇票本票的区别
  • 增值税价外费用如何开票
  • 资产减值损失会影响利润吗
  • 投资公司的利息支出可抵扣吗
  • 劳务派遣公司是干嘛的
  • 建筑业简易计税进项税可以抵扣吗
  • 企业间拆借应收利息记哪个科目?
  • 理财赎回本金没赎回利息咋办
  • 环境保护税的申报期限是如何规定的
  • 商贸公司不开发票还要上税吗
  • 国家基建项目规划
  • 关闭guest账户
  • 退休返聘人员的优点
  • 怎么隐藏权限
  • 微信小程序实现发红包
  • hptasks.exe是病毒吗 是什么进程 hptasks进程说明
  • 微软 windows11
  • 自创商誉是否能入账
  • vantUI van-picker中的column使用,picker选择器展示对象数组里面的属性,自定义展示数据
  • 会计中的计算公式
  • 大雾山国家公园总部加特林堡
  • 美丽的大中华
  • 一般纳税人未取得增值税专用发票怎么处理
  • 一般纳税人增值税减免政策2023
  • 符合资本化的研发支出不影响利润总额吗
  • java定时器怎么用
  • 表关联查询语句
  • 差额征税的几种情况
  • 自产产品对外赠送的会计处理方法
  • 税审报告什么时候出
  • 制药企业客户退货流程
  • 报税系统如何导出发票
  • hashmap的使用场景
  • 发票已入账但未认证的进项税额
  • 销售收入未开票
  • 增加固定资产原值50%以上
  • 个税系统更新在哪里
  • 基础电信是什么
  • 所得税汇算清缴补税的会计处理
  • 以前年度损益调整结转到哪里
  • 小企业会计准则调整以前年度费用分录
  • 本年利润是什么性质的科目
  • 补交增值税税款怎么做账
  • 一般纳税人增值税优惠政策2023
  • 减值损失账务处理
  • 工业企业外购材料物资的成本包括
  • 安装完成后如何检验安装的部分是否符合安装工艺
  • mac截屏后的图片在哪里
  • ati2plab.exe是什么进程 ati2plab进程安全吗
  • The file /boot/grub/stage1 not read cor 解决办法
  • win7系统更新补丁会解决游戏卡顿的问题吗
  • windows8窗口
  • iptables: Unknown error 4294967295问题解决方法
  • ztree getnodebytid
  • css 网页布局
  • unity2d 阴影
  • python作业题目
  • javascript教程完整版
  • ajax multipart/form-data
  • jquery遍历radio并选中
  • android sql语句
  • jQuery同步提交示例代码
  • 文件夹怎么变成
  • android内存泄露监测
  • python ping检测
  • js面向对象是什么意思
  • jquery的底层原理
  • 商铺转让费怎么开票项目
  • 鄞江在哪里
  • 曲靖注册公司要哪些条件
  • 加计扣除的税收分类编码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设