04第4 章sql 概述.pdf
文本预览下载声明
下载
第4章 SQL 概 述
4.1 引言
正如在第 1章中所说的, S Q L是处理关系数据库的标准语言,并且市场上的任何数据
库产品都支持 S Q L。S Q L是2 0世纪 7 0年代早期在 I B M公司的研究所开发的(参见 [ 4 . 8 ~ 4 . 9 ]
和[ 4 . 2 8 ]),其大部分标准首先在 I B M的System R中实现(参见 [ 4 . 1 ~ 4 . 3 ]和[ 4 . 11 ~ 4 . 1 3 ]),随
后又在 I B M公司的一些其他商品和其他公司的一些商品中实现(参见 [ 4 . 2 0 ])。在本章中,
将主要介绍 S Q L语言;另外的部分,如完整性、安全性等将在后续章节中介绍。现在所有
的讨论是建立在 S Q L / 9 2(也叫 S Q L - 9 2,或者是 S Q L 2,参见 [ 4 . 2 2 ~ 2 . 2 3 ])的标准之上的,
其正式的名称是国际标准数据库语言 (International Standard Database Language) S Q L ( 1 9 9 2 )。
注意:值得说明的一点是, S Q L 3标准的制定已经接近尾声,它是现在的 S Q L标准的
升级,预计在 1 9 9 9年末会得到通过。因此,在本书付印之际, S Q L的标准有可能已经是
“S Q L / 9 9”,而不是“ S Q L / 9 2”了。但是,作者认为不应该将 S Q L 3作为讲解的基础,因为
现在一个非常明显的事实是没有产品支持 S Q L 3。所以本书将 S Q L 3单独放在附录中(见附
录B)中讲解。目前还没有一个数据库产品完全支持 S Q L / 9 2 ;相反,数据库产品支持的
是S Q L / 9 2的“子集的超集”,即:大部分的产品没有完全支持 S Q L / 9 2,但却在 S Q L的一些
其他方面进行了扩展。例如: I B M公司的 D B 2并不完全支持 S Q L / 9 2的标准,但在视图的更
新规则上却支持得比 S Q L / 9 2还要多。
一些附加的基本注意事项:
? S Q L原先是作为特殊的“数据子语言”出现的。然而,随着持久存储模块( P S M)
在1 9 9 6年成为了标准, S Q L已经变成了计算上完全( computationally complete)的语
言。除了几个关系变量和特殊的处理之外,它现在包括很多语句,如: C A L L、
R E T U R N、S E T、C A S E、I F、L O O P、LE AV E 、W H I L E、R E P E AT等。因此,在开发
应用中就没有必要再将 S Q L与一些有区别的“宿主”语言捆绑在一起了。然而,在
此不对 P S M进行详细的讨论。
? S Q L使用表来表示关系和关系变量(见第 3章)。因此为了 S Q L标准和 S Q L产品的一
致性,在本章中也做同样的处理,对本书其他涉及到 S Q L的部分,都做此处理。而
且, S Q L不在表中或关系中使用“头”和“体”的概念。
? S Q L是一个庞大的语言。它的标准文档 [ 4 . 2 2 ]就有 6 0 0多页,而 S Q
显示全部