`
java-mans
  • 浏览: 11460137 次
文章分类
社区版块
存档分类
最新评论

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子句用于把查询结果存放到一个新建的表中

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复杂查询分类汇总

    select外部多表连接查询,并汇总各查询单位数据,计算各类指标值.

    JSONSelect.zip

    JSONSelect ,JSONSelect 是一个 JSON 数据的选择器语言,可让你从复杂的 JSON 文档数据中访问指...

    06++查询数据——SELECT语句.rar

    一条 SELECT 语句可以很简单,也可以很复杂。一个较复杂的查询操作可以使用多种方法完成, 即SELECT 语句的编写方法也是灵活多样的,就像一道数学题有多种解法一样,所以SELECT 语句没 有绝对的固定格式。

    Select语句大全,适合初学者

    虽然 SELECT 语句的完整语法比较复杂,但是大多数 SELECT 语句都描述结果集的四个主要属性 1、结果集中的列的数量和属性。 2、从中检索结果集数据的表,以及这些表之间的所有逻辑关系。 3、为了符合 SELECT 语句的...

    select2-3.5.3插件(最完善的选择框插件 )

    非常适合高级选择框,可进行ajax,多选,单选等复杂操作

    在ORACLE中实现SELECT TOP N的方法

    在ORACLE中实现SELECT TOP N的方法,所讲的都是一些最基本的,实际应用中往往都没有这么简单,但是不管怎么说,不管复杂的应用总是由这些简单的元素构成,掌握一些最基本的方法始终是重要的。

    jsqlparser解析复杂sql

    jsqlparser解析复杂sql 获取where条件字段 select字段 表名table 查询join 查询 group by 查询order by 子查询 判断是否为多级子查询

    Javascript Select操作大集合

    现在步入正题,看到书中讲Form元素的操作,像Textbox、Button、Label等,都还是比较简单的,只是看到Select时,稍微有些复杂,于是就想仔细研究研究,于是就有了这篇文章。Select的操作包括动态添加、删除、移动、...

    数据库复杂查询SQL

    SQL复杂查询,比如:SELECT的排序、分组等

    仿制简单的SQL select查询语句,用于对二维数组的查询,建立环境-Excel Vba,可移植到VB环境中

    '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = ...

    JSONSelect-v1.4.rar

    移到第2级,它有更复杂的CSS结构,可以使表达式(如模式)等于值。 最后的3级,添加结构与直接类似的CSS,以提高能力和实现更容易的语言选择器。 它包括具有高级CSS设置和集成的流行和广泛使用的结构。 您也可以下载...

    select 的用法

    网络编程select函数的详细讲解!select函数是一个使用起来很复杂的函数。

    JDBCFacade模式的运用

    为了将这些复杂的细节与数据库应用程序的设计者隔离开,请设计一个JDBCFacade类,该类提供jdbcOpen(), jdbcSelect(), jdbcUpdate(), jdbcInsert(), jdbcDelete(), jdbcClose()等方法,数据库应用程序的开发者直接...

    JavaScript实现通过select标签跳转网页的方法

    我们经常有遇到需要用select标签跳转到新网页的情况,dw生成的代码太复杂,那么有没有精简的代码得以实现呢?经过仔细的研究找到了以下几段代码,非常不错。 话不多说,直奔主题。 当面跳转的核心代码是:”location...

    javascript模拟select实现代码

    JS+CSS模拟Select下拉框,选择表单效果 网页中使用Select语法实现的下拉框是很普遍的,但是您有没有见过使用JS+CSS模拟的Select下拉框?并且可以选择表单哦,尽管代码复杂了点,但是对于我们了解此类特效非常有帮助...

    ORC_SELECT.rar_oracle_select orac

    oracle 多联合复杂的SQL语句,实现(+)=(+)的方法;不符合统计的统计方法。

    MySQL中select语句介绍及使用示例

    select语句的通用形式如下: select 你要的信息 from 数据表(一个或多个) where 满足的条件 select语句有几个子句,他们的各种搭配能帮你查出最感兴趣的信息,这些子句可以很简单,也可以很复杂,看看

    SQL 查询语句先执行 SELECT?兄弟你认真的么?

    好像这个问题应该很好回答,毕竟自己已经写了无数个 SQL 查询了,有一些还很复杂的。还装不了这个逼了?! 但事实是,我仍然很难确切地说出它的顺序是怎样的。 言归正传,SELECT语句的完整语法如下: 1. SELECT ...

    【数据库】作业6——SQL练习3 – SELECT(单表查询)

    2. 写出自己的理解/收获/心得体会(部分比较复杂的例题,建议增加测试方法和测试数据,举一反三)。 REF:建表&插入数据 作业原地址:作业 书接上回:【数据库】作业5——SQL练习2 – INDEX / INSERT / SELECT 注:...

    Ga.rar_select ga_遗传算法

    用c语言编写的matlab遗传算法程序,包含:select,crossover,mutator等。非常适合初学者学习,程序比较清晰,而且不是很复杂。

Global site tag (gtag.js) - Google Analytics