翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SELECT ステートメントを使用してデータのクエリを行います。
[Syntax] (構文)
select_statement ::= SELECT [ JSON ] ( select_clause | '*' ) FROM table_name [ WHERE 'where_clause' ] [ ORDER BY 'ordering_clause' ] [ LIMIT (integer | bind_marker) ] [ ALLOW FILTERING ] select_clause ::= selector [ AS identifier ] ( ',' selector [ AS identifier ] ) selector ::= column_name | term | CAST '(' selector AS cql_type ')' | function_name '(' [ selector ( ',' selector )* ] ')' where_clause ::= relation ( AND relation )* relation ::= column_name operator term TOKEN operator ::= '=' | '<' | '>' | '<=' | '>=' | IN | CONTAINS | CONTAINS KEY ordering_clause ::= column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
例
SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
エンコードされた JSON データ型が Amazon Keyspaces のデータ型にマッピングされるテーブルについては、「Amazon Keyspaces データ型の JSON エンコード」を参照してください。
IN
キーワードの使用
IN
キーワードは、1 つ以上の値が等しいことを指定します。パーティションキーとクラスタリング列に適用できます。結果は SELECT
ステートメントにキーが示されている順序で返されます。
例
SELECT * from mykeyspace.mytable
WHERE primary.key1 IN (1,2) and clustering.key1 = 2;
SELECT * from mykeyspace.mytable
WHERE primary.key1 IN (1,2) and clustering.key1 <= 2;
SELECT * from mykeyspace.mytable
WHERE primary.key1 = 1 and clustering.key1 IN (1, 2);
SELECT * from mykeyspace.mytable
WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;
IN
キーワードと Amazon Keyspaces がステートメントを処理する方法の詳細については、Amazon Keyspaces でクエリの SELECT ステートメントで IN 演算子を使用する を参照してください。
結果の順序付け
ORDER BY
句は、返された結果のソート順序を指定するものです。列名のリストと各列のソート順序を引数として受け取ります。順序句のクラスタリング列のみ指定できます。非クラスタリング列は許容されません。ソート順序のオプションは、昇順の ASC
と降順の DESC
です。ソート順序を省略すると、クラスタリング列のデフォルトの順序が使用されます。可能なソート順序については、「Amazon Keyspaces で ORDER BY を使用して結果を並べ替える」を参照してください。
例
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
IN
キーワードと一緒に ORDER BY
を使用すると、結果はページ内で順序付けられます。ページ分割を無効にした状態での完全な並べ替えはサポートしていません。
トークン
TOKEN
関数は、SELECT
節と WHERE
節の PARTITION KEY
列に適用できます。TOKEN
関数を使用すると、Amazon Keyspaces は PARTITION KEY
の値ではなくの PARTITION_KEY
マッピングされたトークン値に基づいて行を返します。
TOKEN
キーワードではリレーションはサポートしていません。IN
例
SELECT TOKEN(id) from
my_table
; SELECT TOKEN(id) frommy_table
WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;
TTL 関数
TTL
関数を SELECT
ステートメントと共に使用すると、列に保存されている有効期限を秒単位で取得できます。どの TTL
値も設定されていない場合、関数は null
を返します。
例
SELECT TTL(my_column
) from my_table
;
TTL
関数は、コレクションなどのマルチセル列には使用できません。
WRITETIME 関数
SELECT
ステートメントで WRITETIME
関数を使用して、列の値のメタデータとして保存されているタイムスタンプを取得できるのは、テーブルがクライアント側のタイムスタンプを使用している場合だけです。詳細については、「Amazon Keyspaces でのクライアント側のタイムスタンプ」を参照してください。
SELECT WRITETIME(
my_column
) frommy_table
;
WRITETIME
関数は、コレクションなどのマルチセル列には使用できません。
注記
確立されている Cassandra ドライバーの動作との互換性を保つため、Cassandra ドライバーや開発者ツールから Cassandra クエリーランゲージ (CQL) API コールでシステムテーブルを操作するとき、タグベースの承認ポリシーは適用されません。詳細については、「 タグに基いた Amazon Keyspaces リソースアクセス」を参照してください。