Merge pull request #19098 from zhangjmruc/master

update chinese docs of insert-into and select-all to latest
This commit is contained in:
alexey-milovidov 2021-01-17 00:02:31 +03:00 committed by GitHub
commit 12b5a69405
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 65 additions and 3 deletions

View File

@ -1,6 +1,6 @@
## INSERT {#insert}
## INSERT INTO 语句 {#insert}
INSERT查询主要用于向系统中添加数据.
INSERT INTO 语句主要用于向系统中添加数据.
查询的基本格式:
@ -8,7 +8,52 @@ INSERT查询主要用于向系统中添加数据.
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
```
您可以在查询中指定插入的列的列表,如:`[(c1, c2, c3)]`。对于存在于表结构中但不存在于插入列表中的列,它们将会按照如下方式填充数据:
您可以在查询中指定要插入的列的列表,如:`[(c1, c2, c3)]`。您还可以使用列[匹配器](../../sql-reference/statements/select/index.md#asterisk)的表达式,例如`*`和/或[修饰符](../../sql-reference/statements/select/index.md#select-modifiers),例如 [APPLY](../../sql-reference/statements/select/index.md#apply-modifier) [EXCEPT](../../sql-reference/statements/select/index.md#apply-modifier) [REPLACE](../../sql-reference/statements/select/index.md#replace-modifier)。
例如,考虑该表:
``` sql
SHOW CREATE insert_select_testtable;
```
```text
CREATE TABLE insert_select_testtable
(
`a` Int8,
`b` String,
`c` Int8
)
ENGINE = MergeTree()
ORDER BY a
SETTINGS index_granularity = 8192
```
``` sql
INSERT INTO insert_select_testtable (*) VALUES (1, 'a', 1) ;
```
如果要在除了'b'列以外的所有列中插入数据,您需要传递和括号中选择的列数一样多的值:
``` sql
INSERT INTO insert_select_testtable (* EXCEPT(b)) Values (2, 2);
```
``` sql
SELECT * FROM insert_select_testtable;
```
```
┌─a─┬─b─┬─c─┐
│ 2 │ │ 2 │
└───┴───┴───┘
┌─a─┬─b─┬─c─┐
│ 1 │ a │ 1 │
└───┴───┴───┘
```
在这个示例中,我们看到插入的第二行的`a`和`c`列的值由传递的值填充,而`b`列由默认值填充。
对于存在于表结构中但不存在于插入列表中的列,它们将会按照如下方式填充数据:
- 如果存在`DEFAULT`表达式,根据`DEFAULT`表达式计算被填充的值。
- 如果没有定义`DEFAULT`表达式,则填充零或空字符串。

View File

@ -0,0 +1,17 @@
# ALL 子句 {#select-all}
`SELECT ALL``SELECT` 不带 `DISTINCT` 是一样的。
- 如果指定了 `ALL` ,则忽略它。
- 如果同时指定了 `ALL``DISTINCT` ,则会抛出异常。
`ALL` 也可以在聚合函数中指定,具有相同的效果(空操作)。例如:
```sql
SELECT sum(ALL number) FROM numbers(10);
```
等于
```sql
SELECT sum(number) FROM numbers(10);
```