收藏 分享(赏)

SQL-92标准 中文翻译.doc

上传人:Facebook 文档编号:4248747 上传时间:2018-12-18 格式:DOC 页数:17 大小:76.50KB
下载 相关 举报
SQL-92标准 中文翻译.doc_第1页
第1页 / 共17页
SQL-92标准 中文翻译.doc_第2页
第2页 / 共17页
SQL-92标准 中文翻译.doc_第3页
第3页 / 共17页
SQL-92标准 中文翻译.doc_第4页
第4页 / 共17页
SQL-92标准 中文翻译.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、SQL-92 标准 中文翻译前言ISO(国际标准化组织)是一个由国家标准机构(ISO 成员机构)构成的世界性的联邦。通常由 ISO 技术委员会开展筹备国际标准的工作。如果成员机构关注的某个主题成立了技术委员会,那么成员机构有权派代表参加该委员会。与 ISO 有联络的国际组织,政府和非政府组织,也参与工作。在所有电工标准化的问题上,ISO 与国际电工委员会( IEC )密切合作。被技术委员会采纳的国际标准草案将会分发给各成员机构寻求认可,之后才能由 ISO 理事会接受为国际标准。按照 ISO 规程,需要参加表决的成员机构中至少 75 赞成,该草案才能通过。国际标准 ISO / IEC 9075:

2、1992 出自联合技术委员会 ISO / IEC JTC1 ,信息处理系统。它取消并取代国际标准 ISO / IEC 9075:1989 ,Database Language-SQL,构成技术性修订。该国际标准包含了七个告知性的附录:- 附录 A (资料): SQL 语言的分级;- 附录 B (资料): 实现定义的要素;- 附录 C (资料): 实现依赖的要素;- 附录 D (资料): 不推荐使用的功能;- 附录 E (资料): 与 ISO / IEC 9075:1989 的不兼容;- 附录 F (资料): SQL 的维护和解释。简介该国际标准于 1992 年被批准。该国际标准是从 ISO/I

3、EC 9075:1989(信息系统,数据库语言 SQL 完整性增强)发展而来,并取代了那个国际标准。该国际标准在详细说明中增加了大量重要的新特性和功能。一般情况下该标准与 ISO/IEC 9075:1989 标准兼容,也就是说,除了极少数例外,符合 ISO / IEC 9075:1989 标准的 SQL 语言也符合该国际标准,并且在两者实现上保持一致。在 ISO / IEC 9075:1989 和该国际标准之间,已知的不相容参考告知性附件 E “与 ISO / IEC 9075:1989 的不兼容 ”。在 ISO/IEC 9075:1989 和该国际标准之间,技术方面的改变包括现有功能的改进或

4、增强和新功能的定义。现有功能的重要改进有:-直接调用 SQL 语言的更好的定义;-改进的诊断能力,特别是新的状态参数( SQLSTATE ) ,诊断领域,并支持报表。重要的新特性有:1) 支持更多的数据类型(DATE, TIME, TIMESTAMP, INTERVAL, BIT string, variable-length character and bit strings, and NATIONAL CHARACTER strings),2) 除了表示 SQL 语言本身以外,还支持字符集和更多的排序规则,3) 支持更多的标量操作,如连接字符串和取子字符串的字符串操作,日期和时间操作,条件

5、表达式的形成,4) 在标量值查询表达式和表值查询表达式的使用上,增强了通用性和正交性,5) 更多的 set 操作符(例如,union join, natural join, set difference, and set intersection),6) 能够在方案中定义域,7) 支持对方案的操作(特别是 DROP 和 ALTER 语句),8) 支持在 Ada、C、MUMPS 语言中嵌入 SQL 语句(模块和嵌入式语法),9) 更多的权限能力,10) 更多的引用完整性的能力,包括引用的动作,检查约束中的子查询,单独的断言,以及用户控制约束的推迟,11) 信息方案的定义,12) 支持 SQL 语

6、言的动态执行,13) 支持某些设施所需的远程数据库访问(尤其是连接的管理语句和合格的方案名称),14) 支持临时表,15) 支持各级事务的一致性,16) 支持数据类型转换(各种数据类型使用 CAST 表达式),17) 支持滚动游标,18) 具有标记的能力,以辅助应用程序的可移植性。该国际标准的内容组织如下:1) 第 1 条“范围” ,指定该国际标准的范围。2) 第 2 条“规范参考” ,通过该国际标准的引用,标识额外的标准。这些标准构成该国际标准的规定。3) 第 3 条“定义,记号,和约定” ,定义了该国际标准中使用的记号和约定。4) 第 4 条“概念” ,给出在 SQL 定义中用到的概念。5

7、) 第 5 条“词法要素” ,定义语言的词法要素。6) 第 6 条“标量表达式”,定义产生标量值的语言要素。7) 第 7 条“查询表达式”,定义产生数据行和数据表的语言要素。8) 第 8 条“谓词” ,定义语言的谓词。9) 第 9 条“数据分配规则” ,指定检索数据或存储数据到数据库的分配规则,和set 操作形成规则。10) 第 10 条“附加的公用要素” ,定义用于语言各部分的附加的语言要素。11) 第 11 条“方案的定义和操纵” ,定义创建和管理方案的能力。12) 第 12 条“模块” ,定义模块和过程。13) 第 13 条“数据操纵” ,定义数据操纵语句。14) 第 14 条“事务管理

8、” ,定义 SQL 事务管理语句。15) 第 15 条“连接管理”,定义 SQL 连接管理语句。16) 第 16 条“会话管理” ,定义 SQL 会话管理语句。17) 第 17 条“动态 SQL ” ,定义动态执行 SQL 语句的能力。18) 第 18 条“诊断管理” ,定义诊断管理能力。19) 第 19 条“嵌入式 SQL ” ,定义在某些标准编程语言中嵌入 SQL 的语法。20) 第 20 条“直接调用的 SQL ” ,定义了 SQL 语言的直接调用。21) 第 21 条“信息方案和定义方案” ,定义包含方案信息的可视化表。22) 第 22 条“状态码” ,定义标识 SQL 语句执行状态的

9、值和这些值返回的机制。23) 第 23 条“一致性” ,定义了符合该国际标准的准则。24) 附录 A “SQL 语言的分级” ,是一个告知性的附录。它列出了分级的规则,定义了入门级 SQL 和中级水平 SQL。25) 附录 B , “实现定义的要素” ,是一个告知性的附录。它列出了在该国际标准正文中规定的数据库上的语法、含义或效果是部分或全部实现定义的特性,并描述了在各种情况下执行者应提供的确定信息。26) 附录 C,“实现依赖的要素”,是一个告知性的附录。它列出了在该国际标准正文中明确规定的数据库上的含义和效果是实现依赖的特性。27) 附录 D,“不推荐使用的功能”,是一个告知性的附录。它列

10、出了技术委员会打算将来在该国际标准的修订版中,不会出现的功能。28) 附录 E,“与 ISO / IEC 9075:1989 的不兼容”,是一个告知性的附录。它列出了该国际标准当前版本和 ISO / IEC 9075:1989 标准之间的不兼容 。29) 附录 F,“SQL 的维护和解释”,是一个告知性的附录。它列出自 ISO / IEC 9075:1989 采纳以来,被 ISO / IEC JTC1/SC21 处理过的 SQL 解释和修正。在该国际标准的文本中,条款开始于一个新的奇数页,并在第 5 条“词法要素”到第 22 条“状态码”,子条款开始于新的一页。任何由此产生的空白空间不是很大。

11、范围该国际标准定义了 SQL 数据的数据结构和基本操作。它提供了 SQL 数据的创建,获取,维护,控制,保护的功能。注:该国际标准的构架使用数据管理的关系模型描述(ISO/IEC DIS 10032:1991)。该国际标准规定了对以下几点的数据库语言的语法和语义:-SQL 数据的结构和完整性约束的指定和修改,-SQL 的数据和游标的声明和调用操作,-数据库语言过程的声明,并将其嵌入到标准的编程语言中。它还指定描述 SQL 数据的结构和完整性约束的信息方案。该国际标准-为在多个 SQL 实现之间的数据定义和编译单元的可移植性提供载体,-为多个 SQL 实现的互连提供载体,-为在编译单元中的嵌入式

12、 SQL 语句,规定了相关语法,否则就需要符合特殊的编程语言标准。它定义符合特定编程语言标准的等效的编译单元。在这等效的编译单元中,每个嵌入式 SQL 语句被一些语句替换,这些语句调用包含了 SQL 语句的数据库语言过程,-规定了直接引用 SQL 语句的语法。该国际标准在以下几条中,没有定义方法或绑定的时间-数据库管理系统组件,-SQL 数据定义的声明,-SQL 过程,-编译单元,包含了嵌入式 SQL。实现该国际标准可能的环境,还应支持应用程序的编程语言,终端用户的查询语言,报告生成系统,数据字典系统,项目库系统,和分布式通信系统,以及数据库设计,数据管理,和性能优化等各种工具。规范性引用下列

13、标准包含的规定构成该国际标准的规定。该版本自发布之时有效。所有的标准都受制于修订,鼓励基于该国际标准各方达成协议,调查应用如下所列最新版国际标准的可能性。IEC 和 ISO 的成员维护当前有效国际标准的登记。- ISO/IEC 646:1991, Information technology-ISO 7-bit coded character set for information interchange.- ISO/IEC 1539:1991, Information technology-Programming languages-Fortran.- ISO 1989:1985, Prog

14、ramming languages-COBOL. (Endorsement of ANSI X3.23-1985).- ISO 2022:1986, Information technology-ISO 7-bit and 8-bit coded character sets-code extension techniques.- ISO 6160:1979, Programming languages-PL/I (Endorsement of ANSI X3.53-1976).- ISO 7185:1990, Information technology-Programming langua

15、ges-Pascal.- ISO 8601:1988, Data elements and interchange formats - Information interchange-Representation of dates and times.- ISO 8652:1987, Programming languages-Ada. (Endorsement of ANSI/MIL-STD-1815A-1983).- ISO/IEC 8824:1990, Information technology-Open Systems Interconnection-Specification of

16、 Abstract Syntax Notation One (ASN.1).- ISO/IEC 9579-2:1, Information technology - Open Systems Interconnection - Remote Database Access, Part 2: SQL special-ization.- ISO/IEC 9899:1990, Programming languages - C.- ISO/IEC 10206:1991, Information technology-Programming languages-Extended Pascal.- IS

17、O/IEC 10646:1, Information technology-Multiple-octet coded character set._1 即将发布- ISO/IEC 11756:1, Information technology-Programming languages-MUMPS.定义、记号和约定3.1 定义为了该国际标准的目的,应用以下定义。3.1.1 摘自 ISO/IEC 10646 标准的定义该国际标准使用的以下条款,摘自 ISO/IEC 10646 标准:a) character 字符b) octet 字节c) variable-length coding 可变长度编

18、码d) fixed-length coding 固定长度编码3.1.2 摘自 ISO 8601 标准的定义该国际标准使用的以下条款,摘自 ISO 8601 标准:a) Coordinated Universal Time (UTC)b) date (“date, calendar“ in ISO 8601)3.1.3 该国际标准提供的定义该国际标准定义以下条款:a) 可赋值: 值或数据类型的特征。这些值或数据类型可以赋值给特定数据类型的数据实例。b) (集合的)基数: 集合中对象数目. 对象可以相同.c) 字符表: 用于明确的目的和应用的字符的集合。每个字符表都有一个隐含默认的整理序列。d)

19、可压缩性: 字符串数据项的属性,用于管理如何确定该项的整理序列。e) 排序规则; 整理序列:对两个可比较的字符串的排序方法. 每个字符集都有一个默认的整理序列.f) 可比较: 两个数据对象的特征,允许一个对象的值和另一个对象的值进行比较。同样对于数据类型:只有当两个数据类型的对象可以比较,才能说这两个数据类型可以比较。g) 说明符: SQL 对象的编码描述。 它包含了该对象符合 SQL 实现要求的所有信息。h) 互异: 如果两个值,都为空值,或者根据第 8.2 条 “ 谓词比较 ”,它们相等,就认为这两个值相同。否则,它们是互异的。在两行(或部分行)中,只要对应的值有一个是不同的,则认为两行(

20、或部分行)是互异的。i) 重复: 当且仅当两个或两个以上的值或行是相同的,才能认为它们是重复的。j) 二元运算符: 具有两个操作数(左操作数和右操作数)的操作符。 在该国际标准中一个二元操作符的例子是“-“减号操作符,该操作符说明左边操作数减去右边操作数。k) 使用形式: 在字符串中表现字符的约定或编码。有些使用形式是定长的编码,有些是可变长度的编码。l) 使用形式转换: 将字符串从一种使用形式转换为另一种使用形式的方法。m) 实现定义: 不同的 SQL 实现之间可能不同,由实现者详细说明每个特别的 SQL 实现。n) 实现依赖: 不同的 SQL 实现之间可能不同,不由该国际标准说明,也不要求

21、实现者说明每个特别的 SQL 实现。o) 一元操作符: 只有一个操作数的操作符. 在该国际标准中一元算术操作符的一个例子是“-“负号操作符,该操作符说明操作数为负数。p) 多重集: 对象的无序集合,对象可以相同,集合可以为空。q) n 元操作符: 具有多个操作数的操作符。在该国际标准中的 n 元操作符的例子是 COALESCE。r) 空值 (null): 一个特殊的值或者标志,用来表明不含任何数据值。s) 持久: 除非有意去销毁,否则会一直存在。引用和级联动作是有意的。SQL事务(见子条款 4.28,“SQL 事务”)或 SQL 会话(见子条款 4.30,“SQL 会话”)结束时附带的动作不是

22、有意的。t) 多余的重复: 除了一个以外,其他的重复值或行的多重集。u) 清单: 见字符表。v) 序列: 对象的有序集合。对象可以相同。w) 集: 不同对象的无序集合。该集合可为空。.x) SQL-实现: 符合该国际标准的数据库管理系统。y) 转换: 将一个字符表中字符转换成相同或不同字符表中字符的方法。3.2 记号该国际标准中使用的语法符号是 BNF 的一种扩展版本 (“Backus Naur Form“ or “Backus Normal Form“)。在 BNF 中,语言的每个语法元素通过一个产生规则定义。产生规则根据由字符,字符串和语法元素组成的规则定义元素。在该国际标准中使用的 BN

23、F 的版本,使用以下符号:符号含义尖括号,用于分隔字符串,字符串为语法元素的名称,SQL 语言的非终结符。:= 定义操作符。用在生成规则中,分隔规则定义的元素和规则定义。 被定义的元素位于操作符的左边,规则定义位于操作符的右边。 方括号表示规则中的可选元素。方括号中的规则部分可以明确指定也可以省略。 花括号聚集规则中的元素。在花括号中的规则部分必须明确指定。| 替换操作符。 该竖线表明竖线之后的规则部分对于竖线之前的部分是可替换的。 如果竖线出现的位置不在花括号或方括号内,那么它指定对于该规则定义的元素的一个完整替换项。如果竖线出现的位置在花括号或方括号内,那么它指定花括号对或方括号对最里面内

24、容的替换项。. . . 省略号表明在规则中省略号应用的元素可能被重复多次。如果省略号紧跟在闭花括号“之后,那么它应用于闭花括号和开花括号“之间的规则部分。如果省略号出现在其他任何元素的后面,那么它只应用于该元素。! 介绍普通英文文本。BNF 中没有表示某语法元素的定义时使用。空格用来分隔语法元素。多个空格和多个换行符被视为单个空格。除了上面所给的特殊用途的符号, 在规则中的其它字符和字符串表示其本义。此外,如果定义操作符右边的符号全部由 BNF 中的符号组成,那么这些符号仅代表其本义,不需要考虑其特殊含义。花括号对和方括号对内部可以任意嵌套,替换操作符可以出现在嵌套的任何地方。形成任何语法元素

25、实例的字符串可能产生自该元素的 BNF 定义,产生过程应用以下步骤:1) 对于该元素,选择在产生规则右边定义的任意一个选项, 并用该选项替换该元素。2) 替换每个省略号和省略号所应用的一个或多个对象的实例。3) 对于方括号中的字符串部分, 要么删除括号和括号中的内容,要么将括号转换为花括号。4) 对于花括号中的字符串部分,对其子字符串应用步骤 1 至步骤 5,然后移除花括号。5) 对于仍然在字符串中的非终结语法元素(如在尖括号中的名称),应用步骤 1 至步骤 5 。当字符串中不再存在非终结符时,扩展过程(或产生过程)完成。约定3.3.1 告知性元素告知性的注解在该国际标准正文中出现好几次。 例

26、如:注: 这是一个注解的例子。这些注解不属于该国际标准的规范部分,并且不应声明符合注解中说明的资料。3.3.2 语法元素说明根据以下指定语法元素:- 功能: 对于元素意图的简短说明。- 格式: 元素语法的 BNF 定义。- 语法规则: 元素语法属性的详细说明,或在 BNF 中没有表示的,但该元素必须满足的附加语法约束的详细说明,或者两者兼而有之。- 访问规则: 管理方案对象访问的规则的详细说明,应用在通用规则成功运用之后。- 通用规则: 元素运行时效果的详细说明。多个通用规则用来指定元素效果, 所需的效果通过开始第一个通用规则,并在数字序列中应用中获得,除非规则说明或暗示序列中的改变或规则应用

27、结束。 除非应用了特殊规则,否则通用规则在序列的最后一条应用之后终结。- 分级规则: 元素如何支持各种级别的 SQL 的详细说明。注释性符号的范围是定义这些符号的子条款。子条款中,在语法规则,访问规则或者通用规则中定义的符号可以在其他规则中引用,引用前需先定义。3.3.3 信息方案的详细说明根据以下指定该国际标准的信息方案对象:- 功能: 对于该定义意图的简短说明。- 定义: SQL 中该对象的定义。- 描述: 对该对象运行值的详细说明,主要针对定义中不清楚的地方。在信息方案中定义视图的定义只用来说明这些可视化表的内容。 这些视图所基于的实际对象依赖于实现。3.3.4 术语的使用3.3.4.1

28、 异常短语“引发异常状况:”, 用于通用规则和其他显示语句执行不成功的地方,通用规则应用, 除了子条款 12.3, “, 和子条款 20.1, “,可能中止, 可获得诊断信息,语句的执行对 SQL 数据或方案没有影响。被异常情况终止的 SQL 语句的 SQL描述符区域的影响, 除非通过该国际标准显式定义,否则依赖于实现。短语“引发完成状况:”,用于通用规则和其他显示通用规则的应用没有中止,可获得诊断信息;除非同时引发了异常状况,否则语句执行成功。语句执行时,可能出现多个情况。多个情况的诊断信息是否可用依赖于实现。3.3.4.2 语法包含在格式中,如果语法元素对于语法元素出现在 BNF 产生规则

29、的右边,那么就说恰好包含。如果恰好包含或者恰好包含,而又包含,那么包含。在 SQL 语言中,如果恰好包含,那么就说的一个实例 A1 恰好包含的一个实例B1 ,并且 B1 的文本是 A1 文本的一部分。如果的一个实例 A1 包含 C1 或者 A1 恰好包含的实例 B1,而 B1 又包含 C1,那么就说 A1 包含 C1。如果 A1 包含 B1 并且 A1 包含的一个实例 C1,C1 又包含 B1,那么就说 A1 通过中介包含 B1。如果 A1 包含 B1 并且 A1 不包含 C1,而 C1 又包含 B1,那么就说 A1 不通过中介包含 B1。如果 A1 包含 B1 不通过中介 A2 或者 B2,

30、那么就说 A1 只包含 B1。如果包含,那么包含于,对于来说是一个包含的产生符号。如果简单包含,那么简单包含于,对于来说是一个简单包含的产生符号。假设 A1 是的一个实例,B1 是的一个实例。如果包含,那么就说 A1 包含 B1或者 B1 包含于 A1。如果仅包含,,那么就说 A1 简单包含 B1 或者 B1 简单包含于A1。如果 A1 满足 C,A2 满足 C,但 A1 不包含 A2,那么就说 A1 在最内部满足条件 C。如果 A1 满足 C,A2 满足 C,但 A1 不包含于 A2,那么就说 A1 在最外部满足条件 C。如果包含一个,标志通过 V 定义的视图,那么一般包含 V 中的。如果包

31、含,那么一般包含。如果一般包含 ,一般包含,那么一般包含。如果 A1 不通过中介或包含 B1,那么就说 A1 直接包含 B1。3.3.4.3 条款表示规则要求在语法规则中,条款应定义符合 SQL 语言语法的条件。只有当通用规则中指定的行动执行后,这些依赖于方案内容的条件才为真。不符合的 SQL 格式和语法规则的语言依赖于实现。当尝试评估访问或通用规则并且实现既不是处理不符合的 SQL 语言也不是以不符合的方式处理符合的 SQL 语言时,如果语法规则规定的任一条件没有满足,那么将引发异常状况:语法错误或违反访问规则(如果这种情况发生在动态 SQL 语句执行中,那么引发的异常是动态 SQL 语句的

32、语法错误或访问规则的违反;如果这种情况发生在直接引用 SQL 语句中,那么引发的异常是直接 SQL 语句的语法错误或访问规则的违反)。在访问规则中,条款应定义满足通用规则成功应用的条件。当通用规则应用时,如果任一这种条件没有满足,那么将引发异常状况:语法错误或违反访问规则。在分级规则中,条款应定义符合指定级别的 SQL 语言的条件。3.3.4.4 规则评估次序一个相符的实现并不需要执行在一般规则中定义的精确的行动次序,但是在 SQL 数据和方案上应达到相同的效果。该条款是用来有效地强调行动的效果可以通过实现的不同方式达到。包含和被包含的语法元素的语法规则和访问规则语法元素同时有效应用。包含和被

33、包含的语法元素的一般规则应用,被包含的应用在前,包含的应用在后。当运算符的优先级取决于该国际标准的格式或者圆括号,这些符号通过该优先顺序有效地应用。当运算符不取决于该国际标准的格式或者圆括号,表达式有效的评估一般从左至右。然而,表达式是否从左至右评估是依赖于具体实现的,特别是操作数或操作符可能引发情况,或者如果表达式的结果,在没有完全评估表达式各个部分的前提下,能够确定。总之,如果一个语法元素包含多个其他的语法元素,那么出现在产生规则前面的语法元素和出现在后面的语法元素一般规则的应用,出现在前面的语法元素早于出现在后面的语法元素。例如,在产生规则中::= 对于,和语法规则和访问规则同时有效应用

34、。对于,和的一般规则应用,在之后,在最后 。如果表达式或者搜索条件的结果,在没有完全评估表达式或者搜索条件各个部分的前提下,能够确定,那么表达式或者搜索条件非必要的评估部分称为无关紧要的部分。如果属于无关紧要部分的访问规则没有满足,那么将引发语法错误或违反访问规则的异常状况 ,不管无关紧要部分是否已经评估。如果评估无关紧要部分引发异常,那么该异常是否引发依赖具体实现。3.3.4.5 条件规则条件规则通过“If”或“Case”惯例指定。通过“Case”惯例指定的规则包含一个使用“If”惯例的条件子规则列表。第一个条件成立的“If”子规则是“Case”规则下的有效子规则。“Case”规则下的最后一

35、个子规则应该声明为“Otherwise”。如果之前的“If”子规则条件都不成立,那么该子规则有效。3.3.4.6 语法替代在语法规则和一般规则中,短语 “X is implicit“表明该语法规则和一般规则将要解释成元素 X 已经实际指定。在语法规则和一般规则中,短语 “the following is implicit: Y“ 表明该语法规则和一般规则将要解释成已经实际上指定语法元素包含 Y 。在语法规则和一般规则中,短语 “former is equivalent to latter“ 表明该语法规则和一般规则将要解释成元素中之前的实例与之后的实例等效。如果在子条款中引用的 BNF 非终结

36、符,没有说明它如何包含在子条款定义的 BNF 产生过程中,那么Case:- 如果 BNF 非终结符是定义在子条款的自身,那么该引用应假定为此 BNF 非终结符,出现在定义产生规则左边。- 否则,该引用应假定为一个恰好包含特殊的 BNF 非终结符的 BNF 产生规则。.3.3.4.7 其他条款一些语法规则定义条款,如 T1,表示命名或没有命名的表。这些条款用作表名或相互关系名称。条款用作相互关系名称,这并不意味着为了命名表而定义任何新的相互关系名称,也不影响任何实际的相互关系名称。一个 SQL 语句 S1 的执行是执行 SQL 语句的直接结果,如果 S1 是包含在一个已经执行的中的 SQL 语句

37、,或者 S1 是的值,被包含在一个已经执行的中的所引用,或者 S1 是的值,其中通过一个与一个关联 ,并且被包含在一个已执行的所引用。3.3.5 描述符描述符是定义指定类型对象实例属性的数据的概念结构的集合。描述符的概念用于指定SQL 语义。任何数据库或环境中都不需要描述符以任何特殊的形式存在。一些 SQL 对象只有在某些 SQL 对象的背景中才能存在。例如,列只能存在于表中 。 这些对象通过描述符独立描述,启用对象描述符(如:表)包含被启用对象的描述符(如:列或表约束)。在其他情况下,某些 SQL 对象只有在另外一些 SQL 对象存在的前提下才能存在, 即使不存在包含关系。例如,如果断言引用

38、的表不存在,那么 SQL 不允许断言存在。 因此, 断言描述符依赖于零个或多个表描述符(等效于, 断言依赖于零个或多个表). 一般来说,描述符D1 依赖或被依赖于另一个描述符 D2。有两种方式显示依赖。在许多情况下, 依赖构建描述符包含依赖构建的名称 。在这种情况下“the name of“ 应理解为 “sufficient information to identify the descriptor of“;因此,实现者可以选择指针或, 的串联等等。此外,描述符可以包含文本(如 , )。在这种情况下, 是否在实现中包含文本或它自身风格的解析树是不相关的;描述符的有效性明确依赖对象提到的描述符

39、的存在。“列基于域”和“列依赖于域”等效。如果一个描述符被其他描述符所依赖,或一个描述符被另一个描述符包含,那么企图销毁该描述符很可能会失败。销毁一个描述符会导致所有该描述符所包含的描述符被销毁,但是不影响依赖它的描述符。3.3.6 索引排印在该国际标准的索引中,使用以下约定:- 以黑体出现的索引条目显示定义单词、词组或者 BNF 非终结符的页;- 以斜体出现的索引条目显示在格式中使用 BNF 非终结符的页;- 以罗马字体出现的索引条目显示在标题,函数,语法规则,访问规则,通用规则,分级规则,表,或其他描述性文本中使用的单词,词组或 BNF 非终结符。数据库语言 SQL 的对象标志符功能数据库

40、语言 SQL 的对象标志符标志在开放的系统环境中对于其他实体 SQL 实现的特征。格式:=:= := iso | 1 | iso 1 := standard | 0 | standard 0 := 9075:= := | | := 0 | edition1987 0 := := 1 | edition1989 1 := | := 0 | IntegrityNo 0 := 1 | IntegrityYes 1 := 2 | edition1992 2 := | | := 0 | Low 0 := 1 | Intermediate 1 := 2 | High 2 语法规则1) 除非为,否则不会为。

41、2) 的值标识符合的级别:a) 如果 指定为 , 那么Case:i) , 入门级 SQL。ii) , 中级 SQL。iii) , 完整级 SQL。b) 否则:i) , 级别 1.ii) , 级别 2.3) 为,意味着完整性增强功能没有实现。为,意味着完整性增强功能已经实现。概念(数据类型)数据类型是可表示的值的集合。值的逻辑表示是,物理表示依赖于实现。在该国际标准中,如果一个值没有任何逻辑细分,那么该值是基元。一个值要么是空值要么是非空值。空值是依赖实现的一个特殊值,有别于所有相关数据类型的非空值。实际上只有一个空值,该空值是每个 SQL 数据类型的成员。空值没有,虽然关键词 NULL 被用在

42、一些地方,来表明该处需要空值。SQL 通过以下定义各种数据类型:CHARACTER, CHARACTER VARYING, BIT, BIT VARYING, NUMERIC, DECIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION, DATE, TIME, TIMESTAMP, and INTERVAL.子条款 6.1, “, 描述了各种数据类型的语法属性。为了便于参考,数据类型 CHARACTER 和 CHARACTER VARYING 统称为字符型字符串类型。BIT 和 BIT VARYING 统称为位字符串类型。字符型字符串和

43、位字符串统称为字符串类型。其值为字符串。数据类型 NUMERIC, DECIMAL, INTEGER 和 SMALLINT 统称为精确数值类型。数据类型 FLOAT, REAL 和 DOUBLE PRECISION 统称为近似数值类型。精确数值类型和近似数值类型统称为数值类型,其值是数字。数据类型 DATE, TIME 和 TIMESTAMP 统称为日期时间类型,其值是日期、时间。数据类型 INTERVAL 是间隔类型,其值是间隔。每个数据类型都有一个相关的数据类型描述符。数据类型描述符的内容由具体的数据类型决定。数据类型描述符包括数据类型的识别,所有宿主语言都有它自身的数据类型,独立于 SQ

44、L 数据类型,尽管可能使用相同的名字来描述数据类型。在子条款 12.3, “,和子条款 19.1, “描述了将 SQL 数据类型映射为宿主语言数据类型。不是每个 SQL 数据类型在宿主语言中都有其对应的数据类型。(位字符串)4.3 位字符串位字符串是二进制位序列,每个位具有 0 或 1 值。位字符串具有长度,长度为字符串中位的个数。长度为 0 或正整数。位字符串数据类型通过其描述符描述。位字符串数据类型描述符包括:- 明确的位字符串数据类型名称(BIT 或 BIT VARYING);- 位字符串数据类型的长度。4.3.1 位字符串比较和赋值所有为字符串都可相互比较。两个位字符串相等,当且仅当根据子条款 8.2, “指定的比较它们是相等的。将位字串赋值给位字串变量,源字串中从最重要的位到最不重要的位,到目标字符串最重要的位,一次赋一位。4.3.2 位字符串操作符4.3.2.1 位字串操作符和其返回值字符串是一个操作符|,返回连接两个给定次序的位字符串操作对象形成的位字符串。是一个三元函数,语法和语义,除了第一个参数和返回值均为位字符串外,其他与同。4.3.2.2 其他位字符串操作符返回给定位字符串长度。确定字符串 S1 第一次出现在字符串 S2 的位置。如果 S1 的长度为 0,则对于任何 S2,返回 1。如果 S2 中不存在 S1,则返回 0。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 规范标准 > 国内外标准规范

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报