编写SQL查询的关键—SQL语句的执行顺序
【文章标题】编写
SQL
查询的关键—
SQL
语句的执行顺序
【文章作者】曾健生
【作者邮箱】
zengjiansheng1@126.com
【作者
QQ
】
190678908
【作者
MSN
】
zengjiansheng1@hotmail.com
【作者博客】
blog.csdn.net/newjueqi
*******************************************************************************
编写
SQL
语句是每个程序员应该具备的基本功。在实际开发过程中,需要编写比较复杂的
SQL
查询语句是必不可少的,但很多
SQL
书籍上不是简单的介绍一下就是出最终的查询语句,编写复杂
SQL
查询的具体思路却没有多少介绍,这不能不说是一种巨大的遗憾
,
看着一串无比复杂的
SQL
语句,没有掌握方法的话谁看了都会头晕
^-^
回忆一下学习编程语言的经历(
C++,java
等),我们一般都是先学习变量的定义,然后是流程控制语句,接着是函数,类等等。但我们在学习
SQL
,
SQL
书籍上都普遍忽略了一个重要的方面:
SQL
语句的执行顺序。
不知道是什么原因,这一点确实没被多少书籍提过。掌握了SQL语句的执行顺序的规律,就能较轻松的编写出复杂的
SQL
查询。
SQL
语句的执行顺序如下:
1
、
from
子句组装来自不同数据源的数据;
2
、
where
子句基于指定的条件对记录行进行筛选;
3
、
group by
子句将数据划分为多个分组;
4
、使用聚集函数进行计算;
5
、使用
having
子句筛选分组;
6
、计算所有的表达式;
7
、使用
order by
对结果集进行排序。
下面举一个简单的例子举例说明,假设有以下一张表
student
:
ID
Name
Age
1
Tom
23
2
Jack
25
3
Lucy
15
4
Anay
18
5
Bobby
21
要求通过
SQL
语句把年龄大于
20
的学生姓名查出来
SQL
语句如下:
Select name
from student
Where age>20
结果是:
Tom
Jack
Bobby
那对于这个简单的
SQL
语句,执行顺序是怎么样的呢?
1.
from
子句组装来自不同数据源的数据,简单点来说就是要确定查询的数据来自哪个表。如果
from
关键字后跟的表有两个或以上,就产生笛卡尔积。
2.
where
子句对每个记录行进行
筛选,把不符合条件的行筛选掉。
3. &
相关文档:
作者 Haidong Ji 翻译 GoodKid
我们当中的大部分人工作在一个单一的 RDBMS 系统中,如 MSSQL, Oracle, or IBM DB2。然而,我们日益感觉到,我们正处于不同的数据库环境当中并且需要解决数据的互用性问题。
尽管主要的 RDBMS 厂商试图去遵循关系数据库模型原理,并且用非常小的差异去实现它们。另外,几乎主要的 ......
在SQL Server 2005数据库中实现自动备份的具体步骤:
1、打开SQL Server Management Studio
2、启动SQL Server代理
3、点击作业->新建作业
4、"常规"中输入作业的名称
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句(红色部分要根据自己的实际情况更改,D:\sql2005\\back\改为自己的 ......
SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态。然后对要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的Web应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似&ld ......
什么是数据库分区?
数据库分区是一种对表的横向分割,Sql server 2005企业版和之后的Sql server版本才提供这种技术,这种对表的横向分割不同于2000中的表分割,它对访问用户是透明的,用户并不会感觉的表被横向分割了。(2000中的表横向分割是建n个表例如按时间建表每月一个表,表名不同,最后需要做一个大视图)
为什 ......