@@ -25,32 +25,36 @@ INSERT { OVERWRITE | INTO } <table>
2525 }
2626```
2727
28- | 参数 | 描述 |
29- | -----------| ------------------------------------------------------------------------------ |
30- | OVERWRITE | 指示在插入之前是否应截断现有数据。 |
28+ | 参数 | 描述 |
29+ | -----------| -----------------------------------------------------------------------------|
30+ | OVERWRITE | 指示在插入之前是否应截断现有数据。 |
3131| VALUES | 允许直接插入特定值或列的默认值。 |
3232
33+ ## 重要说明
34+
35+ - 聚合函数、外部 UDF 和窗口函数在 ` VALUES(...) ` 表达式中是不允许的。
36+
3337## 示例
3438
3539### 示例-1:使用 OVERWRITE 插入值
3640
37- 在此示例中,INSERT OVERWRITE 语句用于截断 employee 表并插入新数据,从而将所有现有记录替换为 ID 为 100 的 employee 提供的值 。
41+ 在此示例中,INSERT OVERWRITE 语句用于截断 employee 表并插入新数据,将所有现有记录替换为 ID 为 100 的员工提供的值 。
3842
3943``` sql
4044CREATE TABLE employee (
4145 employee_id INT ,
4246 employee_name VARCHAR (50 )
4347);
4448
45- -- 向 employee 表中插入初始数据
49+ -- Inserting initial data into the employee table
4650INSERT INTO employee(employee_id, employee_name) VALUES
4751 (101 , ' John Doe' ),
4852 (102 , ' Jane Smith' );
4953
50- -- 使用 OVERWRITE 插入新数据
54+ -- Inserting new data with OVERWRITE
5155INSERT OVERWRITE employee VALUES (100 , ' John Johnson' );
5256
53- -- 显示 employee 表的内容
57+ -- Displaying the contents of the employee table
5458SELECT * FROM employee;
5559
5660┌────────────────────────────────────┐
@@ -62,30 +66,30 @@ SELECT * FROM employee;
6266
6367### 示例-2:插入查询结果
6468
65- 当插入 SELECT 语句的结果时,列的映射遵循它们在 SELECT 子句中的位置。因此,SELECT 语句中的列数必须等于或大于 INSERT 表中的列数。如果 SELECT 语句和 INSERT 表中列的数据类型不同,则会根据需要执行类型转换 。
69+ 当插入 SELECT 语句的结果时,列的映射遵循它们在 SELECT 子句中的位置。因此,SELECT 语句中的列数必须等于或大于 INSERT 表中的列数。如果 SELECT 语句和 INSERT 表中列的数据类型不同,将根据需要执行类型转换 。
6670
6771``` sql
68- -- 创建一个名为“ employee_info”的表,其中包含三列:“ employee_id”、“ employee_name”和“ department”
72+ -- Creating a table named ' employee_info' with three columns: ' employee_id', ' employee_name', and ' department'
6973CREATE TABLE employee_info (
7074 employee_id INT ,
7175 employee_name VARCHAR (50 ),
7276 department VARCHAR (50 )
7377);
7478
75- -- 向“ employee_info”表中插入一条记录
79+ -- Inserting a record into the ' employee_info' table
7680INSERT INTO employee_info VALUES (' 101' , ' John Doe' , ' Marketing' );
7781
78- -- 创建一个名为“ employee_data”的表,其中包含三列:“ID”、“ Name”和“ Dept”
82+ -- Creating a table named ' employee_data' with three columns: 'ID', ' Name', and ' Dept'
7983CREATE TABLE employee_data (
8084 ID INT ,
8185 Name VARCHAR (50 ),
8286 Dept VARCHAR (50 )
8387);
8488
85- -- 将数据从“ employee_info”插入到“ employee_data”中
89+ -- Inserting data from ' employee_info' into ' employee_data'
8690INSERT INTO employee_data SELECT * FROM employee_info;
8791
88- -- 显示“ employee_data”表的内容
92+ -- Displaying the contents of the ' employee_data' table
8993SELECT * FROM employee_data;
9094
9195┌───────────────────────────────────────────────────────┐
@@ -95,31 +99,31 @@ SELECT * FROM employee_data;
9599└───────────────────────────────────────────────────────┘
96100```
97101
98- 此示例演示如何创建一个名为“ sales_summary”的汇总表,用于存储每个产品的总销量和收入等汇总销售数据,方法是汇总 sales 表中的信息:
102+ 此示例演示如何创建一个名为 " sales_summary" 的摘要表,用于存储每个产品的聚合销售数据,例如总销售数量和收入,通过聚合 sales 表中的信息:
99103
100104``` sql
101- -- 创建一个用于销售数据的表
105+ -- Creating a table for sales data
102106CREATE TABLE sales (
103107 product_id INT ,
104108 quantity_sold INT ,
105109 revenue DECIMAL (10 , 2 )
106110);
107111
108- -- 插入一些示例销售数据
112+ -- Inserting some sample sales data
109113INSERT INTO sales (product_id, quantity_sold, revenue) VALUES
110114 (1 , 100 , 500 .00 ),
111115 (2 , 150 , 750 .00 ),
112116 (1 , 200 , 1000 .00 ),
113117 (3 , 50 , 250 .00 );
114118
115- -- 创建一个汇总表来存储汇总的销售数据
119+ -- Creating a summary table to store aggregated sales data
116120CREATE TABLE sales_summary (
117121 product_id INT ,
118122 total_quantity_sold INT ,
119123 total_revenue DECIMAL (10 , 2 )
120124);
121125
122- -- 将汇总的销售数据插入到汇总表中
126+ -- Inserting aggregated sales data into the summary table
123127INSERT INTO sales_summary (product_id, total_quantity_sold, total_revenue)
124128SELECT
125129 product_id,
130134GROUP BY
131135 product_id;
132136
133- -- 显示 sales_summary 表的内容
137+ -- Displaying the contents of the sales_summary table
134138SELECT * FROM sales_summary;
135139
136140┌──────────────────────────────────────────────────────────────────┐
@@ -144,26 +148,26 @@ SELECT * FROM sales_summary;
144148
145149### 示例-3:插入默认值
146150
147- 此示例演示如何创建一个名为“ staff_records” 的表,并为部门和状态等列设置默认值。然后插入数据,展示默认值的使用。
151+ 此示例说明如何创建一个名为 " staff_records" 的表,并为部门和状态等列设置默认值。然后插入数据,展示默认值的使用。
148152
149153``` sql
150- -- 创建一个“ staff_records”表,其中包含“ employee_id”、“ department”、“ salary”和“ status”列,并带有默认值
154+ -- Creating a table ' staff_records' with columns ' employee_id', ' department', ' salary', and ' status' with default values
151155CREATE TABLE staff_records (
152156 employee_id INT NULL ,
153157 department VARCHAR (50 ) DEFAULT ' HR' ,
154158 salary FLOAT,
155159 status VARCHAR (10 ) DEFAULT ' Active'
156160);
157161
158- -- 将数据插入到带有默认值的“ staff_records”中
162+ -- Inserting data into ' staff_records' with default values
159163INSERT INTO staff_records
160164VALUES
161165 (DEFAULT, DEFAULT, DEFAULT, DEFAULT),
162166 (101 , DEFAULT, 50000 .00 , DEFAULT),
163167 (102 , ' Finance' , 60000 .00 , ' Inactive' ),
164168 (103 , ' Marketing' , 70000 .00 , ' Active' );
165169
166- -- 显示“ staff_records”表的内容
170+ -- Displaying the contents of the ' staff_records' table
167171SELECT * FROM staff_records;
168172
169173┌───────────────────────────────────────────────────────────────────────────┐
@@ -176,9 +180,9 @@ SELECT * FROM staff_records;
176180└───────────────────────────────────────────────────────────────────────────┘
177181```
178182
179- ### 示例-4:使用 Stage 文件插入
183+ ### 示例-4:从 Stage 文件插入
180184
181- 通过 Databend,您可以使用 INSERT INTO 语句从 Stage 文件将数据插入到表中。这是通过 Databend 的[ 查询 Stage 文件] ( /guides/load-data/transform/querying-stage ) 的能力实现的,随后将查询结果合并到表中 。
185+ Databend 允许您使用 INSERT INTO 语句从 Stage 文件将数据插入到表中。这是通过 Databend 的 [ 查询 Stage 文件] ( /guides/load-data/transform/querying-stage ) 的能力,然后将查询结果合并到表中来实现的 。
182186
1831871 . 创建一个名为 ` sample ` 的表:
184188
@@ -194,7 +198,7 @@ CREATE TABLE sample
194198
1951992 . 使用示例数据设置内部 Stage
196200
197- 我们将建立一个名为 ` mystage ` 的内部 Stage,然后使用示例数据填充它 。
201+ 我们将建立一个名为 ` mystage ` 的内部 Stage,然后用示例数据填充它 。
198202
199203``` sql
200204CREATE STAGE mystage;
@@ -215,10 +219,10 @@ FROM
215219FILE_FORMAT = (TYPE = PARQUET);
216220```
217221
218- 3 . 使用 ` INSERT INTO ` 从 Stage Parquet 文件插入数据
222+ 3 . 使用 ` INSERT INTO ` 从 Stage 的 Parquet 文件插入数据
219223
220224::: tip
221- 您可以使用 [ COPY INTO] ( dml-copy-into-table.md ) 命令中提供的 FILE_FORMAT 和 COPY_OPTIONS 指定文件格式和各种复制相关设置 。当 ` purge ` 设置为 ` true ` 时,只有在数据更新成功后才会删除原始文件。
225+ 您可以使用 [ COPY INTO] ( dml-copy-into-table.md ) 命令中提供的 FILE_FORMAT 和 COPY_OPTIONS 指定文件格式和各种与复制相关的设置 。当 ` purge ` 设置为 ` true ` 时,只有在数据更新成功后才会删除原始文件。
222226:::
223227
224228``` sql
0 commit comments