- 表具体说明
- Impala - 创建表语句
- Impala - 插入语句
- Impala - 选择语句
- Impala - 描述语句
- Impala - 更改表
- Impala - 删除一个表
- Impala - 截断表
- Impala - 显示表
- Impala - 创建视图
- Impala - 改变视图
- Impala - 放下视图
- Impala - 条款
- Impala - 按条款排序
- Impala - Group By 子句
- Impala - 拥有子句
- Impala - 限制条款
- Impala - 抵消条款
- Impala - 联合条款
- Impala - 带子句
- Impala - 独特的运算符
- 黑斑羚有用的资源
- Impala - 快速指南
- Impala - 有用的资源
- Impala - 讨论
Impala - 插入语句
Impala 的INSERT语句有两个子句 - into和overwrite。带into子句的 Insert 语句用于将新记录添加到数据库中的现有表中。
句法
INSERT语句有两种基本语法,如下所示 -
插入表名(列 1、列 2、列 3、...列 N) 值(值1、值2、值3、...值N);
这里,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);
以下是在名为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 子句覆盖表的记录。被覆盖的记录将从表中永久删除。以下是使用覆盖子句的语法。
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 查询编辑器并在其中输入插入语句。然后单击执行按钮,如下图所示。
执行查询/语句后,该记录将添加到表中。