ORACLE与PostGreSQL对比分析 | ||
Oracle | PG | |
数据类型 | Varchar2 | varchar |
number | numeric | |
date | timestamp/date/time | |
不支持boolean,可通过0/1代替 | 支持boolean | |
基本函数 | 当前日期:SYSDATE | now()/CURRENT_TIMESTAMP/CURRENT_DATE/ CURRENT_TIME/localtimestamp |
to_char,to_number | 需要指定格式:to_date(timejoin,'yyyy-MM-dd') | |
空值处理:nvl() | coalesce() | |
decode() | case...when...then | |
支持dual伪表 | 不支持(查询常量不需要加from) | |
DDL语法(基本一致) | 基本一致,只有更改列的数据类型写法有差异 Oracle:ALTER TABLE table_name modify column_name datatype; PostgreSQL:ALTER TABLE table_name ALTER column_name TYPE datatype; | |
DML语法(基本一致) | 基本一致(唯一不同:Oracle.Merge,PG.on conflict() do) | |
DQL语法(基本一致) | 通过rownum实现分页 | 通过limit实现分页,且limit必须用于 order by 之后 |
子查询不要求必须有别名 | 子查询必须有别名 | |
其它 | select 'a'||null from dual ; 结果:'a' | select 'a'||null from dual ; 结果:null (所以拼接需要使用concat()) |
支持procedure和package | 不支持procedure和package |
Oracle与PostgreSql语法分析对比
最新推荐文章于 2022-11-08 16:17:30 发布