易截截图软件、单文件、免安装、纯绿色、仅160KB

编写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.     &


相关文档:

Oracle与SQL Server数据互易性(1)

作者 Haidong Ji 翻译 GoodKid
我们当中的大部分人工作在一个单一的 RDBMS 系统中,如 MSSQL, Oracle, or IBM DB2。然而,我们日益感觉到,我们正处于不同的数据库环境当中并且需要解决数据的互用性问题。
尽管主要的 RDBMS 厂商试图去遵循关系数据库模型原理,并且用非常小的差异去实现它们。另外,几乎主要的 ......

MS SQL Server 2008分布式查询MySQL

  近日,俺通过MS SQL Server 2008的链接服务器查询MySQL的数据。其实,俺在多年前就使用过这个,当时是分布式查询Excel表数据,现在,换成异构数据库MySQL。俺以64位系统说明:
   首先,Windows程序访问MySQL数据库需要驱动程序,可以到官方网站下载,俺就是使用Mysql ODBC 5.1 Driver for 64bit,通过数 ......

轉SQL Server 远程链接服务器详细配置

 远程链接服务器详细配置
--
建立连接服务器
EXEC
sp_addlinkedserver
'
远程服务器IP
'
,
'
SQL Server
'
--
标注存储
EXEC
sp_addlinkedserver
@server

=

'
server
'
,
--
链接服务器的本地名称。也允许使用实例名称,例如MYSERVER\SQL1
@srvproduct

=

'
product_name ......

SQL数据库服务器的安全策略 保护数据安全

 SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态。然后对要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的Web应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似&ld ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号