Skip to content

Commit 727a404

Browse files
docs: fixed sql syntax errors and added new data export format (#2146)
1 parent 438527b commit 727a404

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

docs/zh/reference/sql/dql/SELECT_INTO_STATEMENT.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# SELECT INTO
2-
2+
`SELECT INTO OUTFILE`语句将表的查询结果导出为一个文件。
3+
```{note}
4+
[LOAD DATA INFILE](../dml/LOAD_DATA_STATEMENT.md) 语句与`SELECT INTO OUTFILE`互补,它用于从指定文件创建表以及加载数据到表中。
5+
```
36
## Syntax
47

58
```sql
@@ -18,22 +21,24 @@ SelectInfoOptionItem
1821
|'MODE' '=' string_literal
1922
```
2023

21-
`SELECT INTO OUTFILE`语句用户将表的查询结果导出为一个文件。 [`LOAD DATA INFILE`](../dml/LOAD_DATA_STATEMENT.md) 语句与`SELECT INTO OUTFILE`互补,它用于从指定文件创建表以及加载数据到表中。`SELECT INTO OUTFILE`分为三个部分。
24+
`SELECT INTO OUTFILE`分为三个部分。
2225

2326
- 第一部分是一个普通的SELECT语句,通过这个SELECT语句来查询所需要的数据;
2427
- 第二部分是`filePath`,定义将查询的记录导出到哪个文件中;
2528
- 第三部分是`SelectIntoOptionList`为可选选项,其可能的取值有:
2629

27-
| 配置项 | 类型 | 默认值 | 描述 |
28-
| ---------- | ------- | --------------- | ------------------------------------------------------------ |
29-
| delimiter | String | , | 列分隔符,默认为`,` |
30-
| header | Boolean | true | 是否包含表头, 默认为`true` |
31-
| null_value | String | null | NULL填充值,默认填充`"null"` |
32-
| format | String | csv | 输出文件格式,默认为`csv`。请补充一下其他的可选格式。 |
33-
| mode | String | error_if_exists | 输出模式:<br />`error_if_exists`: 表示若文件已经在则报错。<br />`overwrite`: 表示若文件已存在,数据将覆盖原文件内容。<br />`append`:表示若文件已存在,数据将追加到原文件后面。<br />不显示配置时,默认mode为`error_if_exists`|
34-
| quote | String | "" | 输出数据的包围字符串,字符串长度<=1。默认为"",表示输出数据包围字符串为空。当配置包围字符串时,将使用包围字符串包围一个field。例如,我们配置包围字符串为`"#"`,原始数据为{1 1.0, This is a string, with comma}。输出的文本为`#1#, #1.0#, #This is a string, with comma#。`请注意,目前OpenMLDB还不支持quote字符的转义,所以,用户需要谨慎选择quote字符,保证原始字符串内并不包含quote字符。 |
30+
| 配置项 | 类型 | 默认值 | 描述 |
31+
| ---------- | ------- | --------------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
32+
| delimiter | String | , | 列分隔符,默认为`,` |
33+
| header | Boolean | true | 是否包含表头, 默认为`true` |
34+
| null_value | String | null | NULL填充值,默认填充`"null"` |
35+
| format | String | csv | 输出文件格式:<br />`csv`:不显示指明format时,默认为该值<br />`parquet`:集群版还支持导出parquet格式文件,单机版不支持 |
36+
| mode | String | error_if_exists | 输出模式:<br />`error_if_exists`: 表示若文件已经在则报错。<br />`overwrite`: 表示若文件已存在,数据将覆盖原文件内容。<br />`append`:表示若文件已存在,数据将追加到原文件后面。<br />不显示配置时,默认为`error_if_exists` |
37+
| quote | String | "" | 输出数据的包围字符串,字符串长度<=1。默认为"",表示输出数据包围字符串为空。当配置包围字符串时,将使用包围字符串包围一个field。例如,我们配置包围字符串为`"#"`,原始数据为{1 1.0, This is a string, with comma}。输出的文本为`#1#, #1.0#, #This is a string, with comma#。` |
3538

36-
[`LOAD DATA INFILE`](../dml/LOAD_DATA_STATEMENT.md) 语句与`SELECT INTO OUTFILE`互补,它用户从指定文件创建表以及加载数据到表中。
39+
````{important}
40+
请注意,目前仅有集群版支持quote字符的转义。所以,如果您使用的是单机版,请谨慎选择quote字符,保证原始字符串内并不包含quote字符。
41+
````
3742

3843
## SQL语句模版
3944

@@ -46,13 +51,13 @@ SELECT ... INTO OUTFILE 'file_path' OPTIONS (key = value, ...)
4651
- 从表`t1`查询输出到`data.csv`文件中,使用`,`作为列分隔符
4752

4853
```SQL
49-
SELECT col1, col2, col3 FROM t1 INTO OUTFILE 'data.csv' OPTIONS ( delimit = ',' );
54+
SELECT col1, col2, col3 FROM t1 INTO OUTFILE 'data.csv' OPTIONS ( delimiter = ',' );
5055
```
5156

5257
- 从表`t1`查询输出到`data.csv`文件中,使用``作为列分隔符,NULL值的填充值为`NA`字符串:
5358

5459
```SQL
55-
SELECT col1, col2, col3 FROM t1 INTO OUTFILE 'data2.csv' OPTIONS ( delimit = '|', null_value='NA');
60+
SELECT col1, col2, col3 FROM t1 INTO OUTFILE 'data2.csv' OPTIONS ( delimiter = '|', null_value='NA');
5661
```
5762

5863

0 commit comments

Comments
 (0)