Impala - SELECT 语句



Impala 的 **SELECT** 语句用于从数据库中的一个或多个表中获取数据。此查询以表格形式返回数据。

语法

以下是 Impala **select** 语句的语法。

SELECT column1, column2, columnN from table_name;

这里,column1、column2...是表的字段,您希望获取其值。如果您希望获取表中所有可用的字段,则可以使用以下语法:

SELECT * FROM table_name;

示例

假设我们在 Impala 中有一个名为 **customers** 的表,包含以下数据:

ID    NAME       AGE    ADDRESS      SALARY
---   -------    ---    ----------   -------
1     Ramesh     32     Ahmedabad    20000
2     Khilan     25     Delhi        15000
3     Hardik     27     Bhopal       40000
4     Chaitali   25     Mumbai       35000
5     kaushik    23     Kota         30000
6     Komal      22     Mp           32000

您可以使用 **select** 语句获取 **customers** 表中所有记录的 **id**、**name** 和 **age**,如下所示:

[quickstart.cloudera:21000] > select id, name, age from customers;

执行上述查询后,Impala 会从指定的表中获取所有记录的 id、name、age,并按如下所示显示它们。

Query: select id,name,age from customers

+----+----------+-----+
| id | name     | age |
| 1  | Ramesh   | 32  |
| 2  | Khilan   | 25  |
| 3  | Hardik   | 27  |
| 4  | Chaitali | 25  |
| 5  | kaushik  | 23  |
| 6  | Komal    | 22  |
+----+----------+-----+

Fetched 6 row(s) in 0.66s

您还可以使用 **select** 查询获取 **customers** 表中的 **所有** 记录,如下所示。

[quickstart.cloudera:21000] > select name, age from customers; 
Query: select * from customers

执行上述查询后,Impala 会从指定的表中获取并显示所有记录,如下所示。

+----+----------+-----+-----------+--------+
| id | name     | age | address   | salary |
+----+----------+-----+-----------+--------+
| 1  | Ramesh   | 32  | Ahmedabad | 20000  |
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 3  | Hardik   | 27  | Bhopal    | 40000  |
| 4  | Chaitali | 25  | Mumbai    | 35000  |
| 5  | kaushik  | 23  | Kota      | 30000  |
| 6  | Komal    | 22  | MP        | 32000  |
+----+----------+-----+-----------+--------+

Fetched 6 row(s) in 0.66s

使用 Hue 获取记录

打开 Impala 查询编辑器,并在其中键入 **select** 语句。然后单击执行按钮,如下面的屏幕截图所示。

Fetching Records

执行查询后,如果向下滚动并选择 **结果** 选项卡,您将看到指定表的记录列表,如下所示。

Fetching Records Result
广告