更新时间:2022-08-16 GMT+08:00
语法
本章节介绍了在PostgreSQL11开源版本的基础上,PostgreSQL增强版支持的语法。
- 支持CREATE SEQUENCE语法。
- 支持CREATE/ALTER DATABASE语法。
- 支持CREATE/ALTER VIEW语法。
- 支持CREATE TABLE语法。
- 支持CREATE TABLESPACE语法。
- 支持CLUSTER语法。
- 支持FORALL语法;
- 支持CREATE/DROP DIRECTORY语法。
- 支持ALTER TABLE ADD CONSTRAINT USING INDEX语法;
- 支持INSERT INTO语句的目标列名可以使用表名或表别名修饰。
- 支持非分区表的ROWNUM伪列;
- 支持字段表达式创建索引:CREATE INDEX ON COLUMN_EXPR;
- 支持ALTER TABLE...MODIFY修改表字段。
- 支持VARCHAR、CHARACTER数据类型指定长度单位。
- 支持TYPE/NAME/VERSION/VALUE/INTERVAL作为别名。
- 支持存储过程语法。
- 支持DATE数据类型。
- 支持HASH、RANGE、LIST分区表创建语法。
- 支持MERGE操作语法:
MERGE [HINT] INTO table_name USING ({subquery | table_name | view_name}) alias ON (condition) merge_update_clause merge_insert_clause;
- 支持时间间隔操作语法:
INTERVAL YEAR TO MONTH,INTERVAL DAY (l) TO SECOND (P);
- 支持CREATE TRIGGER带BODY体语法:
CREATE TRIGGER name... {DECLARE ... BEGIN | BEGIN} body END;
- 支持存储过程游标语法:
CURSOR cursor_name [ parameter_list ] IS select_statement, TYPE type_name IS REF CURSOR;
- 支持存储过程游标变量:
SQL%ISOPEN,SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT,cursor%ISOPEN,cursor%FOUND,cursor%NOTFOUND,cursor%ROWCOUNT;
- 支持定时任务高级包:
DBMS_JOB.SUBMIT,DBMS_JOB.ISUBMIT,DBMS_JOB.REMOVE,DBMS_JOB.BROKEN,DBMS_JOB.CHANGE,DBMS_JOB.WHAT,DBMS_JOB.NEXT_DATE,DBMS_JOB.INTERVAL;
- 支持CREATE USER语法:
{DEFAULT COLLATION | DEFAULT TABLESPACE | [LOCAL] TEMPORARY TABLESPACE} Clause;
- 支持修改会话属性:
ALTER SESSION SET param_name = value;
- 支持匿名块。
- 支持存储过程跨模式访问。
- 存储过程支持SQLCODE内置变量;
- 存储过程语法兼容增强:支持以存储过程名作为结束标签,支持FOR VAR IN SELECT-CLAUSE,LOOP循环允许指定结束标签名,支持in参数指定默认值;
- 支持子查询不指定别名。
- CREATE SEQUENCE支持NOCYCLE。
- CREATE/ALTER USER语法中允许使用IDENTIFIED BY关键字替代PASSWORD关键字。
- UPDATE SET语法中允许指定表名或别名修饰。
- UPDATE SET支持单字段(columnname)=(value)语法。
- ALTER TABLE支持MODIFY NOT NULL语法和ENABLE语法。
- 空字符串和NULL等价。
- 序列操作新增语法:sequencCURRVAL,sequencNEXTVAL。
- 创建用户时支持同时创建同名schema。
- 删除表记录语法中FROM关键字。
- 支持XML数据类型伪列COLUMN_VALUE。
- 支持外连接运算符(+);
- 支持数据类型INTERVAL与数字之间的运算操作:+、-、>、<、>=、<=、<>;
- 支持分区表的DML操作:SELECT、INSERT、UPDATE、DELETE;
- 分区表支持二级分区;
- 分区表支持以表达式作为分区边界;
- 支持触发器DDL:支持使用schema修饰等;
- 支持时间格式IYY;
- 支持CREATE/ALTER MATERIALIZED VIEW语法;
- 支持CREATE TYPE语法;
- 支持create profile语法;
- 支持列约束的enable/disable语法;
- 支持分区表指定tablespace options语法;
- 支持DROP TABLE tablename [CASCADE CONSTRAINTS] [PURGE]语法;
- 支持存储过程动态SQL语法EXECUTE IMMEDIATE,当前版本不支持带DECLARE申明的匿名块动态执行;
- 支持FUNCTION定义;
- 支持CONNECT BY查询:支持伪列LEVEL、CONNECT_BY_ROOT、CONNECT_BY_ISLEAF;支持函数sys_connect_by_path;支持CONNECT_BY_ROOT操作;支持ORDER SIBLINGS;
- 支持TIME数据类型精度;
- 支持虚拟列:column_name datatype [GENERATED ALWAYS] AS (expression) [VIRTUAL];
- 支持一维数组的定义:CREATE OR REPLACE TYPE array_name AS VARRAY (len) OF typename;
- 支持一维数组的访问:array_name.extend, array_name.count, array_name.first, array_name.last;
- ROLLUP、CUBE、GROUPING SETS分组查询支持grouping_id([expr1[, expr2[, ...exprn]]])和group_id();
- 支持无分组字段返回的排序查询语句:SELECT SUM(colname) FROM tbl ORDER BY colname;
父主题: PostgreSQL增强版