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子句用于把查询结果存放到一个新建的表中
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子句的匹配条件的开始使用了%,如果这样将会调用整表扫描。
分享到:
相关推荐
select外部多表连接查询,并汇总各查询单位数据,计算各类指标值.
JSONSelect ,JSONSelect 是一个 JSON 数据的选择器语言,可让你从复杂的 JSON 文档数据中访问指...
一条 SELECT 语句可以很简单,也可以很复杂。一个较复杂的查询操作可以使用多种方法完成, 即SELECT 语句的编写方法也是灵活多样的,就像一道数学题有多种解法一样,所以SELECT 语句没 有绝对的固定格式。
虽然 SELECT 语句的完整语法比较复杂,但是大多数 SELECT 语句都描述结果集的四个主要属性 1、结果集中的列的数量和属性。 2、从中检索结果集数据的表,以及这些表之间的所有逻辑关系。 3、为了符合 SELECT 语句的...
非常适合高级选择框,可进行ajax,多选,单选等复杂操作
在ORACLE中实现SELECT TOP N的方法,所讲的都是一些最基本的,实际应用中往往都没有这么简单,但是不管怎么说,不管复杂的应用总是由这些简单的元素构成,掌握一些最基本的方法始终是重要的。
jsqlparser解析复杂sql 获取where条件字段 select字段 表名table 查询join 查询 group by 查询order by 子查询 判断是否为多级子查询
现在步入正题,看到书中讲Form元素的操作,像Textbox、Button、Label等,都还是比较简单的,只是看到Select时,稍微有些复杂,于是就想仔细研究研究,于是就有了这篇文章。Select的操作包括动态添加、删除、移动、...
SQL复杂查询,比如:SELECT的排序、分组等
'参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = ...
移到第2级,它有更复杂的CSS结构,可以使表达式(如模式)等于值。 最后的3级,添加结构与直接类似的CSS,以提高能力和实现更容易的语言选择器。 它包括具有高级CSS设置和集成的流行和广泛使用的结构。 您也可以下载...
网络编程select函数的详细讲解!select函数是一个使用起来很复杂的函数。
为了将这些复杂的细节与数据库应用程序的设计者隔离开,请设计一个JDBCFacade类,该类提供jdbcOpen(), jdbcSelect(), jdbcUpdate(), jdbcInsert(), jdbcDelete(), jdbcClose()等方法,数据库应用程序的开发者直接...
我们经常有遇到需要用select标签跳转到新网页的情况,dw生成的代码太复杂,那么有没有精简的代码得以实现呢?经过仔细的研究找到了以下几段代码,非常不错。 话不多说,直奔主题。 当面跳转的核心代码是:”location...
JS+CSS模拟Select下拉框,选择表单效果 网页中使用Select语法实现的下拉框是很普遍的,但是您有没有见过使用JS+CSS模拟的Select下拉框?并且可以选择表单哦,尽管代码复杂了点,但是对于我们了解此类特效非常有帮助...
oracle 多联合复杂的SQL语句,实现(+)=(+)的方法;不符合统计的统计方法。
select语句的通用形式如下: select 你要的信息 from 数据表(一个或多个) where 满足的条件 select语句有几个子句,他们的各种搭配能帮你查出最感兴趣的信息,这些子句可以很简单,也可以很复杂,看看
好像这个问题应该很好回答,毕竟自己已经写了无数个 SQL 查询了,有一些还很复杂的。还装不了这个逼了?! 但事实是,我仍然很难确切地说出它的顺序是怎样的。 言归正传,SELECT语句的完整语法如下: 1. SELECT ...
2. 写出自己的理解/收获/心得体会(部分比较复杂的例题,建议增加测试方法和测试数据,举一反三)。 REF:建表&插入数据 作业原地址:作业 书接上回:【数据库】作业5——SQL练习2 – INDEX / INSERT / SELECT 注:...
用c语言编写的matlab遗传算法程序,包含:select,crossover,mutator等。非常适合初学者学习,程序比较清晰,而且不是很复杂。