关于GBase SQL 语言基础

一 数值  

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

1 .字符串 

字符串是多个字符组成的一个字符序列,由单引号“'”或双引号“"”字符 包围。 例如:'a string' 在一个字符串中,确定的序列具有特殊的含义,每个序列以反斜线符号“\” 开头,称为转义字符。这些符号是大小写敏感的。例如:“\b”被解释为一个退格,但是“\B”被 解释为“B”。 反斜线用来解释转义字符而不是被转义。 字符串中包含引号时,可以有下列几种写法: 字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''” 方式转义。 用户也可以继续使用在引号前加一个转义字符“\”来转义的方式。 字符串是用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对 待而且不必被重复或转义。

当写程序代码时,任何一个字符串都有可能包含这些特殊的字符,因此在 这些字符作为 SQL 语句中的数据传到 GBase 8a 服务器之前必须进行适当的转义。

2. 数字 

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

3 十六进制值

GBase 8a 支持十六进制数值。 在数字的上下文语境中,它们作为等价于整数使用。 在字符串的上下文语境中,它们作为一个字符串,每一对十六进制数字被 解释为对应 ASCII 码的字符。

4 布尔值

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

5 NULL 值

NULL 不区分大小写。 注意:NULL 值不同于数字类型的 0 或字符串类型的空串。

二 数据库、表、列和别名

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

1、除了表内注明的限制,标识符不可以包含 ASCII(0)或 ASCII(255)。数 据库、表和列名不应以空格结尾; 2、如果标识符是一个限制词或包含特殊字符,当用户使用它时,必须总 是用'引用它,比如:SELECT * FROM 'select'.id>100; 3、如果标识符长度超过最大长度限制,数据库、表、列、视图、存储过 程的命令将报错,而别名将会截断至 256 个字符进行显示。 GBase 8a 数据库支持的保留字,请参见附录部分的 GBase 8a 分析型数据库 保留字。 实际应用系统中,标识符不得使用 GBase 8a 的保留字,也不能包含特殊字 符。

三 标识符限定词

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

组合标识符如果需要引用则标识符的各部分都要各自引用,而不是把组合 标识符作为一个整体来引用。例如:`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 来指定引用哪个库表的列。

四 注释语法

GBase 8a 服务器支持三种注释风格。

# 到该行结束。-- 到该行结束。注意“--”(引导号)注释风格要求第二个引导号后至少跟 着一个空格(或者一个控制字符,例如,换行)。这个语法和标准的 SQL 注释 风格有点不同。 /*行中间或多个行*/。这个封闭的序列不需要在同一行表示,因此该语法支 持多行注释。

五  用户变量

GBase 8a 支持用户变量。用户变量的生命周期是会话级的,对其它会话不 可见。当用户退出时,此用户的所有用户变量会自动释放。 用户变量的写法是:@var_name。一个变量名可以由 a~z、A~Z、0~9、 下划线组成,必须以字母或下划线开头。 用户变量名大小写不敏感。 通过 SET 语法来定义并为变量赋值。 SET @var_name = expr [, @var_name = expr] ... “=”是赋值操作符。赋给每一个变量的 expr 值可以是整数、实数、字符 串、或 NULL。 通过 SELECT 语法查看用户变量的值。 SELECT @var_name [, @var_name] ...

感谢观看

Guess you like

Origin blog.csdn.net/weixin_62941622/article/details/121628685