impala Insert語句

2018-01-03 16:51 更新

Impala的INSERT語句有兩個(gè)子句 - into和overwrite。 Insert語句with into子句用于將新記錄添加到數(shù)據(jù)庫(kù)中的現(xiàn)有表中。

語法

INSERT語句有兩種基本語法,如下所示:

insert into table_name (column1, column2, column3,...columnN)

values (value1, value2, value3,...valueN);

這里,column1,column2,... columnN是要插入數(shù)據(jù)的表中的列的名稱。

您還可以添加值而不指定列名,但是,您需要確保值的順序與表中的列的順序相同,如下所示。

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

CREATE TABLE是關(guān)鍵字,告訴數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)建一個(gè)新表。 表的唯一名稱或標(biāo)識(shí)符位于CREATE TABLE語句之后。 (可選)您可以指定database_name和table_name。

假設(shè)我們?cè)贗mpala中創(chuàng)建了一個(gè)名為student的表,如下所示。

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

以下是在名為employee的表中創(chuàng)建記錄的示例。

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

在執(zhí)行上述語句時(shí),會(huì)將記錄插入到名為employee的表中,并顯示以下消息。

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

您可以插入另一個(gè)記錄,而不指定列名稱,如下所示。

[quickstart.cloudera:21000] > insert into employee values (2, 'Khilan', 25, 
   'Delhi', 15000 );

在執(zhí)行上述語句時(shí),會(huì)將記錄插入到名為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中的employee表將如下所示。

+----+----------+-----+-----------+--------+
| 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  |
+----+----------+-----+-----------+--------+

覆蓋表中的數(shù)據(jù)

我們可以使用覆蓋子句覆蓋表的記錄。 覆蓋的記錄將從表中永久刪除。 以下是使用overwrite子句的語法。

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

以下是使用子句覆蓋的示例。

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

在執(zhí)行上面的查詢時(shí),這將覆蓋表數(shù)據(jù),指定的記錄顯示以下消息。

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

在驗(yàn)證表時(shí),您可以觀察到表employee的所有記錄都被新記錄覆蓋,如下所示。

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

使用Hue瀏覽器插入數(shù)據(jù)

打開Impala查詢編輯器并鍵入其中的insert語句。 然后單擊執(zhí)行按鈕,如下面的屏幕截圖所示。

插入數(shù)據(jù)

執(zhí)行查詢/語句后,此記錄將添加到表中。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)