Movatterモバイル変換


[0]ホーム

URL:


SELECT command - Amazon Simple Storage Service
DocumentationAmazon Simple Storage Service (S3)User Guide
SELECT listFROM clauseWHERE clauseLIMIT clauseAttribute accessCase sensitivity of headerand attribute namesUsing reserved keywords asuser-defined termsScalar expressions

SELECT command

Amazon S3 Select supports only theSELECT SQL command. The following ANSIstandard clauses are supported forSELECT:

  • SELECT list

  • FROM clause

  • WHERE clause

  • LIMIT clause

SELECT list

TheSELECT list names the columns, functions, and expressions thatyou want the query to return. The list represents the output of the query.

SELECT *SELECTprojection1 AScolumn_alias_1,projection2 AScolumn_alias_2

The first form ofSELECT with the* (asterisk) returns every rowthat passed theWHERE clause, as-is. The second form ofSELECT creates a row with user-defined output scalar expressionsprojection1 andprojection2 for eachcolumn.

FROM clause

Amazon S3 Select supports the following forms of theFROM clause:

FROMtable_nameFROMtable_name aliasFROMtable_name ASalias

In each form of theFROM clause,table_name is theS3Object that's being queried. Users coming from traditionalrelational databases can think of this as a database schema that contains multipleviews over a table.

Following standard SQL, theFROM clause creates rows that arefiltered in theWHERE clause and projected in theSELECTlist.

For JSON objects that are stored in Amazon S3 Select, you can also use the followingforms of theFROM clause:

FROM S3Object[*].pathFROM S3Object[*].path aliasFROM S3Object[*].path ASalias

Using this form of theFROM clause, you can select from arrays or objectswithin a JSON object. You can specifypath by using one of the followingforms:

Examples:

Example #1

This example shows results when using the following dataset and query:

{ "Rules": [{"id": "1"},{"expr": "y > x"},{"id": "2", "expr": "z = DEBUG"} ]}{ "created": "June 27", "modified": "July 6" }
SELECT id FROM S3Object[*].Rules[*].id
{"id":"1"}{}{"id":"2"}{}

Amazon S3 Select produces each result for the following reasons:

If you don't want Amazon S3 Select to return empty records when it doesn't find amatch, you can test for the valueMISSING. The following query returnsthe same results as the previous query, but with the empty values omitted:

SELECT id FROM S3Object[*].Rules[*].id WHERE id IS NOT MISSING
{"id":"1"}{"id":"2"}

Example #2

This example shows results when using the following dataset and queries:

{ "created": "936864000", "dir_name": "important_docs", "files": [{ "name": "." },{ "name": ".." },{ "name": ".aws" },{ "name": "downloads" } ], "owner": "Amazon S3" }{ "created": "936864000", "dir_name": "other_docs", "files": [{ "name": "." },{ "name": ".." },{ "name": "my stuff" },{ "name": "backup" } ], "owner": "User" }
SELECT d.dir_name, d.files FROM S3Object[*] d
{"dir_name":"important_docs","files":[{"name":"."},{"name":".."},{"name":".aws"},{"name":"downloads"}]}{"dir_name":"other_docs","files":[{"name":"."},{"name":".."},{"name":"my stuff"},{"name":"backup"}]}
SELECT _1.dir_name, _1.owner FROM S3Object[*]
{"dir_name":"important_docs","owner":"Amazon S3"}{"dir_name":"other_docs","owner":"User"}

WHERE clause

TheWHERE clause follows this syntax:

WHEREcondition

TheWHERE clause filters rows based on thecondition. A condition is anexpression that has a Boolean result. Only rows for which the condition evaluates toTRUE are returned in the result.

LIMIT clause

TheLIMIT clause follows this syntax:

LIMITnumber

TheLIMIT clause limits the number of records that you want the query toreturn based onnumber.

Attribute access

TheSELECT andWHERE clauses can refer to record data by usingone of the methods in the following sections, depending on whether the file that isbeing queried is in CSV or JSON format.

CSV

JSON

Case sensitivity of headerand attribute names

With Amazon S3 Select, you can use double quotation marks to indicate that column headers (forCSV objects) and attributes (for JSON objects) are case sensitive. Without doublequotation marks, object headers and attributes are case insensitive. An error isthrown in cases of ambiguity.

The following examples are either 1) Amazon S3 objects in CSV format with the specified columnheaders, and withFileHeaderInfo set to"Use" for thequery request; or 2) Amazon S3 objects in JSON format with the specifiedattributes.

Example #1: The object being queried has the header or attributeNAME.

Example #2: The Amazon S3 object being queried has one header or attributewithNAME and another header or attribute withname.

Using reserved keywords asuser-defined terms

Amazon S3 Select has a set of reserved keywords that are needed to run the SQL expressions usedto query object content. Reserved keywords include function names, data types,operators, and so on. In some cases, user-defined terms, such as the column headers(for CSV files) or attributes (for JSON objects), might clash with a reservedkeyword. When this happens, you must use double quotation marks to indicate that youare intentionally using a user-defined term that clashes with a reserved keyword.Otherwise a 400 parse error will result.

For the full list of reserved keywords, seeReserved keywords.

The following example is either 1) an Amazon S3 object in CSV format with the specified columnheaders, withFileHeaderInfo set to"Use" for the queryrequest, or 2) an Amazon S3 object in JSON format with the specified attributes.

Example: The object being queried has a header or attribute namedCAST, which is a reserved keyword.

Scalar expressions

Within theWHERE clause and theSELECT list, you canhave SQLscalar expressions, which areexpressions that return scalar values. They have the following form:

SQL Reference
Data types

[8]
ページ先頭

©2009-2025 Movatter.jp