WEB开发网
开发学院数据库DB2 DB2数据库SQL编码优化基础 阅读

DB2数据库SQL编码优化基础

 2008-08-27 16:26:20 来源:WEB开发网   
核心提示: 历史证明,保证 SQL 成功的最重要的一个特性就是它使用类似英语的语法轻松地检索数据的能力,DB2数据库SQL编码优化基础(2),理解这种语言比理解数据页面的结构和程序源代码要容易得多:SELECT LASTNAMEFROM EMPWHERE EMPNO = '000010'

历史证明,保证 SQL 成功的最重要的一个特性就是它使用类似英语的语法轻松地检索数据的能力。理解这种语言比理解数据页面的结构和程序源代码要容易得多:

  SELECT LASTNAME
FROM EMP
WHERE EMPNO = '000010';

想想看:当访问文件中的数据时,程序员必须编码指令来打开文件、开始一个循环、读取记录、检查 EMPNO 字段是否等于适当的值、检查文件结尾、回到循环的开头等。

SQL 本来就是非常灵活的。它使用自由格式的结构,该结构可以让用户开发 SQL 语句来适合他们的需要。DBMS 在执行之前会分析每个 SQL 请求,以检查语法是否正确和优化该请求。SQL 语句不需要从任何给定的列中开始,您可以将它们串在一行中,或者把它们拆成几行。例如,以下这条单行的 SQL 语句与我前面使用的三行示例等价:

SELECT LASTNAME FROM EMP WHERE EMPNO = '000010';

SQL 的另一个灵活特性是您可以用许多形式不同但功能等价的方法来制定一个请求。例如:SQL 可以连接表或嵌套查询。您始终可以将嵌套查询转换成等价的连接。您可以在大量的函数和谓词中看到这一灵活性的其它示例。具有等价功能的特性的示例包括:

BETWEEN vs <= / >=

IN vs 一系列和 OR 配合的谓词

INNER JOIN vs FROM 子句中串在一起并用逗号分隔的表

OUTER JOIN vs 带有 UNION 的简单 SELECT 和相关的子查询

CASE 表达式 vs 复杂的 UNION ALL 语句

SQL 展示的这一灵活性并不总是称心的,因为形式不同但功能等价的 SQL 公式可以提供非常不同的性能。我将在本文的以后部分讨论该灵活性所造成的结果,并提供开发有效的 SQL 的准则。

如我所说的,SQL 指定了要检索或操作什么数据,但没有指定数据库如何完成这些任务。这就使 SQL 本身变得很简单。如果您能够记得关系数据库的一次处理一个集合(set-at-a-time)的特点,您就开始掌握 SQL 的本质和性质了。一条 SQL 语句可以作用于多行。作用于一组数据而不需要建立如何检索和操作数据的能力将 SQL 定义成非过程化语言

上一页  1 2 3 4 5 6 7  下一页

Tags:DB 数据库 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接