<select{[distinct |all] columns |*}>

[into table_name]

<from {tables |views | other select}>

[where conditions]

[group by columns]

[having conditions]

[order by columns]

[fetch first class]

[union<select query clause>]

在上面的语法中共有九个句子,他们的功能分别如下:

select子句:用于选择数据表,视图中的列;

into 子句:用于将原表的结构和数据插入到新表中;

from子句:用于指定数据来源,包括表,视图和其他的select语句;

where子句:用于对检索的数据进行筛选;

group by:用于对检索的结果进行分组显示;

having子句:用于从使用group by子句分组后的查询结果中筛选数据行;

order by:用于对结果集进行排序(包括升序和降序)

fetch first:用于返回结果集的行数;

union:用于连接两条select查询语句。

说明:1.union all对两张表中的数据进行合并,它和union的不同之处在于,union all显示的是所有合并的数据包括重复的,而union只显示不重复的数据

2.group by 子句经常和聚集函数一起使用,如果select子句中包含聚集函数,则计每组的总值,当用户指定order by 时,选择列中任一非聚集表达式内的

所有列都应包含在group by 中

例如:select 学号,avg(成绩) 平均成绩 from 成绩表

where 学号 in(select 学号 from 学生表 where 专业=‘学前教育’)

group by 学号

having avg(成绩)>=62

以上的sql的执行顺序如下:

1.首先执行where查询条件中的select,得到学前教育专业所有学生的学号集合

2.然后对‘成绩表’中的每条记录,判断‘学号’字段值是否在前面所求的‘学号’的集合中,不在,跳过该记录,继续处理下一条记录,若在,加入where的结果集

3.对成绩表筛选完后,按‘学号’进行分组,再在各分组记录中选出‘平均成绩大于等于62’的记录,从而形成最后的结果集。

带with rollup 关键字的group by子句,使用此关键字包含汇总总行

带with cube关键字的group by子句中的各列的所有可能组合均产生汇总行

在sql中select的执行顺序的更多相关文章

  1. SQL中关键字的执行顺序

    作为一个SQL新手,看到每种不熟悉的关键字时已经够迷茫了,可往往见到的语句关键字顺序还是各种各样,太难理解了.网上搜索了两篇文章,总结一下: 关于Sql关键字SELECT FROM GROUP ORD ...

  2. SQL之SELECT语句执行顺序及子句功能

    1.select 语句的执行顺序 SELECT a.id,a.`product_name`,a.`agreement_copies` i,b.id as statusId from `opmp_pro ...

  3. SQL查询中关键词的执行顺序

    写在前面:最近的工作主要是写SQL脚本,在编写过程中对SQL的执行和解析过程特别混乱不清,造成了想优化却无从下手.为此专门在网上找博文学习,并做了如下总结. 1.查询中常用到的关键词有: SELECT ...

  4. sql关键字的解释执行顺序

      sql关键字的解释执行顺序 分类: 笔试面试总结2013-03-17 14:49 1622人阅读 评论(1) 收藏 举报 SQL关键字顺序 表里面的字段名什么符号都不加,值的话一律加上单引号 有一 ...

  5. 浅谈SQL优化入门:1、SQL查询语句的执行顺序

    1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...

  6. 45、SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  7. SQL语句完整的执行顺序(02)

    这是对SQL语句完整的执行顺序(01)的补充: 数据库是mysql,使用的数据库表名称是my_student. 表的完整数据信息是: 完整语法是: Select [select选项] 字段列表[字段别 ...

  8. 第四篇:记录相关操作 SQL逻辑查询语句执行顺序

    http://www.cnblogs.com/linhaifeng/articles/7372774.html 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <selec ...

  9. 9、SQL逻辑查询语句执行顺序

    本篇导航: SELECT语句关键字的定义顺序 SELECT语句关键字的执行顺序 准备表和数据 准备SQL逻辑查询测试语句 执行顺序分析 一.SELECT语句关键字的定义顺序 SELECT DISTIN ...

随机推荐

  1. [LeetCode] Largest Triangle Area 最大的三角区域

    You have a list of points in the plane. Return the area of the largest triangle that can be formed b ...

  2. [LeetCode] Number of Lines To Write String 写字符串需要的行数

    We are to write the letters of a given string S, from left to right into lines. Each line has maximu ...

  3. Python: map() and reduce()

    map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个lis ...

  4. 【C++】二叉树的构建、前序遍历、中序遍历

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  5. flutter学习之二Material Design设计规范

    前言: 最近在自学flutter跨平台开发,从学习的过程来看真心感觉不是那么一件特别容易的事.不但要了解语法规则, 还要知晓常用控件,和一些扩展性的外延知识,所以套一句古人的话“路漫漫其修远矣,无将上 ...

  6. C++编程剖析 问题 方案 和设计准则

    1.Set的每个对象为什么会有三个指针? STL中的set使用方法详细!!!! 因为其底层是红黑树实现的,每个节点有两个子节点和一个父节点,所以需要三个指针. Set 与 map的区别是什么? 总的来 ...

  7. npm是什么,用来干嘛的

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

  8. Python Flask Restful

    Flask  Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...

  9. js的一些注意点

    18-12-24 oninput事件: 在用户输入时触发,它是在元素值发生变化时立即触发: 该事件在 <input> 或 <textarea> 元素的值发生改变时触发. 缺陷: ...

  10. HBase JavaAPI

    一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这 ...