GB/T 12991.1-2008
基本信息
标准号:
GB/T 12991.1-2008
中文名称:信息技术 数据库语言 SQL 第1部分: 框架
标准类别:国家标准(GB)
标准状态:现行
发布日期:2008-07-16
实施日期:2008-12-01
出版语种:简体中文
下载格式:.rar.pdf
下载大小:1384749
标准分类号
标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言
中标分类号:电子元器件与信息技术>>信息处理技术>>L74程序语言
出版信息
出版社:中国标准出版社
页数:48页
标准价格:32.0 元
计划单号:20061671-T-469
出版日期:2008-12-01
相关单位信息
首发日期:1991-08-19
起草人:冯玉才、吴恒山、谢美意、班鹏新、李晨阳、李海波、赵菁华、卫凤林、余云涛
起草单位:中国电子技术标准化研究所、武汉达梦数据库技术有限公司
归口单位:全国信息技术标准化技术委员会
提出单位:中华人民共和国信息产业部
发布部门:国家标准化管理委员会
主管部门:国家标准化管理委员会
标准简介
GB/T12991的本部分描述GB/T12991 其他部分中所使用的概念性框架,规定了SQL 语法和SQL 实现的处理语句的结果。本部分还定义了GB/T12991其他部分使用的术语和记法。 GB/T 12991.1-2008 信息技术 数据库语言 SQL 第1部分: 框架 GB/T12991.1-2008 标准下载解压密码:www.bzxz.net
标准内容
ICS35.060
中华人民共和国国家标准
GB/T12991.1—2008/IS0/IEC9075-1:2003代替GB/T12991-1991
信息技术
数据库语言SQL
第1部分:框架
InformationtechnologyDatabaselanguages-SQL-Part1:framework
(ISO/IEC9o75-1:20o3,InformationtechnologyDatabaselanguagesSQLPart1:Framework(SQL/Framework),IDT)2008-07-16发布
中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会
2008-12-01实施
规范性引用文件
术语的定义和使用
3.1定义
3.1.1、本标准中提供的定义
3.2术语的使用
3.3提示性内容
4概念
防止误解的说明
SQL环境及其组成
SQL环境
SQL代理
SQL实现
SQL客户模块
用户标识符
用户映射概念
例程映射概念
目录和模式
外部服务器和描述符
外部数据封装器和描述符
SQL数据
SQL数据类型
般数据类型信息
预定义类型
构造原子类型
构造复合类型
4.5场所及场所上的操作
可空性
4.6SQL模式对象
-般SQL模式对象信息
与字符集相关的描述符
GB/T12991.1—2008/IS0/IEC 9075-1:2003次
GB/T12991.1—2008/IS0/IEC9075-1:20034.6.3
域及其组成
用户定义类型
相异类型…
基表及组成
视图定义
SQL服务器模块
模式例程
序列生成器
完整性约束和约束检查
约束检查
确定性和约束
4.8SQL代理和SQL服务器之间的通信4.8.1
宿主语言
参数传递和数据类型对应性
描述符区
诊断信息…
SQL事务
般例程信息
类型保留函数
SQL语句
SQL语句分类
按功能分类的SQL语句.
5GB/T12991中的各部分说明
GB/T12991.1:框架
GB/T12991.2:基础
GB/T12991.2规定的数据类型
绑定方法·
GB/T12991.2中规定的SQL语句
5.4GB/T12991.3:调用层接口..5.5GB/T12991.4:持久存储模块·….5.5.1GB/T12991.4中规定的SQL语句5.6GB/T12991.9:外部数据管理
GB/T12991.10:对象语言绑定
GB/T12991.11:信息和定义模式
GB/T12991.13:使用Java程序设计语言的SQL例程和类型5.10
GB/T12991.14:与XML相关的规范6GB/T12991中其他各部分使用的记法和约定10
6.1取自ISO/IEC10646中的记法
6.2本标准中使用的记法…
6.3约定..
句法元素说明
信息模式和定义模式的说明
术语的使用
描述符·
GB/T12991中各部分的关系
作为子例程使用的条款
6.3.6索引排版格式.
特征ID和特征名
6.4数据库语言SQL的对象标识符GB/T12991中各部分的附录
实现定义的元素
实现相关的元素
不推荐的特征
与以前版本的不兼容性
8符合性·
最小符合性
部分的符合性
特征的符合性
SQL包的符合性
增强日期时间设施
增强完整性管理·
基本对象支持
增强对象支持
主动数据库
扩展和选项
SQL标记符
符合性声明·
对SQL应用的要求
对SQL实现的要求
附录A(资料性附录)SQL国际标准的维护和解释附录B(资料性附录)
实现定义的元素
附录C(资料性附录)
实现相关的元素
附录NA(资料性附录)
参考文献
GB/T12991标准发展历程
GB/T12991.1—2008/IS0/IEC9075-1:200318
GB/T12991.1—2008/IS0/IEC9075-1:2003前言
GB/T12991在《信息技术
数据库语言SQL》总标题下分为9个部分:第1部分:框架;
第2部分:基础;
第3部分:调用层接口;
第4部分:持久存储模块;
一第9部分:外部数据管理;
一第10部分:对象语言绑定;
第11部分:信息和定义模式;
第13部分:使用Java程序设计语言的SQL例程和类型;第14部分:与XML相关的规范。
本部分为GB/T12991的第1部分。本部分等同采用ISO/IEC9075-1:2003《信息技术数据库语言SQL第1部分:框架(SQL/框架)》、ISO/IEC9075-1:2003/cor.1:2005技术勘误表1、ISO/IEC9075-1:2003/cor.2:2007技术勘误表2,并做了如下编辑性修改:改正ISO/IEC9075-1:2003标准中出现的印刷错误,将原英文版4.6.2.2\理序”一节第三行中出现的14561更改为14651,此改动在正文中的页边空白处用垂直线(I)标识。将ISO/IEC9075-1:2003对应的两个技术勘误ISO/IEC9075-1:2003/Cor.1:2005和ISO/IEC9075-1:2003/Cor.2:2007并人到GB/T12991.1:2003的文本中,并在正文中的页边空白处用垂直双线(I)标识。
用“本标准”代替了“本国际标准”在第1部分“框架后增加资料性附录NA,说明GB/T12991标准的发展历程。删除ISO/IEC9075-1:2003国际标准的前言,增加国家标准对应的前言。第2章“规范性引用文件”中对ISO/IEC10646标准的引用,由原来的引用ISO/IEC10646-1:2000和ISO/IEC10646-2:2001两个标准改为引用ISO/IEC10646:2003一个标准。本部分与GB/T12991的其他部分共同代替标准GB/T12991一1991。本部分与前一版本的主要技术变化在附录NA中有详细介绍。本部分的附录A、附录B、附录C、附录NA为资料性附录本部分由中华人民共和国信息产业部提出。本部分由全国信息技术标准化技术委员会归口本部分起草单位:中国电子技术标准化研究所、武汉达梦数据库有限公司。本部分主要起草人:冯玉才、吴恒山、谢美意、班鹏新、李晨阳、李海波、赵菁华、卫凤林、余云涛。本部分所代替标准的历次版本发布情况为:GB/T12991—1991。
GB/T12991.1—2008/ISO/IEC9075-1:2003引言
GB/T12991本部分的内容组织如下:a)第1章“范围”,说明GB/T12991本部分所涉及的范围b)
第2章“规范性引用文件”,标识GB/T12991本部分引用的附加标准,通过对附加标准的引用构成GB/T12991本部分的补充条款第3章“术语的定义和使用”,定义GB/T12991中所使用的术语,第4章“概念”,描述GB/T12991中使用的概念。d)
第5章GB/T12991中的各部分说明”,依据第4章概念”中所描述的概念,概括GB/T12991各部分的基本内容。
第6章“GB/T12991中其他各部分使用的记法和约定”,定义GB/T12991中其他部分使用的f
记法和约定。
第7章“GB/T12991中各部分的附录”,描述GB/T12991中其他部分相关的附录内容。g)
第8章\符合性”,说明对GB/T12991中全部或部分内容满足符合性所须达到的要求。i
附录A\SQL国际标准的维护和解释”,属于资料性附录。该附录描述维护和解释ISO/IEC9075标准的正式程序。
附录B\实现定义的元素”、属于资料性附录。该附录列出了GB/T12991本部分内容的语法、j)
含义、返回结果、对SQL数据和或模式的影响或任何其他行为是部分还是全部是实现定义的那些特征。
k)附录C\实现相关的元素”,属于资料性附录。该附录列出了GB/T12991本部分内容的语法、含义、返回结果、对SQL数据和/或模式的影响或任何其他行为是部分还是全部是实现相关的那些特征。
附录NA\GB/T12991标准发展历程”属于资料性附录。该附录列出了GB/T12991的发展历1)
程及各版本之间的差异。
参考文献介绍了一些Unicode标准及相关链接V
1范围
GB/T12991.1—2008/IS0/IEC9075-1:2003信息技术数据库语言SQOL
第1部分:框架
GB/T12991的本部分描述GB/T12991其他部分中所使用的概念性框架,规定了SQL语法和SQL实现的处理语句的结果。
本部分还定义了GB/T12991其他部分使用的术语和记法。2规范性引用文件
下列文件中的条款通过GB/T12991的本部分的引用而成为本部分的条款。凡是注日期的引用文件:其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分GB/T12991的所有部分(ISO/IEC9075:2003.IDT)GB/T16262.1—2006信息技术抽象语法记法一(ASN.1)第1部分:基本记法规范(ISO/IEC8824-1:2002.IDT
ISO/IEC10646:2003
ISO/IEC14651:2001
的排序方法
3术语的定义和使用
3.1定义
:通用多八位编码字符集(UCS)信息技术
信息技术
国际字符串排序和比较比较字符串和描述公用模板可裁剪3.1.1本标准中提供的定义
下列定义适用于GB/T12991的本部分及其他部分。3.1.1. 1
原子的
atomic
不能被进一步分割的。
编译单元
compilationunit
可能由一个或多个子程序组成的一段可执行代码。3.1.1.3
datatype
数据类型
可表示的值的集合。
3. 1.1. 4
描述符descriptor
SQL对象的编码描述。它包括一个符合SQL实现所要求的对象的全部信息3.1.1.5
某些SQL对象名的完全限定fullyqualifiedofanameof someSQLobject带有显式说明的所有可选部分。注1:完全限定名对于唯一标识一个对象并不一定是必需的。例如,虽然由目录名、模式名和专用名组成的完全限定专用名能唯一标识一个例程,但并非必须要完全限定例程名。1免费标准bzxz.net
GB/T12991.1—2008/IS0/IEC9075-1:20033.1.1.6
标识符
identifier
标识事物的方式。
识别identify
无歧义性地指认事物。
实现定义的implementation-definedSQL实现之间可能不同,而由每个特定SQL实现的实现者进行规定。3.1.1.9
实现相关的
implementation-dependent
SQL实现之间可能不同,但GB/T12991中没有规定的、且不要求任何特定SQL实现的实现者进行规定的内容。
(一个值的)实例instance(ofavalue)个值的物理表示。每个实例都确切地存在于一场所。每个实例都有其数据类型,该数据类型就是其值的数据类型。
空值nullvalue
用来表示任何数据值暂缺的特殊值。3.1.1.12
对象(如“x对象”)object(asin“Xobject”)任何事物。一个X对象是某个X的组成部分或与其相关,不能脱离X独立存在的事物。例如,一个SQL对象必须存在于SQL上下文中一个SQL模式对象必须存在于某个SQL模式中。3.1.1.13
persistent
持久的
除非有意撤销,始终持续存在。引用和级联动作视为有意的动作。SQL事务或SQL会话偶然发生的终止动作不视为有意的动作。3.1.1.14
(对象的)性质
property (of an object)
有关某个对象的属性、质量和特征。3.1.1.15
行row
(字段名,值)对的序列,每个值的数据类型由行类型来指定。3.1.1.16
(标准的)范围scope(ofastandard)本标准中的条款。该条款定义本标准的主题和所涉及的内容,从而指出本标准或其中某个部分的适用限制。
3. 1. 1. 17
(名字或声明的)作用域scope(ofanameordeclaration)使得名字或声明有效的一个或多个BNF非终结符。3.1.1.18
scope(ofareferencetype)
(引用类型的)作用域
引用类型的值所引用的表。
3. 1.1.19
序列sequence
未必相异的对象的有序集合。
场所site
GB/T12991.1—2008/IS0/IEC9075-1:2003某个指定数据类型(或它的子类型)的值的实例占用的地方。3.1.1.21
规模化项
sizingitem
SQL实现或配置文件中实现定义项的值。3.1.1.22
SQL连接
SQL-connection
SQL客户与SQL服务器之间的联系。3.1.1.23
SQL-environment
SQL环境
SQL数据存在和SQL语句执行的上下文环境3.1.1.24
SQL-implementation
SQL实现
处理SQL语句的处理器。符合SQL实现是指满足第8章“符合性”中定义的要求的SQL实现。3.1.1.25
SQL会话
SQL-session
在一个SQL连接上,单个SQL代理的单个用户执行一个连续SQL语句序列的上下文环境3.1.1.26
SQL语句SQL-statement
符合GB/T12991中规定的格式和语法规则的字符串。3.1.1.27
表table
具有一个或多个列的有序汇集的行的无序汇集。每一列有一个名称和一个数据类型。对于每一列,每一行只有一个属于该列的数据类型的值。3.2术语的使用
GB/T12991中的概念是依据对象并按照通常的意义来描述的。一个对象可以看作是它所依赖的那个对象的组成部分。如果一个对象不复存在,则依赖于它的每个对象也不再存在。对象的表示被称为描述符,对象的描述符表示了须要知道的有关该对象的所有信息,见6.3.4\描述符”。
3.3提示性内容
在GB/T12991中的某些地方,出现了提示性注解。例如:注2:这是一个注解的例子。
这些注解并不属于GB/T12991的标准内容,由于对非标准内容声明其符合性是毫无意义的,因此不要对注解内容声明符合性。
4概念
4.1防止误解的说明
本章中描述的概念,绝大多数在GB/T12991其他部分中有准确的详细说明。如有出人,以其他部分的说明为准。
GB/T12991.1—2008/IS0/IEC9075-1:20034.2SQL环境及其组成
4.2.1SQL环境
二个SQL环境包括:
一一个SQL代理。
一一个SQL实现。
一零个或多个SQL客户模块,包含适用于SQL代理的外部调用过程。一零个或多个授权标识符。
一零个或多个用户映射。
一零个或多个例程映射
一零个或多个目录,每个目录包含一个或多个SQL模式。包含模式内容所描述的SQL数据的场所,主要是基表。这种数据可以被看作“数据库”,但是GB/T12991中并不使用“数据库”这个术语,因为这个词在一般的上下文中有不同的含义。4.2.2SQL代理
SQL代理就是引起SQL语句执行的主体。在SQL直接调用的情况下(见5.3.3.3SQL直接调用”),它是由实现定义的。换句话说,SQL代理可以由一个或多个编译单元组成。这些编译单元执行时调用SQL客户模块中的外部调用过程。4.2.3SQL实现
SQL实现是执行SQL代理所请求的SQL语句的处理器。一个SQL实现,由SQL代理可以看出,包括一个与SQL代理相关联的SQL客户和一个或多个SQL服务器。即使SQL环境中不充许多个SQL服务器存在,一个SQL实现也是可能符合GB/T12991的。由于SQL实现是依据其如何执行SQL语句规定的,所以这个概念通常表示某个安装的软件实例(数据库管理系统)。GB/T12991不区别软件供应商确定的和安装者确定的SQL实现之间的特征GB/T12991认为SQL客户和SQL服务器可能来自于不同的供应商,因此没有规定SQL客户与SQL服务器之间的通信方法。
4.2.3.1SQL客户
SQL客户是一个处理器,SQL代理将其视为SQL实现的一部分,它建立自身与SQL服务器之间的SQL连接,维护其自身、SQL代理、SQL服务器三者之间交互的诊断区和其他状态数据。当为一个SQL客户建立了二个或多个SQL连接时,该SQL客户所维护的诊断区为当前SQL连接的SQL服务器所维护的诊断区栈(见4.8.4)中第一个诊断区的副本。当不存在SQL连接时,该诊断区要么是空的,要么包含与某个失败的SQL连接相关的诊断信息。4.2.3.2SQL服务器
每个SQL服务器是一个处理器,SQL代理将其视为SQL实现的一部分,它管理SQL数据。每个SQL服务器:
管理发生在SQL服务器与SQL客户之间的SQL连接上的SQL会话:执行从SQL客户接收到的SQL语句,接收和发送要求的数据;维护SQL会话的状态,包括授权标识符和一些会话的缺省信息。4.2.4SQL客户模块
一个SQL客户模块是由实现定义的机制显式创建和撤销的模块一个SQL客户模块的名字不是必须的;如果有,其允许的名字是由实现定义的。一个SQL客户模块包含零个或多个外部调用过程。一个外部调用过程是由一条SQL语句组成的。外部调用过程由宿主语言的编译单元调用。任何时候,只有一个SQL客户模块与一个SQL代理相关联。然而,在直接绑定方式或SQL/CLI方式下,SQL客户模块可以是一个缺省的SQL客户模块,其存在对于用户是不可见的。GB/T12991.1—2008/IS0/IEC9075-1:2003SQL会话模块是为准备的SQL语句隐式创建的模块(见GB/T12991.2中的4.37\SQL会话”)。与一个SQL会话(而不是一个SQL会话模块)相关联的每个(SQL客户模块定义)M可能与一个影子模块M1相关联,在相同的SQL会话中,该影子模块具有一个实现相关的名字,该名字不等于任何其他,且其<模块授权子句》指明\SCHEMASN”,其中SN是M的(模块授权子句)的显式或隐式<模式名)。M1的<语言子句)、SQL路径(若规定)和<模块字符集说明)等同于M所对应的特征。当M包含一个(模块授权子句)指明\FORSTATICONLY”,则该影子模块实际上包含M中所含的<准备语句>或《立即执行语句>所准备的每条SQL语句的一个(外部调用过程)。4.2.5用户标识符
用户标识符代表一个用户。创建和撤销用户标识符的方法,以及到真实用户的映射,在GB/T12991中没有做出规定。
4.2.5a角色
角色是特权或其他角色的潜在的接受者和授予者。角色也可以拥有模式和其他对象。角色授权允许接受者(见4.6.12)使用已授予该角色的所有特权。它也指明了该角色授权是否是可授予的,在这种情况下,接受者被授权可以将该角色授权、回收对该角色的授权及销毁该角色。4.2.6用户映射概念
一个用户映射把一个授权标识符与一个外部服务器描述符对应起来。4.2.7例程映射概念
一个例程映射把一个SQL调用例程与一个外部服务器描述符对应起来注3:按GB/T12991的本版本,与外部服务器描述符对应的SQL调用例程被限制为SQL调用规则函数,将来的版本可能撤销这一限制。
4.2.8目录和模式
4.2.8.1目录
目录是在一个SQL环境中的SQL模式、外部服务器描述符、外部数据封装器描述符的命名集合创建和撤销目录的机制是由实现定义的。在当前SQL会话中,通过(准备语句)和《立即执行语句>的执行而动态准备的<可准备语句>的缺省目录名起初是由实现定义的,但可利用《设置目录语句来改变。4.2.8.2SQL模式
SQL模式,通常简称为模式,是一个持久的、描述符的命名集合。任何其描述符属于某个SQL模式的对象被称为SQL模式对象。
与模式关联的授权标识符拥有该模式、模式中的模式对象以及由模式对象描述的SQL数据。SQL模式的创建和撤销通过执行SQL模式语句(或由实现定义的机制)来完成。4.2.8.3信息模式
每个目录均包含一个名为INFORMATION_SCHEMA的SQL模式,该模式包括一定数量的模式对象的描述符,大多数是视图定义,它们使得该目录中的每个描述符都能够像SQL数据一样被访问,但不能被修改。
通过信息模式中的视图可获得的数据包括该信息模式自身的描述符,不包括定义模式(见4.2.8.4)中的模式对象和基表
每个信息模式视图规定一个给定用户只能访问视图中该用户在其表示的描述符上具有特权的那些行。
4.2.8.4定义模式
定义模式是一个虚构的名为DEFINITION_SCHEMA的模式。如果它真的存在,那么,其基表中的SQL数据应该描述一个SQL服务器可以获得的所有SQL模式。GB/T12991中的定义模式仅作为信息模式中视图的基础而定义。5
GB/T12991.1-—2008/ISO/IEC9075-1:2003定义模式的结构是SQL数据模型的一种表示。4.2.9外部服务器和描述符
外部服务器是一个处理器,它并不是SQL实现的一部分。二个外部服务器由一个外部服务器描述符来描述。外部服务器管理不属于SQL环境的数据。SQL服务器和SQL客户能够使用外部服务器描述符(它是一个目录元素)与一个外部服务器通信。外部服务器管理的数据可由SQL服务器或SQL客户通过外部表(属于SQL模式元素)来访问。4.2.10外部数据封装器和描述符外部数据封装器提供一种机制,SQL服务器通过这种机制能够访问由外部服务器管理的数据。外部数据封装器由外部数据封装器描述符来描述。4.2.11SQL数据
SQL数据是由SQL模式描述的数据,即SQL环境中在SQL实现的控制之下的数据。4.3表
表具有一个或多个列的有序汇集和零个或多个行的无序汇集。每一列有二个名称和一个数据类型。每一行,相对于每一列而言,只有一个属于该列的数据类型的值。完全由表变量组成的SQL数据称为基表。引用零个或多个基表且返回一个表的操作称为查询。查询的结果称为导出表。
表的行具有一个类型,称为“行类型”,表中的每一行具有相同的被称为“行类型”的类型。基于某个结构类型声明的表称为“类型表”,其列名和声明的类型对应于该结构类型中属性的名字和类型。类型表还有一个附加列,称为“自引用列”,其类型是与该表的结构类型相关联的引用类型如果类型表TB1有一个关联结构类型TP1,TP1是某结构类型TP2的子类型,则可以把TB1定义成其关联类型为TP2的类型表TB2的子表。这种情况下,TB2称为TB1的“超表”。视图是一个命名查询,能够通过其名字进行调用,这种的调用结果称为视图表。有些查询,即有些视图是可更新的,这意味着它们可以作为改变SQL数据的那些语句的操作目标。视图上的更新最终还是体现为相应基表上的更新。基表或视图表中,任意两列不能有相同的名字。除视图表外的导出表可以包含同名列。基表可以是一个模式对象(其描述符属于模式,见4.6.6),也可以是一个模块对象(其描述符属于模块,见4.9)。描述符属于模式的基表称为创建基表,它可以是持久的或临时的(虽然两种情况的描述符都是持久的)。一个持久基表包括零或多行持久的SQL数据。模块中声明的基表只能是临时的,且称为声明临时表。
临时表是一个SQL会话对象,不能在其他SQL会话中进行访问。全局临时表可以在任何相关的SQL客户模块中访问。局部临时表只能在其所属的模块中访问当SQL会话初始时,临时表是空的。依据其描述符的描述,临时表会在SQL事务终止时,或是SQL会话终止时被清空(即所有的行都被删除)。4.4SQL数据类型
4.4.1一般数据类型信息
每个数据值都属于某个数据类型。每个数据类型可以是预定义类型、构造类型或用户定义类型。每个数据类型有一个名字。预定义和构造数据类型的名字使用GB/T12991中用来指定数据类型的保留字。用户定义类型的名字在其定义中指定。一个用户定义类型是一个模式对象,见4.6.4。个预定义数据类型是GB/T12991中指定的一种数据类型,因而它由SQL实现提供。虽然定义预定义数据类型时要求(或允许)用户提供相关参数(例如一个数的精度),但它依然是预定义的。一个预定义数据类型是原子的。原子类型是指其值不能由其他数据类型的值构成的数据类型。虽然存在某些操作(SUBSTRING、EXTRACT)可以从一个字符串或一个日期时间值中提取一部分,但这6
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。