Impala的 INSERT 语句有两个子句 : 进入和覆盖.带有 into 子句的Insert语句用于将新记录添加到数据库中的现有表中.
那里 INSERT 语句的两个基本语法如下 :
insert into table_name(column1,column2,column3,. ..columnN) values(value1,value2,value3,... valueN);
这里,column1,column2,... columnN是表中要插入数据的列的名称.
您也可以在不指定列名的情况下添加值,但为此您需要确保值的顺序与表中的列的顺序相同,如下所示.
Insert into table_name values (value1, value2, value2);
CREATE TABLE是告诉数据库系统创建新表的关键字.表的唯一名称或标识符遵循CREATE TABLE语句.您可以选择指定 database_name 以及 table_name .
假设我们有在Impala中创建了一个名为 student 的表,如下所示.
create table employee (Id INT, name STRING, age INT,address STRING, salary BIGINT);
以下是在名为员工的表格中创建记录的示例.
[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] > insert into employee values (2, 'Khilan', 25, 'Delhi', 15000 );
执行上述语句时,会在名为 employee 的表中插入一条记录,显示以下消息.
Query: insert into employee values (2, 'Khilan', 25, 'Delhi', 15000 ) Inserted 1 row(s) in 0.31s
您可以在employee表中插入更多记录,如下所示.
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);
以下是使用覆盖子句的示例.
[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 | +----+------+-----+---------------+--------+
打开Impala查询编辑器并在其中键入 insert 语句.然后单击执行按钮,如以下屏幕截图所示.
执行查询/语句后,该记录将添加到表中.