本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SELECT 陳述式查詢資料。
語法
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
關鍵字指定一或多個值的等式。它可以套用至分割區索引鍵和叢集資料欄。結果會依 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 查詢中使用IN運算符與SELECT語句。
排序結果
ORDER BY
子句指定傳回結果的排序順序。它需要資料欄名稱的清單以及每個資料欄的排序順序做為引數。您只能依子句的順序指定叢集資料欄。不允許使用非叢集資料欄。排序順序選項ASC
適用於遞增和遞DESC
減排序順序。如果省略排序順序,則會使用叢集資料欄的預設順序。如需可能的排序順序,請參閱ORDER BY在 Amazon Keyspaces 中訂購結果。
範例
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
ORDER BY
搭配 IN
關鍵字使用 時,結果會在頁面中排序。不支援使用停用分頁進行完整重新排序。
TOKEN
您可以將 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 函式
只有在資料表使用用戶端時間戳記時,您才能使用 WRITETIME
函數搭配 SELECT
陳述式來擷取存放為資料欄值中繼資料的時間戳記。如需詳細資訊,請參閱Amazon Keyspaces 間中的客戶端時間戳。
SELECT WRITETIME(
my_column
) frommy_table
;
該WRITETIME
函數不能用於多儲存格資料欄,例如集合。
注意
為了與已建立的 Cassandra 驅動程式行為相容,當您透過 Cassandra 驅動程式和開發人員工具使用 Cassandra 查詢語言 (CQL) API 呼叫對系統資料表執行操作時,不會強制執行標籤型授權政策。如需詳細資訊,請參閱 根據標籤的 Amazon Keyspaces 資源存取。