暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL , Oracle command reference 语法手册解读

digoal 2018-06-13
424

作者

digoal

日期

2018-06-13

标签

PostgreSQL , reference , 语法 , Oracle


背景

我们在查语法手册是,比如Oracle, PostgreSQL 语法手册,经常看到里面很多这样的东西,

```
postgres=# \h insert
Command: INSERT
Description: create new rows in a table
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
[ OVERRIDING { SYSTEM | USER} VALUE ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ ON CONFLICT [ conflict_target ] conflict_action ]
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

where conflict_target can be one of:

( { index_column_name | ( index_expression ) } [ COLLATE collation ] [ opclass ] [, ...] ) [ WHERE index_predicate ]  
ON CONSTRAINT constraint_name

and conflict_action is one of:

DO NOTHING  
DO UPDATE SET { column_name = { expression | DEFAULT } |  
                ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |  
                ( column_name [, ...] ) = ( sub-SELECT )  
              } [, ...]  
          [ WHERE condition ]

```

有大写,有效写,有没有括号的,有小括号,有中括号,有大括号,有逗号,有胜利号,有竖线。它们是什么含义呢:

1、大写:关键字

2、小写:变量,用户输入,或者下面对应的SUB SECTION的内容替换

3、小括号:没有特别含义,注意在输入时,小括号本身需要输入

4、大括号:里面的内容为必选内容,大括号不需要输入

5、中括号:里面的内容为可选内容,中括号不需要输入

6、竖线:被竖线分开的内容,为任选一的内容,竖线不需要输入

7、中括号+逗号+省略号:表示中括号前面的内容可以被多次输入,逗号本身需要输入

8、中括号+省略号:表示中括号前面的内容可以被多次输入,没有逗号

参考

https://www.postgresql.org/docs/current/static/sql-commands.html

https://www.postgresql.org/docs/10/static/notation.html

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论