本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:从亚马逊 Keyspaces 表中阅读
在教程:将数据插入并加载到 Amazon Keyspaces 表中一节中,您使用 SELECT 语句验证了已成功将数据添加到表中。在本节中,您可以细化使用 SELECT,以只显示特定列以及满足特定条件的行。
SELECT 语句的一般形式如下所示。
SELECT column_list FROM table_name [WHERE condition [ALLOW FILTERING]] ;
选择表中的所有数据
SELECT 语句最简单的形式是返回表中的所有数据。
在生产环境中,运行此命令通常不是最佳做法,该命令将返回表中的所有数据。
选择表的所有数据
-
运行以下 查询。
SELECT * FROM "myGSGKeyspace".employees_tbl ;将通配符 (
*) 用于column_list可选择所有列。
选择列的子集
查询列的子集
-
要仅检索
id、name和manager_id列,请运行以下查询。SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;输出将按照
SELECT语句中列出的顺序,仅包含指定的列。
选择行的子集
查询大型数据集时,您可能只需要满足特定条件的记录。为此,您可以在 SELECT 语句末尾追加一个 WHERE 子句。
查询行的子集
-
要仅检索 ID 为
'234-56-7890'的员工的记录,请运行以下查询。SELECT * FROM "myGSGKeyspace".employees_tbl WHERE id='234-56-7890' ;前面的
SELECT语句仅返回id为234-56-7890的行。
了解WHERE条款
WHERE 子句用于筛选数据,并仅返回满足指定条件的数据。指定的条件可以是简单条件或复合条件。
如何在 WHERE 子句中使用条件
-
一个简单的条件 — 单列。
WHERE column_name=value只要满足以下任何条件,便可以在
WHERE子句中使用简单条件:-
该列是表分区键中唯一的列。
-
在
WHERE子句中的条件后添加ALLOW FILTERING。请注意,使用
ALLOW FILTERING可能会导致性能不稳定,特别是对于多分区的大型表。
-
-
复合条件 — 通过连接的多个简单条件
AND.WHERE column_name1=value1 AND column_name2=value2 AND column_name3=value3...只要满足以下任何条件,便可以在
WHERE子句中使用复合条件:-
WHERE子句中的列与表分区键中的列完全匹配,不多也不少。 -
在
WHERE子句中的复合条件后添加ALLOW FILTERING,如下例所示。SELECT * FROM my_table WHERE col1=5 AND col2='Bob' ALLOW FILTERING ;请注意,使用
ALLOW FILTERING可能会导致性能不稳定,特别是对于多分区的大型表。
-
试试看
创建您自己的 CQL 查询,以从 employees_tbl 表中查找以下内容:
-
查找所有员工的
name、project和id。 -
查找实习生
Bob正在从事的项目(在输出中至少包括他的姓名、项目和角色)。 -
高级:创建应用程序,以查找与经理相同的所有员工
Bob实习生。提示:这可能需要多个查询。 -
高级:创建应用程序,以查找从事项目的所有员工的选定列
NightFlight. 提示:解决此问题可能需要多个语句。