首页 > 国家标准(GB) > GB/T 12991-1991 信息处理系统 数据库语言SQL
GB/T 12991-1991

基本信息

标准号: GB/T 12991-1991

中文名称:信息处理系统 数据库语言SQL

标准类别:国家标准(GB)

标准状态:已作废

发布日期:1991-08-19

实施日期:1992-04-01

作废日期:2008-12-01

出版语种:简体中文

下载格式:.rar.pdf

下载大小:2686120

标准分类号

标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言

中标分类号:电子元器件与信息技术>>信息处理技术>>L79计算机开放与系统互连

关联标准

替代情况:被GB/T 12991.1-2008代替

采标情况:ISO/IEC 9075-1989

出版信息

出版社:中国标准出版社

页数:平装16开, 页数:57, 字数:109000

标准价格:23.0 元

出版日期:1992-04-01

相关单位信息

首发日期:1991-08-19

复审日期:2004-10-14

起草人:马应章、史宝月、徐昕、何新贵、张心耘

起草单位:机械电子工业部第十五研究所

归口单位:全国信息技术标准化技术委员会

提出单位:机械电子工业部

发布部门:国家技术监督局

主管部门:国家标准化管理委员会

标准简介

本标准规定了两种数1*3/4库语言的语法与语义:1)模式定义语言(SQL-DDL),它用来申明SQL数据库的结构与完整性约束。2)模块语言与数据操纵语言(SQL-DML),它用来申明具体的数据库应用程序的数据库过程与可执行的语句。本标准定义了SQL数据库的逻辑数据结构和基本操作,它提供数据库的设计、访问、维护、控制以及保护方面的能力。本标准在互相符合的实现之间为数据库定义与应用程序的移植提供一种途径。本标准指明两个级别和一个单独的完整性增强特征。2级是除了完整性增强特征之外的完备的SQL数据库语言,1级是在第9章“级”中所定义的2级的子集。本标准适用于这样一种环境中的各种实现,该环境可以包含应用程序设计语言、最终用户查询语言、报告生成器、数据字典系统、程序库系统、分布式通信系统以及各类用于数据库设计、数据管理与性能优化诸方面的工具。 GB/T 12991-1991 信息处理系统 数据库语言SQL GB/T12991-1991 标准下载解压密码:www.bzxz.net

标准图片预览






标准内容

中华人民共和国国家标准
信息处理系统数据库语言SQL
Informalion processing systems-Database Ianguage SQL wilth integrity enhancementGB 12991—91
IS0/IEC 9D075—1989
本标准等同采用国际标准ISO/IEC9075一1989(E)信息处理系统数据库语言具有完整性增强特征的 SQL》。
1主题内容与适用范围
本标准规定两种数1*3/4库语言的语法与语义:1)模式定义语言(SQL-DDIL.),它用来中明SQL数据库的结构与完整性约束。2)模块语言与数据操纵语言(SQL-DMI.),它用来申明具体的数据库应用程序的数据库过程与可执行的语句。
本标准定义了SQL数据库的逻辑数据结构和基本操作,它提供数据库的设计、访问、维护控制以及保护方面的能力。
本标准在互相符合的实现之间为数据库定义与应用程序的移植提供一种途径。本标准指明两个级别和一个单独的完整性增强特征。2级是除了完整性增强特征之外的完备的SQL数据库语言,1级是在第9章“级”中所定义的2级的了集。注:SQL语言新增加部分计划用作本标准的补篇。补篇中要考患的主要题目包括增强的事务管理,某些实现者定义规则的说明,增强的字符处理设施和民族字符集的支持。该完整性增强特征包括下述指明的三种方式:1)表之间必需满足的引用约束;2)应用于表中行的检验约束,
3)把一行插入表中时列的缺省值。本标推的附录指明包含在其它标准应用程序中的SQL数据操纵语言的嵌入语法。上述的嵌入语法定义为一个标准应用程序的简化表示法,在该程序里,用包含SQL语句的数据库过程的显式“调用”替换嵌人的 SQL语句。
本标准适用于这样一种环境中的各种实现,该环境可以包含应用程序设计语言、最终用户查询语言、报告生成器、数据字典系统、程序库系统、分布式通信系统以及各类用于数据库设计、数据管理与性能优化诸方面的工具。
2引用标准
GB3057程序设计语言FORTRAN
GB4092程序设计语言
GB7591
GB9542
3概述
3.1结构
PASCAL
序设计语言
程序设计语言 PL/1
国家技术监督局1991-08-19批准1992-04-01实施wwW.bzxz.Net
本标准的结构如下:
GB 12991—91
1)3.2\表示法”与3.3\约定\定义本标准内使用的表示法与约定。2)3.4\相符性”定义相符性准测。3)第4章“概念定义SQL定义中使用的术语与提出所用到的概念。4)第5章*公用元素”定义SQL语言中某些部分所出现的语言元素。5)第6章“模式定义语言”定义用来指明数据库的SQL设施。6)第7章模块语言”定义SQL模块与过程。7)第8章“数据操纵谱言”定义SQL的数据操纵语句。8)第9章级”定义SQL的两个级别和完整性增强特征。3.2表示法
本标准内所使用的语法表示法是BNF(“巴科斯范式”或“巴科斯-诺尔范式”),具有如下的扩展;1)方括号(C])表示任选元素。2)省略号()表示可重复饮或多次的元素。3)花括号(1)表示元素的组台序列。在BNF语法中,如果产生式符号(B)出现在产生式符号(A的展开式的某个位置,则定义为,则3.3约定
本标准的语法元素按以下形式指明:1)功能:对元素用途的简短陈述。2)格式:对元素语法的BNF定义。3)语法规则:在BNF内没有表示出的而元素应当满足的附加语法限制。4)一般规则:该元素运行时效果的一个顾序说明。语法规则中:术语“应(当)\定义能在语法上完全符合SQL语言所要求的一些条件。对不符合格式或语法规则的SQL语言的处理由实现者定义。在一般规则中,术语“应(当)”定义些条件,在SQL语言执行期间对这些条件做运行测试。如果这些条件全部为真,则该语句执行成功并将参数SQLCODE置为一个已定义好的非负数。如果任何一个条件为假,则语句执行不成功,且该语句的执行不影响数据库,并将参数SQLCODE置为由实现者定义的负数。
相符的实现并不是要求按照一般规中所定义的动作的严释顺序执行,而是应当对数据库产生与那个顺序同样的效果。术语“有效地”用在一般规则中以强调基些动作,它们的效果可由实现以其它方式得到。
术语\持久对象”用来表征如(模块>和(模式)这一类对象它们由实现者定义的机制予以建立和取消。
3.4相符性
本标准指明符台 SQL的语言与符合 SQL 的实现。符合 SQL的语言应当遵从 BNF 范式与相关的语法规则。符合SQL的实现则应按照一般规则来处理与标准相符合的SQL语言。声称具有SQL-DDL相符性的实现应在1级或2级上处理SQL-DDL(<模式))。声称具有SQL-DML.相符性的实现应在1级或2级上作下述处理:1)SQL数据操纵语句(SQL.语句>)的直接调用和/或2)模块语言(《模块);和/或
3)一个或多个下述程序设计语言:嵌入SQL的COBOL((嵌入SQL的COBOL程序));a
..comGB 12991—91
嵌入 SQL 的 FORTRAN((嵌入 SQL 的 FORTRAN 程序>);h
丧人 SQL 的 Pascal(<嵌人 SQL 的 Paseal 程序>)c.
嵌人SQL的PL/1(<嵌入SQL的PL/1程序))。d.
声称具有全 SQL 相符性的实现应当在 1 级或 2 级上提供 SQI-DDL 与 SQL-DMI.的相符性。相符的实现可以提供一些本标准未指明的附加设施或任选功能。个实现即使给用户提供了处理不相衍的SQI.语言或以不相符的方式处理相符的SQL语言的选择,该实现仍然是相符的。声称与本标准相符应陈述:
1)具有下列哪些类型的相符性:净、
1级全SQL相符性!
2级全SQL相符性
1 级 SQL-DDI, 相符性;
2级SQL-DDL相符性;
1级SQL-DML相符性,
2级SQL-DML相符性。
2)实现了下述哪些设施:
SQL.数据纵语言语句的直接处理;模块语言(《模块);
嵌人 SQL的 COBOL((嵌入 SQL的 COBOL程序));嵌入 SQL的 FORTRAN(<嵌入 SQL 的 FORTRAN 程序));嵌入SoL的Pascal(<嵌入SQL 的Pascal程序)):嵌入 SQL的 PL/1(<嵌,人 SQL 的 PL/1 程序))。3)悬否实现完整性增强特征
本标推不定义应用程序与数据库管理系统部件之间结合的方法与时间。4概念
集是不同对象的无序集个,
多重集是未必不同的对象的无序集合。序列则是未必不同的对象的有序集合。集合的基数是这个集合中的对象的个数。除非另外指定,任一集合可以为空。4.2数据类型
数据类型是可表示值的集。值的逻辑表示是<字值》。值的物理表示是由实现若定义的。在本标准内,值是初等项,对其不能再作逻辑细分。值或是空值,或是非空值。空值是实现者定义的与类型相关的特殊值,该值不同于这个类型的所有非空值。非空值是字符串或是数。字符串与数是相五不可比较的值。4.2.1字符串
字符串由实现者定义的字符集的字符序列组成。字符串有长度,它是…个止整数,指出该序列中字符的个数。
所有的字符串都是可比较的。当且仅当按照5.11\(comparison谓词)\中所指明的比较规则,个字符串与另一个学符串相等时它们相等4.2.2数
数或是精确数宇值,或是近似数字值。所有的数都是可比较的。精确数字值有精度和标度。精度为正整数,它确定该数字值的有效十进制数的位数。标度为非负整GB 12991—91
数。标度为 0 表示该数字是一个整数,标度为 N表示这个精确数字值是有效十进制整数乘以 10 的一N方。
近似数字值由尾数和指数组成。尾数为带符号的数字值,而指数为带符号的整数。指数说明尾数的数量级。近似数字值有一个精度,该精度是正整数,它说明在尾数中有效二进制数的位数。每当把一个精确数字值赋予一个表示精确数字值的数据项或参数时,则按目标数据类型表示精确数值的近似值,此近似值保存「高位的有效数宇。转换这个值使它具有目标的精度与标度。每当把个精确数字慎或近似数学值赋予一个表示近似数字值的数据项或参数时,则按目标数据类型表示该值的近似值,把该值转换为具有目标的精度。4.3列
列是一些可随时变更的值的一个多重集。同一列的所有值具有同样的数据类型且都是在同一个表中的值,刻的值是从表中可选择的数据的最小单位,也是可以更新效据的最小单位,列有一个描述和一个在表内的顺序位置。列的描述包括它的数据类型和说明该列是否限于只包含非空值。字符申列的描述还指明它的长度。近似数值列的描述指明该数值的精度,精确数值列的描述指明该数值的精度和标度。
命名列是命名表的一个列,或是继承了命名列的描述的一个列。命名列的描述包括它的名字。4.4表
表是行的多重集。行是值的非空序列。同一表中的每一行都有相同的基数,并包含该表每个列的…个。表的每行内的第1个值是该表第1列的一个值。行是能够插人到表中并能从表中剿除的数据的最小单位。
表的度是该表中列的个数。无论何时,表的度与每一行的基数相同;而表的基数与它每列的基数相同。
表有一个描述,该描述包括对它的所有列的描述。基表是一个用(表定义)定义的命名表。基表的描述包括它的名字。导出表是通过对(查询说明)求值,从一个或多个其它表中直接或简接导出的表。导出表的值是当其被导出时那些作为基础的表的值。视图表是由<视图定义)定义的命名的导出表。视图表的描述包括它的名字。表或是可更新的,或是只读的。对于可更新的表允许做插入,更新和删除等操作,对于只读表不允许做上述操作。
分组表是完整性约束通过约束基表中的值定义数据库的有效状态。完整性约束在执行每个(SQL语句)之后受到有效的检验。如果与一个完整性约束相联系的基表未满足该完整性约束,则该(SQI.语句>无效,SQLCODE参数则置为实现者定义的一个负数。《唯一性约束定义)要求一个表中的任意两行在指定的一列或若干列上不具有相同的值。NOT NULL 要求一个列中没有任何一个值是空值。《引用约束定义》要求对于一个指明的引用表”的每一行,其中指明的某一列或某些列的值或者至少有一个空值,或者和另一个指明的“被引用表”的某行中指明的一列或若干列的值相同,引用表与被引用表可以是同一个表。
(检验约束定义>要求指定的<搜索条件>对一个表的任意一行都不为假值。4.6模式
<模式)县中橙式定义语言所指明的一个持久对爱。它由个(模式授轻子句)与所有(表定义),《视CB12991—91
图定义>与《特权定义>组成,在一个环境中系统用所指明的<授权标识符>识别模式>的上述组成。这里,环境的概念是实现者定义的。
由《模式》定义的表、视图和特权可看成是对该《模式》所指明的<授权标识符》所\拥有”的或“建立的。
注:实现可以提供一些设施(如DROPTABLE、DROPVIEW、AI.TERTABLE与REVOKE)允许对给定<授权标识符>的表、规图和特权的定义随荐时间的推移而予以建立、消除和修改。然而,本标准仪说明了能表示在给定时剃系统已知定义的那些(模式)。4.7数据库
数据库是一个环境中由若干<模式>定义的所有数据的集合。环境的概念是由实现者定义的。4.8模块
(模块是用模块评言指明的持久对象。一个《模块)是由一个任选的《模块名)、一个《语言子句)、一个(模块授权于句)、零个或多个由(中明游标》指明的游标以及一个或多个(过程组成。一个应用程序是一段可执行的代码,它可能由多个子程序组成。单个《模块)在其执行期间与一个应用程序相联系。一个应用程序应至多与一个模块>相联系。其中指明的联系方式,包括执行某个实现者定义语句的可能要求,是由实现者定义的。4.9过程
<过程>由<过程名),(参数申明>岸列和单个(SQL语句>组成。与(模块)相联系的应用程序可以通过“调用”语句来引用那个(模块)中的<过程》。这个“调用”语句指明该《过让程>的(过程名),并提供参数值的序列,其参数的个数和(数据类型》对应于该《过程>的<参数申明>。(过程>的调用导致该过程所包含的的执行。4.10参数
参数是在<过程)中由(参数申明)来申明的。(参数申明)指明参数值的《数据类型)。参数在过程)调用中接受或提供相应变元的值。4.10.1SQLCODE参数
SQLCODE参数是一个专用的整数型参数,它的值设置为一个状态码,该码或指示(过程>的一个调用已成功地完成,或指示在<过程>执行期间产生了一个异常条件。4.10.2指示符参数
指示符参数是整数型参数,它在另一个参数之后指明,主要用来指示该参数接受或提供的值是否为空值。
4.11标准程序设计语言
本标准指明当<模块》中《过程>由符合规定的标程序设计语言的程序调用时这些(过程>的动作。术语“标准COBOL程序”、“标准FORTRAN程序”、“标准Pascal程序”“标准PL/1程序”系指在第2竟“引川标准”中列出的满足这些标难的相符性准则的那些程序。4.12游标
游标由(中明游标)指明。
对于<模块>中的每个《申明游标>,当引用该<模块>的一个事务《参见4.16\事务\)初始化时,才能有效地建立一个游标,并在该事务终止时取消此游标。游标或处于打开状态,或处于关闭状态。游标的初始状态是关闭状态。通过《open语句》可将游标置于打开状态,通过或《rollback语句》可使游标回到关闭状态。处于打开状态的游标指示一个表,该表的行序和对应于该行序的一个位置.如果(申明游标>没有包括在同一个亦务中,当没有定义行序或用(urderby子句)没有完全定义行序的情况下,仟意两行的相GB 12991—91
对位置在每次打开游标时,一般应该一样。如果在(申明游标)中<查谢说明)引用的数据库的值或参数值不同,则两次打开的行序可以不同。在独立的一些事务中,即使<中明游标>的<查询说明)引用的数据库或参数值相同,用同一《游标说明>和(open语句>指示的那些行序也可以不相同。处于打开状态的游标位置或在某一行之前,或在某一行上,或在最后一行之后。如果游标在某一行上,则该行是该游标的当前行。即使该表为空,游标也可以在第一行之前或最后一行之后。将一个打开的游标的位骨推进到游标所在位置的下·-行,并检索出该行各个列的值。(update语句:定位)更新游标的当前行。(delete语句:定位删除游标的当前行。如果游标在某一个行之前,并把一个新行指入到那个位置,对这个游标位置如果有影响,其影响是实现署定文的。
如果游标在某一行上或在某一行之前,且该行被删除,那么游标就被定位在紧接着被测除行之后的那个行之前。如果不存在这样的行,那么游标的位置就在最后一行之后。如果在一个涉及打开的游标的语句的执行过程中产生了鳍误,如果对该游标位置或状态有影瀚,其影响是实现者定义的。丁.作表是由于游标打开而产生的表。游标打开是否会导致工作基表或者工作视图表的建立是实现者定义的。
对工作视图表的每一行仅当游标定位在该行时才被导出。工作基表在游标打开时建立,当游标关闭时撤消。4.13语句
(sQL语句指明数据库操作或游标操作。删除表中的行。
4.14嵌入语法
一个<嵌入SQL的宿主程序)(《嵌入SQL的COBOL程序)嵌入SQL的FORTRAN程序)、《嵌入 SQL的 Pascal 程序>,或(嵌入 SQL 的 PL/1程序>)是由程序设计语言正文与 SQL 正文组成的-个应用程序。程序设计语言正文应与特定的标准程序设计语言的要求一致。SQIL正文应出一个或多个《嵌入的SQL语句>和,可任选的,一个或多个(嵌入的SQL申明节)组成。这就允许将数据库应用表示为一个混合形式,在此形式中(SQL.语句)直接嵌入到应用程序中。这样的混合应用程序定义为一个等价的标准应用程序,在该标准应用程序中用标准过程或独立的 SQL(模块>中的SQL<过程)的子例行程序的CALL替换4.15特权
特权是通过所指明的(授权标识符)对指明的表或规图授权在其上执行的个给定的(动作)类。这些(动作)可以指明为INSERT,DELETE,SELECT,UPDATE和REFERENCE。对每个<模块)与<模块)都要指明一个(授权标识符)。对(模块)所指明的<授权标识符)应与同一环境中任何其它<模式)的(授权标识符)不同。<模式>的(授权标识符>是这个<模块所定义的所有表和视图的“拥有者”。表与视图用<表名)指定。《表名>由(授权标识符)和(标识符>组成。(授权标识符)标识<模式),在该《模式》中由(表名指定的表或视图是已定义的。在不同的<模式>内定义的表与视图可以有相同的(标识符)。
如果对《表名>的引用没有明显地包含《授权标识符),则其所在《模式》的或《模块》的<授权标识符》指明为缺省。
<模式>的<授权标符)对该(模式)内定义的表和视图具有所有特权。具有一个给定《授权标识符)的(模式)可以包含有<特权定义),该(特权定义)把特权授予其它(授权GB 12991- 91
标识符>。所授予的特权叮以应用于当前<模式>中定义的表和视图,或者它们可以是由其它《模式)授子给定<授权标识符)的特权。<特权定义>中的WITHGRANTOPTION子句指明一个特权的接收者是否可以把此特权授予其他的<授权标识符)。(模块)指明一个(授权标识符),即(模块授权标识符>.它应具有该(模块>内每个(SQL语句)所指明的特权。
4.16事务
事务是一个包括有数据库操作的操作序列,该序列是关于恢复与并发的原了单位。当一个《过程)被调用,且当前没有事务活动,事务就被初始化。事务用终止,则该事务使数据库产生的全部改变对所有并发事务都是可访问的。如果用(rollback语句>终止事务,则这个事务对数据库所做的全部改变都被撤消。而已交付的改变不能撤消。事务对数据库所产生的改变可被该事务所感知,但是在这个事务用(commit语句>终止之前,这些改变不能被其他事务所感知。
并发事务的执行应确保可串行化。可串行化的执行义为并发执行事务操作的一种执行,该执行与同一组事务的某个顺序执行产生相同的效果。顺序执行的含义是:每个事务的执行应在下一个事务开始之前完成。
除在的一般规则所陈述的效果以外,在一个事务中(SQL语句>的执行对数据库没有影响
联系到申行化的执行,意味着在·个事务中所有的读操作是可重现的。以下情况除外:1)事务本身显式地使数据库和它的内容改变所产生的影响!2)提供给打开游标并接着通过该游标检素的过程以不同参数值的影响。5公用元素
5.1(字符)
定义语言的终结符号与字符串元素。格式
(字符):
(数学)《字母>》(专用字符》
(数字):
0/1|21345|6|78:9
《字母):
(大写字母)[小写字母〉
大写字母》!
A|B|C/D|E|F;G|H/I
IJIK/LiM/N!O|P|Q|R
S/T/U,V/WIX/YIZ
(小写字母):
albleldle|flg|h!i
[jk|1mnoipgl
[s]t u|>|w|x 'y ;z]
(专用字符)=
,见语法规则1)。
语法规则
GB12991-91
1)(专用字符>是实现者定义的除《数字)和(字母)的字符以外的任意字符如果实现者定义的行结束指示符是一个字符,则它不列为《专用字符)。注,参见 5.3\(记号)\内<新行)的格式。2)(专用字符>应包括在SQL评言最终产生式中出现的除《数字)和(字母>以外的所有符号,另外还应包括百分比号与下划线字符。一般规则
5.2《字值
指明一个非空值。
《字值)::=
(字符申字值)[<数值字值>
(字符串字值):1=
【(字符表示)
(字符表示)!
(非引号字符)[(引号表示)
(非引号字符):!=
见语法规则1)。
(引号表示)::=
<数值字值)::=
(确数值字值)(近似数值字值)
(精确数值字值):
【+|-]{《无符号整数>[.无符号整数》<无符号整数).1.(无符号整数》)(近似数值字值):=
<居数>E<指数)
<尾数> =
(精确数值字值》
<指数〉
(带符号整数)
(带符号整数):1=
[了(无符号整数〉
(无符号整数)::=
(数字)…
语法规则
1)《非引号字符)是任意一个不同于单引号字符(\>的《字符)。2)《字符串字值>的数据类型是字符串。(字符串字值的长度是它所包含的<字符表示>的个数。在(字符串字值>内的每个(引号表示在该(字符串字值>的值和长度方面代表单个引号字符。3)不带小数点(.)的一个(精确数值字值)有一个隐含的小数点,它位于最后的(数字)之后。4)(精确数值字值>的数据类型是精确数值。《精确数值字值)的精度是它所包含<数字)的个数。(精确数值字值)的标度是小数点有边<数字>的个数。GB 12991--91
5)<近似数值字值>的数据类型是近似数值。<近似数值字值>的精度是它<尾数>的精度。一般规则
1)《字符串字值>的值是它包含的《字符>序列。2)《精确数值字值>的数值按带衍号的定点·1-进制表示法的通常数学解释导出,3)<近似数值字值>的数值是两个数的乘积,一个是由<尾数>表示的精确数值,另一个是10的<指数)表示的幂。
5.3《记号)
指明词法单元。
(记)::
《非定界符记号>I<定界符记号》《非定界符记号)=
(标识符><关键字)[<数值字值》《标识符::
《大写字母>[([《下划线>}字母或数字》}](下划线):二
(字母或数字>!!=
《大写字母》<数字》
(关键字》11-
ALLIAND|ANY|AS|ASC|AUTHORIZATION'AVGBEGIN BETWEEN |BY
CHARCHARACTERCHECKCLOSECOBOLCOMMITCONTINUEICOUNTCREATECURRENTICURSORDEC|DECIMAL|DECLAREDEFAULTIDELETEIDESCDISTINCTIDOUBLE
ENDESCAPE|EXECEXISTS
FETCHFI.OAT|FORFOREIGN!FORTRANFOUND|FROMGOGOTOGRANTIGROUPHAVING
ININDICATORINSERTINT/INTEGER|INTOISKEYILANGUAGELIKE
MAX MIN'MODULE/NOT|NULLiNUMERICOF|ON|OPEN|OPTIONIOR|ORDER
PASCALPLIIPRECISIONPRIMARYPRIVII.EGESPROCEDUREPUBLIC
REAI.IREFERENCESROLLBACK
SCHEMAISECTIONSELECTISET|SMALLINTISOMESQLISQLCODE|SQLERROR|SUM
TABIE|TO|UNION|UNIQUE|UPDATE|USERIVALUES/VIEW|WHENEVER/WHERE|WITH|WORK(定界符记号)::—
字符串字值)
(分隔符)1
GB 1299191
1,[(])]<[). /: J=]* ]+-1//()[)[(=《注解>《空格》<新行》}
(注解)
《注解引入符>[字符)}新行》
《往解引入符):,-
见语法规则5)。
(新行)
《空格)=
实现者定义的行结束指示符
空格字符
语法规则
1)《记号)与《字符审字值)不同,它不应包含《空格)。2)任何《记号》后面可跟一个(分隔符)。一个《非定界符记号>的后面应跟一个《定界符记号)或《分隔符)。如果语法不允许一个(非定界符记号)的后面跟一个《定界符记号),那么该(非定界符记号》的后面应眼一个(分隔符)。
3)构成一个《标识符>的字符个数不应多于18。4)《标识符不能与(关键字》相同。5)《注解引入符)是不用(空格>或<新行>分开的两个或多个连续的连字符序列,且该序列不包含在(字符串字>内。
一般规则
指明名字。
(表名)::—
[<授权标识符).}<表标识符
《授权标识符)::=
(表标识符)::-
(标识符》
(标识符)
(列名)=
(标识符)
(相关名》::
标识符)
<模块名》=
《标识符)
(游标名)::=
《标识符)
《过程名):=
(标识符)
(参数名):=
语法规则
(标识符》
1)<表名)标识命名表。
GB 12991-91
2)如果《表名>不包含《授权标识符>,则有两种情况:3,如果(表名》包含在《模式》中,则其《授权标识符)隐含为该<模式)的<模式授权标识符)。b如果(表名>包含在(模块)中,则其<投权标识符>隐含为该(模块)的<模块授权标识符)。3)当月仅当两个《表名有相同的(表标识符)和相同的(授权标识符)时,不论<授权标识符>是显式或隐式,则这两个<表名)是等同的。4)《表名)在《表定义)或《视图定义>内申明。5)(SQL语句>内的(表名>应标识<模式)中定义的表。6)《授权标识符>表示授权标识符。7)作为<相关名>申明的<标识符)与特定作用域的表相联系。(相关名>的作用域或是或是<查询说明>见5.20\《from子句*),作用域可以是嵌套的。在不同的作用域内,同样的<相关名>可以与不同的表,或相同的表相联系。8)<列名>标识命名列。由《表定义>或<视图定义)将(标识符)定义为<列名)。9)《模块名>标识(模块)。
10)《游标名)标识(游标),
11)(过程名)标识(过程),12)(参数名)标识参数。
一般规则
5.5(数据类型)
指明数据类型。
数据类型):
(字符串类型)
[(精确数值类型>(近似数值类型)(字符串类型)::=
CHARACTER[({长度)]|CHAR[(<长度))](精确数值类型):=
NUMERIC[(《精度>[,<标度))
1DECIMAL[(《精度)[,标度)])]
DEC[((精度)[,《标度>])]
INTEGER
SMALLINT
近似数值类型)-
FLOAT[(<精度))]
IREALDOUBLEPRECISION
<长度)
(无符号整数)
<精度》!
(标度)
语法规期
(无符号整数)
(无符号整数)
GB 12991—91
1)CHAR是CHARACTER的同义词。DEC是DECIMAL的同义词。INT是INTEGER的同义2)作为(长度)或(精度>的(无符号整数)的值应大于03)如果<长度>省略,则假设它为1。如果(标度)省略,则假设它为0。如果<精度)省略,则它是实现者定义的。
4)《精确数值类型)的(标度)不应大于它的(精度)。5)CHARACTER指明字符串数据类型,其长度由<长度>指明。6)NUMERIC指明精确数值数据类型,其精度与标度分别由<精度>与(标度)指明。7)DECIMAL指明精确数值数据类型,其标度由<标度>指明,且具有由实现者定义的等于或大于所指明的<精度)值的精度。
8)INTEGER指明精确数值数据类型,其精度由实现者定义,其标度为0。9)SMALLINT指明精确数值数据类型,其标度为0,其精度由实现者定义,但它不大于由实现者定义的 INTEGER 的精度。
10)FLOAT指明近似数值数据类型,其二进制精度大于或等于由(精度)指明的值。11)REAL指明近似数值数据类型,其精度由实现者定义。12)DOUBLEPRECISION指明近似数值数据类型,其精度由实现者定义,且应大于实现者定义的 REAL 的精度。
一般规则
5.6《值说明)与《目标说明)
指明一个或多个值、参数或变量。格式
(值说明):=
(参数说明)
[<变量说明)
[{(字值)
目标说明》1=
(鑫数说明)
[<变量说明)
(参数说明)1 =
(参数名)[(指示符参数)了
<指示符参数):二
[INDICATOR](参数名】
《变量说明);=
《嵌入的变量名>[指示符变量]
<指示符变量)
[INDICATOR]<嵌入的变量名】
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。