教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

GBase 8a学习总结(2)

来源:网络收集 时间:2026-02-25
导读: 项目设计方案 08:00:01 TIMESTAMP 使用限制: 00:59:59 HH:MI:SS 以下限制说明,是针对TIMESTAMP 数据列自动更新时的场景: 1. 在一张表中,只能自动更新表中第一个出现的TIMESTAMP 列,并且必 须使用DEFAULT CURRE

项目设计方案

08:00:01 TIMESTAMP 使用限制:

00:59:59 HH:MI:SS 以下限制说明,是针对TIMESTAMP 数据列自动更新时的场景:

1. 在一张表中,只能自动更新表中第一个出现的TIMESTAMP 列,并且必 须使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 来定义。

2. 在一张表中,使用DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP 来指定TIMESTAMP 列自动更新时,只能使用一次, 且用于第一个TIMESTAMP 列。

3. 从不同节点发起的SQL 语句,TIMESTAMP 列更新的时间为发起节点的 本地时间;如果从不同的发起点发起SQL,而各个节点的本地时间又 不同步,则无法保证TIMESTAMP 列更新值一致。

1.2 SQL语言基础

本章对GBase 8a MPP Cluster 的SQL 语句的下列元素进行讨论: 数值,例如字符串和数字; 标识符,比如表和列名字; 用户和系统变量; 注释。 1.2.1

数值

这部分主要介绍在GBase 8a MPP Cluster 中使用的数值。包括字符串,数字,十六进制值,布尔值和NULL。 1.2.1.1 字符串

字符串是多个字符组成的一个字符序列,由单引号?'?或双引号?\?字符包围。 例如:'a string'

在一个字符串中,确定的序列具有特殊的含义,每个序列以反斜线符号?\\?开头,称为转义字符。GBase 8a MPP Cluster 识别下列转义字符: 转义字符 \\0 描述 ASCII 0 (NUL)字符。 4

项目设计方案

\\’ \\” \\b \\n \\r \\t \\\\ ASCII 39 单引号?'?字符。 ASCII 34 双引号?\?字符。 ASCII 8 退格符。 ASCII 10 换行符。 ASCII 13 回车符。 ASCII 9 制表符(TAB)。 ASCII 92 反斜线?\\?字符。 如果用户想要把二进制数据插入到BLOB 字段中,下列字符必须由转义序列表

示: 字符 NUL 描述 NUL byte (ASCII 0)。需要用?\\0?(一个反斜线和一个ASCII?0?字符)表示。 \\ ’ ” 反斜线(ASCII 92)。需要用?\\\\?表示。 单引号(ASCII 39)。需要用?\\'?表示。 双引号(ASCII 34)。需要用?\\\?表示。 1.2.1.2 数字

整数被表示为一个数字序列。浮点数使用?.?作为一个十进制数的分隔符。这两个数字类型可以前置?-?以表示一个负值。

有效整数的示例: 1221、0、-32 有效浮点数的示例:

-32032.6809E+10、148.00E+13 1.2.1.3 十六进制值

GBase 8a MPP Cluster 支持十六进制数值。 在数字的上下文语境中,它们作为等价于整数使用。

在字符串的上下文语境中,它们作为一个字符串,每一对十六进制数字被解释为对应ASCII 码的字符。

十六进制转字符,表达式?x'hexstring'?是基于标准SQL 的,表达式0x 是基于ODBC 的。二者是等价的。使用HEX()函数可以将一个字符串或数值转换为一

5

项目设计方案

个十六进制格式的字符串。 1.2.1.4 布尔值

常量TURE 相当于1,而常量FALSE 相当于0。 常量的名字对大小写不敏感。

示例1:查询TRUE 和FALSE 对应的值。

gbase> SELECT TRUE, true, FALSE, false FROM t; +------+------+-------+-------+ | TRUE | TRUE | FALSE | FALSE | +------+------+-------+-------+ | 1 | 1 | 0 | 0 | +------+------+-------+-------+ 1 row in set 1.2.1.5 NULL值

NULL 不区分大小写。

注意:NULL 值不同于数字类型的0 或字符串类型的空串。 1.2.2

数据库、表、列和别名

数据库、表、列和别名等都是标识符,这部分描述GBase 8a MPP Cluster中标识符允许的语法规则。

下面的表描述了对于每一个类型标识符允许的最大长度和可使用的字符。 标识符 数据库 最大长度(字符) 允许的字符 52 a~z、A~Z、0~9、下划线,必须以字母或下划线开头。 表 52 a~z、A~Z、0~9、下划线,必须以字母或下划线开头。 视图 52 a~z、A~Z、0~9、下划线,必须以字母或下划线开头。 列 52 a~z、A~Z、0~9、下划线,必须以字母或下划线开头。 别名 52 a~z、A~Z、0~9、下划线,必须以字母或下6

项目设计方案

划线开头。 存储过程 52 a~z、A~Z、0~9、下划线,必须以字母或下划线开头。 实际应用系统中,标识符不得使用GBase 8a MPP Cluster 的保留字,也不能包含特殊字符。 1.2.3

标识符限定词

GBase 8a MPP Cluster 允许名称由一个或多个标识符组成。组合名称的各个组成成分应该用英文句号字符?.?分割开。组合名称的开始部分做为限定词来使用,它影响了上下文中后面的标识符的解释。

在GBase 8a MPP Cluster 中,用户可以使用下列表格中的任一种方式引用一个列: 列引用 col_name 含义 列col_name来自查询所用的任何一个表中对应字段。 table_name.col_name 列col_name来自当前数据库中的表table_name。 database_name.table_name.col_name 列col_name来自数据库database_name中的表table_name。 `column_name` 该字段是一个关键词或包含特殊字符。 组合标识符如果需要引用则标识符的各部分都要各自引用,而不是把组合标识符作为一个整体来引用。例如:`gs-table`.`gs-column`合法, whereas`gs-table.gs-column`不合法。

在一条语句的列引用中,不需要明确指定一个table_name 或database_name.table_name 前缀,除非这个引用存在二义性。例如,假设表t1和t2 均包含一个字段c,当用一个使用了t1 和t2 的SELECT 检索c 时,在这种情况下,字段c 存在二义性,因为它在这个语句所使用的表中不是唯一的,因而必须通过写出t1.c 或t2.c 来指明用户所需的是哪个表。同样的,如果从数据库db1 的表t 和数据库db2 的表t 中检索,用户必须用db1.t.col_name和db2.t.col_name 来指定引用哪个库表的列。

7

项目设计方案

1.2.4 注释语法

GBase 8a MPP Cluster 支持三种注释风格。 # 到该行结束。

-- 到该行结束。注意?--?(引导号)注释风格要求第二个引导号后至少跟着一个空格(或者一个控制字符例如换行)。这个语法和标准的SQL 注释风格有点不同。

/*行中间或多个行*/。这个封闭的序列不一定在同一行表示,因此该语法允许多行注释。 1.2.5

用户变量

GBase 8a MPP Cluster 支持用户变量。用户变量的生命周期是会话级的,对其它会话不可见。当用户退出时,此用户的所有用户变量会自动释放。

用户变量的写法是:@var_name。一个变量名可以由a~z、A~Z、0~9、下划线组成,必须以字母或下划线开头。

用户变量名大小写不敏感。

通过SET 语法来定义并为变量赋值。

SET @var_name = expr [, @var_name = expr] ...

?=?是赋值操作符。赋给每一个变量的expr 值可以是整数、实数、字符串、或NULL。

通过SELECT 语法查看用户变量的值。 SELECT @var_name [, @var_name] ... 示例1:使用SET 语句为变量赋值。 gbase> SET @t1='abc',@t2=null,@t3=4; Query OK, 0 rows affected gbase> SELECT @t1,@t2,@t3; +------+------+------+ | @t1 | @t2 | @t3 | +------+------+------+ | abc | NULL | 4 | +------+------+------+

8

…… 此处隐藏:1953字,全部文档内容请下载后查看。喜欢就下载吧 ……
GBase 8a学习总结(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/403042.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)