Amazon Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Glacier Select SQL 参考

本部分介绍 Amazon Glacier select 的 SQL 参考。

SELECT 命令

Amazon Glacier select 仅支持 SELECT SQL 命令。SELECT 支持以下 ANSI 标准子句:

  • SELECT list

  • FROM 子句

  • WHERE 子句

注意

Amazon Glacier select 查询目前不支持子查询或联接。

FROM 子句

Amazon Glacier select 支持以下形式的 FROM 子句:

FROM table_name FROM table_name alias FROM table_name AS alias

其中 table_nameARCHIVEOBJECT 之一,指代正被查询的档案。对于来自传统关系数据库的用户,可以将其视为一个数据库架构,其中包含两个视图 (分别命名为 ARCHIVEOBJECT)。

按照标准 SQL,FROM 子句将会创建在 WHERE 子句中筛选并在 SELECT 列表中投影的行。

SELECT 和 WHERE 子句中的属性访问

SELECTWHERE 子句可以引用列名为 _N 的行的第 N 列,其中 N 是列位置。位置计数从 1 开始。例如,第一列名为 _1,第二列名为 _2。

列可以称为 _N 或别名._N。例如,_2 和 myAlias._2 都是有效的,都可用于引用 SELECT 列表中的列和 WHERE 子句。

标量表达式

WHERE 子句和 SELECT 列表中,您可以使用 SQL 标量表达式 (返回标量值的表达式)。它们具有以下形式:

  • literal

    SQL 文本。

  • column_reference

    column_namealias.column_name 形式引用列。

  • unary_op expression

    其中 unary_op 一元是一个 SQL 一元运算符。

  • expression binary_op expression

    其中 binary_op 是一个 SQL 二元运算符。

  • func_name

    其中 func_name 是要调用的标量函数的名称。

  • expression [ NOT ] BETWEEN expression AND expression

  • expression LIKE expression [ ESCAPE expression ]

WHERE 子句

WHERE 子句遵循以下语法:

WHERE condition

WHERE 子句根据 condition 筛选行。condition 是具有布尔结果的表达式。只有 condition 计算结果为 TRUE 的行才会在结果中返回。

SELECT 列表

SELECT 列表指定希望查询返回的列、函数和表达式。列表表示查询的输出。

SELECT * SELECT projection [ AS column_alias | column_alias ] [, ...]

第一个带 * (星号) 的表单按原样返回每个传递 WHERE 子句的行。第二个表单使用用户定义的输出标量表达式投影 为每列创建一行。

受支持数据类型

Amazon Glacier select 支持以下一部分基元数据类型。

名称 描述 必需
bool TRUE 或 FALSE FALSE
int 范围 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 中的 8 字节有符号整数。 100000
字符串 UTF8 编码的长度可变的字符串。默认限制为 1 字符。最大字符限制为 2,147,483,647。 'xyz'
float 8 字节浮点数。 CAST(0.456 AS FLOAT)
decimal

Base-10 数字,最大精度为 38 (即最大有效位数),取值范围在 -231 到 231-1 之间 (即以 10 为底的指数)。

123.456
timestamp

时间戳表示特定的时刻,始终包括本地偏移,并且能够支持任意精度。

在文本格式中,时间戳遵循日期和时间格式的 W3C 注释,但它们必须以文本“T”结尾 (如果不是最低限度全天精度)。允许使用小数秒,具有至少一位精度,以及无限的最大值。本地时间偏移可以表示为与 UTC 相比的小时:分钟偏移量,或表示为“Z”以指示 UTC 的本地时间。它们在具有时间的时间戳上是必需的,在日期值上是不允许的。

CAST('2007-04-05T14:30Z' AS TIMESTAMP)

数据类型转换

一般规则是遵循 CAST 函数 (如果已定义)。如果没有定义,请遵循下一部分中的转换规则。有关 CAST 的更多信息,请参阅 SQL 函数

数据类型转换规则

以下是数据类型转换规则:所有输入数据都被视为字符串。必要时,必须将其转换为相关的数据类型。

运算符

支持以下运算符。

逻辑运算符

  • AND

  • NOT

  • OR

比较运算符

  • <

  • >

  • <=

  • >=

  • =

  • <>

  • IN – Amazon Glacier select 对于一组固定的标量值仅支持 IN,例如:IN ('a', 'b', 'c')

  • BETWEEN

模式匹配运算符

  • LIKE

数学运算符

支持加法、减法、乘法、除法和取模。

  • +

  • -

  • *

  • %

运算符优先顺序

下表按降序显示运算符优先顺序。

运算符/元素 关联性 必需
- 一元减法
*、/、% 乘法、除法和取模
+、- 加法、减法
IN 设置成员资格
BETWEEN 范围包含
LIKE 字符串模式匹配
<> 小于、大于
= 等于、分配
NOT 逻辑非
AND 逻辑和
OR 逻辑或

SQL 函数

日期类型转换函数

  • CAST

CAST 函数将一种类型的实体 (如计算结果为单个值的表达式) 转换为另一种类型。

CAST (<expression> AS <data type>)

expression

一个或多个值、运算符和计算结果为值的 SQL 函数的组合。

数据类型

要将表达式转换到的目标数据类型,如 INT