
SQL92
SQL92,是资料库的一个ANSI/ISO标準。它定义了一种语言(SQL)以及资料库的行为(事务、隔离级别等)。
基本介绍
- 中文名:SQL92
- 属性:资料库的一个ANSI/ISO标準
- 作用:定义了一种语言以及资料库的行为
- 套用学科:资料库
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最多只达到入门级,如果你使用了中间级或更高级里的特性,就存在无法“移植”套用的风险。