SQL 查询基础(1)

 今天我会开始在博客园中开始写我的编程经验,本文工科男,毕业后做了程序员,对C,C++,C# 都有涉猎,对C++有固执的偏好。没有做过DBA,对SQL Server 仅限于存储过程和查询语句的优化,对于索引之类的,只是略有了解。

对于SQL 查询基础的几篇随笔,看了后对于一般的存储过程会有一些帮助,但是不可能让你成为专业人士。

    由于我只对 SQL Server 比较熟悉,本文的代码举例等都是基于SQL Server 的,对于Oracle 和 MySQL,我想大致应该差不多。

    首先我们需要了解,SQL语言针对的是集合的编程,需要有一些集合的基础。

    对于编程逻辑,C,C++等等,都是使用 TRUE 或者 FALSE 来表示。对于SQL 编程,实行的是三值逻辑:TRUE,FALSE 和 UNKNOWN。

    一个简单的查询语句,一般写法为:

SELECT [COLUMN]
FROM [TABLE]
WHERE [CONDITION]

 在SQL Server中,逻辑执行的顺序为:1) FROM, 2) WHERE, 3)SELECT

      首先需要执行 FROM 语句,找到数据的源头(FROM 后边的 JOIN 语句将在后续讲到),从数据库中找打数据源,放到一个虚表中 VT1;

      然后执行 WHERE 语句,根据 WHERE 中的筛选条件,找到符合条件的数据集合,再放到虚表中 VT2;

      最后执行 SELECT 语句,从 VT2 虚表中选择需要显示的列,返回查询结果。(如果需要返回所有列,可使用 SELECT *)

这是最简单的一个SQL 语句在逻辑上的执行顺序,中间过程中是否真的会产生虚表,在SQL的物理实现上是不是采用这种顺序,我就不太清楚了,需要后续研究。

posted on 2014-04-24 10:30  DanielHu  阅读(122)  评论(0编辑  收藏  举报