Impala – 插入语句

Impala – 插入语句


ImpalaINSERT语句有两个子句 – intooverwrite带有into子句的Insert 语句用于将新记录添加到数据库中的现有表中。

句法

INSERT语句有两种基本语法,如下所示 –

插入 table_name (column1, column2, column3,...columnN)

值(值1,值2,值3,...值N);

此处,column1、column2、…columnN 是表中要插入数据的列的名称。

您也可以在不指定列名的情况下添加值,但为此您需要确保值的顺序与表中的列顺序相同,如下所示。

Insert into table_name values (value1, value2, value2);

CREATE TABLE 是告诉数据库系统创建新表的关键字。表的唯一名称或标识符遵循 CREATE TABLE 语句。您可以选择指定database_nametable_name

例子

假设我们在 Impala 中创建了一个名为student的表,如下所示。

create table employee (Id INT, name STRING, age INT,address STRING, salary BIGINT);

以下是在名为employee的表中创建记录的示例

[quickstart.cloudera:21000] > insert into employee 
(ID,NAME,AGE,ADDRESS,SALARY)VALUES (1, 'Ramesh', 32, 'Ahmedabad', 20000 );

在执行上述语句时,一条记录被插入到名为employee的表中,显示以下消息。

Query: insert into employee (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh',
   32, 'Ahmedabad', 20000 ) 
Inserted 1 row(s) in 1.32s

您可以插入另一条记录而不指定列名,如下所示。

[quickstart.cloudera:21000] > 插入员工值 (2, 'Khilan', 25, 
   '德里', 15000 );

在执行上述语句时,一条记录被插入到名为employee的表中,显示以下消息。

Query: insert into employee values (2, 'Khilan', 25, 'Delhi', 15000 ) 
Inserted 1 row(s) in 0.31s

您可以在员工表中插入更多记录,如下所示。

Insert into employee values (3, 'kaushik', 23, 'Kota', 30000 );

Insert into employee values (4, 'Chaitali', 25, 'Mumbai', 35000 );

Insert into employee values (5, 'Hardik', 27, 'Bhopal', 40000 );

Insert into employee values (6, 'Komal', 22, 'MP', 32000 );

插入值后,Impala 中员工表将如下所示。

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

覆盖表中的数据

我们可以使用 overwrite 子句覆盖表的记录。被覆盖的记录将从表中永久删除。以下是使用 overwrite 子句的语法。

Insert overwrite table_name values (value1, value2, value2);

例子

以下是使用子句overwrite的示例

[quickstart.cloudera:21000] > Insert overwrite employee values (1, 'Ram', 26, 
   'Vishakhapatnam', 37000 );

在执行上述查询时,这将使用显示以下消息的指定记录覆盖表数据。

Query: insert overwrite employee values (1, 'Ram', 26, 'Vishakhapatnam', 37000 ) 
Inserted 1 row(s) in 0.31s

在验证表时,您可以观察到表员工的所有记录都被新记录覆盖,如下所示。

+----+------+-----+---------------+--------+
| id | name | age | address       | salary |
+----+------+-----+---------------+--------+
| 1  | Ram  | 26  | Vishakhapatnam| 37000  |
+----+------+-----+---------------+--------+

使用 Hue 浏览器插入数据

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

插入数据

执行查询/语句后,这条记录被添加到表中。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁