Select—没你想的那么复杂

Select语句的基本结构如下:

Select  [All | Distinct]  select_list
[Into [new_table-name]]
Form {table_name | view_name}
[,{table_name2 | view_name2}
….,{table_name10|view_name10}]
[Where search_conditions]
[Group By group_by_list]
[Having search_conditions]
[Order By order_list [ASC| DESC]]

  第一行语句中select_list表示需要检查的字段的列表,字段名称间用逗号分隔

  All 指明查询结果中可以显示值相同的列,且为系统默认 *

  Distinct 指明查询结果中如有值相同的列,则只显示其中的一列 唯一值

  第二行语句中Into子句用于把查询结果存放到一个新建的表中 as 。。。。

  new_table-name 指明新建表的名称

  第三行语句中Form 子句指定需要查询的表注:只要Select中又要查询的列就必须使用From子句

  table_name / view_name 指明Select 语句要用到的表,视图等数据源,该列表中的数据表名和视图名之间使用逗号分隔

  第四行语句中 Where子句是制定数据检索的条件,以限制返回的数据行

  第五行语句中Group By 子句指定查询结果的分组条件

  第六行语句中 Having 子句指定分组搜索条件,通常与Group By子句一起使用,它与Where语句类似只是其作用对象不同,Where子句作用于表和视图,Having子句作用于组。

  最后一行语句Order By 子句指定查询结果的排序方式,ASC是升序(系统默认),DESC 降序

  下面具体介绍一下Group By 子句

  ALL:表示返回所有可能的查询结果组合,即使此组合中没有任何满足Where子句的数据,分组的统计列如果不满足查询条件,则将由null值构成其数据

  Cube:除了返回由Group By子句指定的列外,还返回按组统计的行,返回的结果按分组的第一个条件列排序显示,以此类推。统计行包括了Group By子句指定的列的各种组合的数

  据统计

  Rollup:只返回第一个分组条件指定的列的统计行,改变列的顺序会使返回的结果发生变化

  举例:按所属部门分类,找出工资大于来2000的所有员工

  下面两个图即分别是为Cube的返回结果和Rollup的返回结果

  如何提高Select语句的效率

  1、使用exists关键字检查结果集:不要用count(*)来检查结果集中是否包含行

  2、使用标准连接代替嵌套查询:在执行嵌套查询时,SQL Server将执行内部的子查询,然后将查询结果返回给外部查询作为检索的数据源,最后执行外部的主查询。而在执行包含标准联接的查询时,SQL Server将要查询的仅仅是一个查询

  3、有效避免整表扫描:使用索引,除了缺失索引外,可能导致整表扫描的另一种情况是在like子句的匹配条件的开始使用了%,如果这样将会调用整表扫描。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-17 04:30:07

Select—没你想的那么复杂的相关文章

windows-shell扩展注册成功,但没出现想要的效果

问题描述 shell扩展注册成功,但没出现想要的效果 // FileTimeShlExt.cpp : CFileTimeShlExt 的实现 #include "stdafx.h" #include "FileTimeShlExt.h" # pragma comment(lib, "Comctl32.lib") // CFileTimeShlExt BOOL static CALLBACK ProPageDlgProc(HWND hwnd, UI

物联网已经来临,只是没你想的那么美好

2016年被业界普遍认为是物联网的元年.而事实上,距离物联网正式进入家庭的那一刻起已经过去了三年之久. 尽管物联网并没有在2013年或是2014年遍地开花,但在2015年CES中的大肆炒作下,物联网的规模得到了空前的扩张.去年三星的主题演讲中,公司首席执行官兼总裁Boo-Keun Yoon宣称,在科学技术的发展下,"物联网"已经不只限存在于网络科幻小说中,物联网已然成为现实:"当2016年来临之时,人们的家中都将会有全套的物联网设备,满足大家的各种生活需求." 我们

技巧篇——关键词堆砌没你想的那么简单

我们都知道SEO的手段其中重要之一就是在网页中关键词堆砌,这点想接触SEO的人应该都有这样的潜意识,但是关键词堆砌却往往没有你想象的那么简单!我不知道哦是不是很多站长都有过我已经堆砌了关键词,但是往往效果却没有想象的那么明显这种时候呢?我想很多时候这种方法站长们感觉效果都不是很好,那这是为什么呢?难道关键词堆砌真的就没有什么效果么? 我们首先来明确一下关键词堆砌的根本! 众所周知,我们现实社会中很多的同一行业的商店都会开在一起,有很多人会说,这样不是加速竞争么?对你店铺的经营也不一定有提升效果吧

舆情中的热词分析,没你想的那么简单

背景 阿里云公众趋势分析产品通过云服务的方式,将阿里巴巴成熟的舆情分析技术共享给广大开发者.热词分析是公众趋势分析最近刚刚上线的功能,用户反馈效果还不错.这个功能听起来很简单,不就是对数据源进行分词,然后再统计一下热度么?No!它可没那么简单. 分词和实体识别 良好的分词是热词分析的基础.对于绝大部分分词工具来说,最大的挑战在于识别从未见过的网络热门词.各种奇葩的品牌.产品词等,举个例子,"安利的空气净化器跟霍尼韦尔还有米家比怎么样"这个句子,我们随意在网上找到了某款开源的分词工具,分

华谊尝试互联网转型背后:马化腾”没太想清楚“ 即兴拍板

王中军至今清楚地记得三年前华谊是怎么和腾讯"纠缠"到一块的. 当时,王中军.马化腾.刘炽平(腾讯总裁)三个人"热情"地约谈两家怎么合作,"都没有太想清楚",但"都相信一定会有机会".最后实在想不明白怎么合作,马化腾就提议"干脆腾讯先入股华谊".于是便有了2011年5月腾讯以4.5亿元入股华谊.一跃成为后者最大的机构股东的故事. 好在之后的发展向马化腾证明了当初的即兴拍板并不"草率".之后

移动苹果合作 没你想的那么简单

腾讯科技 瑞雪 12月12日编译苹果iPhone智能手机 登陆中国移动的网络长期以来备受市场期待,而此事预计将在下周发生,这一消息推动苹果股价上扬.但伯恩斯坦研究公司(Bernstein Research)分析师托尼·萨科纳吉(Toni Sacconaghi)则发出警告,称很多人对中国移动将给苹果带来的影响所作出的预期"过于热心".萨科纳吉在周三发布的一份客户报告中指出:"就目前而言,我们认为在截至12月份为止的当前财季中,苹果业绩存在上行推动力,并认为中国移动即将宣布的消息

企业上云这件事 没你想的那么麻烦

对于今天的企业决策者们来说,是否应该采用云计算技术规划和建设其信息系统,似乎已经不存在巨大的争论和分歧,问题演变成:我应该如何更好的利用云计算技术来改善业务体验和流程. 遗憾的是,正当企业们正要跨进云计算这道门时,却被高高的台阶绊了一跤:每个基础设施不同的控制面.多种系统复杂的计费体系,运维现状不能一目了然,发生障碍时难以确认原因等等.如果你打算单枪匹马解决这些问题明显不太容易,需要懂云和本地部署的专家协助. 而Bespin Global的成立就是为了解决这些问题,其公司联合创始人及国际业务副总

OpenStack没你想的那么简单!

OpenStack不断获得大型厂商和企业的支持,但是某初创公司不顾艰难坚持这项技术导致了失败的实施,这家公司现在已经关门大吉了. 位于麻省的一家拥有30名员工的公司,今年年初已经关门大吉了.Brian Tarbox是曾经工作于此的以为软件工程师,据他介绍,该公司曾经开发一种独立的应用,花费数月时间尝试用HP Helion实现OpenStack私有云. Tarbox要求匿名的这家公司当然并非因为不成功的OpenStack安装而失败,但是大量的时间都用到询问开源云平台的优缺点上了.Tarbox表示:

微软Windows XP没你们想的那么弱

在WannaCry病毒爆发之后,Windows XP成为首批被攻击目标,微软甚至打破常规,为这款已经停止支持的操作系统发布了一款安全补丁. 不过,一份最新的报告显示,Windows XP并不像人们想象的那么弱. 来自Kryptos的研究数据表明,在面对WannaCry病毒时,Windows XP电脑倾向于简单的系统崩溃,而这种崩溃往往发生在感染相应的蠕虫病毒之前,反而保护用户系统不被侵害. Kryptos的研究人员在实验室中让WannaCry尝试感染一台Windows XP计算机,但计算机却提示