SQL92
Contents
SQL92
http://baike.baidu.com/view/1889818.htm
SQL92是数据库的一个ANSI/ISO标准
这个标准的前身是SQL92 ANSI/ISO标准,而SQL92之前还有一个SQL89 ANSI/ISO标准。
它定义了一种语言 (SQL) 以及数据库的行为 (事务、隔离级别等) 。你知道许多商业数据库至少在某种程度上是符合SQL92的吗?不过,这对于查询和应用的可移植性没有多大的意义,这一点你也清楚吗?
SQL92标准有4个层次
入门级 (Entry level) 。
这是大多数开发商符合的级别。这一级只是对前一个标准SQL89稍做修改。所有数据库开发商都不会有更高的级别,实际上,美国国家标准和技术协会NIST (National Institute of Standards and Technology,这是一家专门检验SQL合规性的机构) 除了验证入门级外,甚至不做其他的验证。Oracle 7.0于1993年通过了NIST的SQL92入门级合规性验证,那时我也是小组中的一个成员。如果一个数据库符合入门级,它的特性集则是Oracle 7.0的一个功能子集。
过渡级
这一级在特性集方面大致介于入门级和中间级之间。
中间级
这一级增加了许多特性,包括 (以下所列并不完整) :
动态SQL
级联DELETE以保证引用完整性
DATE和TIME数据类型
域
变长字符串
CASE表达式
数据类型之间的CAST函数
完备级
增加了以下特性 (同样,这个列表也不完整) :
连接管理
BIT串数据类型
可延迟的完整性约束
FROM子句中的导出表
CHECK子句中的子查询
临时表
入门级标准不包括诸如外联结 (outer join) 、新的内联结 (inner join) 语法等特性。过渡级则指定了外联结语法和内联结语法。中间级增加了更多的特性,当然,完备级就是SQL92全部。有关SQL92的大多数书都没有区别这些级别,这就会带来混淆。这些书只是说明了一个完整实现SQL92的理论数据库会是什么样子。所以无论你拿起哪一本书,都无法将书中所学直接应用到任何SQL92数据库上。关键是,SQL92最多只达到入门级,如果你使用了中间级或更高级里的特性,就存在无法"移植"应用的风险。
Author -
LastMod 2012-07-01