添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
TigerGraph文档
2.4
Search
K

数据类型

本章介绍GSQL图形查询语言原生支持的数据类型。 在查询中,大多数数据对象都是以下三者之一:
  1. 1.
    查询的输入参数
  2. 2.
    遍历图形时遇到的顶点,边和它们的属性
  3. 3.
    在查询中定义的变量, 它们用于协助查询的计算工作。
本节介绍了语法定义的EBNF范式:
EBNF范式的数据类型
lowercase : = [ a - z ]
uppercase : = [ A - Z ]
letter : = lowercase | uppercase
digit : = [ 0 - 9 ]
integer : = [ "-" ] digit +
real : = [ "-" ]( "." digit + ) | [ "-" ]( digit + "." digit * )
numeric : = integer | real
stringLiteral : = '"' [ ~ [ "] | '\\' ('" ' | '\\' )] * '"'
name : = ( letter | "_" ) [ letter | digit | "_" ] * // Can be a single "_" or start with "_"
type : = baseType | name | accumType | STRING COMPRESS
baseType : = INT
| UINT
| FLOAT
| DOUBLE
| STRING
| BOOL
| VERTEX [ "<" name ">" ]
| EDGE
| JSONOBJECT
| JSONARRAY
| DATETIME
filePath : = name | stringLiteral
typedef : = TYPEDEF TUPLE "<" tupleType ">" name
tupleType : = ( baseType name ) | ( name baseType ) [ "," ( baseType name ) | ( name baseType )] *
parameterType : = baseType
| [ SET | BAG ] "<" baseType ">"
| FILE

标识符

标识符语言元素实例的名字。 在GSQL图形查询语言中,标识符用于命名元素,例如查询,变量或用户定义函数。 在EBNF范式中,标识符称为名称(name)。 它可以是一系列字母,数字或下划线(“_”)但不支持其他标点符号。 初始字符只能是字母或下划线。
name (标识符)
name : = ( letter | "_" ) [ letter | digit | "_" ] *

类型的总览

不同类型的数据可以在不同的上下文中使用。 EBNF范式定义了几种数据类型。 最基本的称为基本类(baseType)。 其他独立的类型包括文件(FILE)和压缩字符串。 剩下的类型是由独立数据类型构建的复合数据类型,或其他类型的超集。 下面的表格详述了他们的定义和用途。
EBNF 字符
描述
实际中的例子
baseType
INT, UINT, FLOAT, DOUBLE, STRING,BOOL, DATETIME, VERTEX, EDGE, JSONOBJECT, 或JSONARRAY
• 全局变量
• 查询返回值
tupleType
baseType的序列
用户自定义元组
accumType
支持累加操作的专用数据类型
遍历一组顶点或边时,累积和聚合数据 (详见“查询语言规范-累加器”一章)
FILE
文件对象
全局的顺序数据对象,链接到文本文件
parameterType
一个 SET 或BAG 的baseType或文件对象
查询参数
STRING
COMPRESS
压缩字符串
当不同值的数量有限,可使STRING的存储空间更紧凑
elementType
baseType, 压缩字符串, 或标识符
大多数不同类型的容器累加器的元素: SetAccum, BagAccum,GroupByAccum, MapAccum 元素的键
type
baseType, 压缩字符串, 标识符或accumType
• ListAccum的元素, MapAccum 元素的值
• 局部变量

基本类

本查询语言支持以下基本类,它们可以在其范围内的任何位置声明或复制。 在定义全局变量,局部变量,查询返回值,参数,元组的一部分或容器累加器的元素时,可以使用任何这些基本类。 累加器则将在后续的章节中详细介绍。
BNF范式
baseType : = INT
| UINT
| FLOAT
| DOUBLE
| STRING
| BOOL
| VERTEX [ "<" name ">" ]
| EDGE
| JSONOBJECT
| JSONARRAY
| DATETIME
每种基本类的默认值如下表所示。 默认值是基本类变量的初始值(详见“变量类型”一章),或某些函数的默认返回值(详见“运算符,函数和表达式”一章)。
前七种类型(INT,UINT,FLOAT,DOUBLE,BOOL,STRING和DATETIME)与GSQL语言参考-第1部分的“ 属性数据类型 ”一章相同。
类型
默认值
INT, UINT, FLOAT, DOUBLE