oracle gramm compatible Oracle vs AntDB vs Postgresq.md - greatebee/AntDB GitHub Wiki

Oracle่ฏญๆณ•ๅ…ผๅฎนๅฏนๆฏ” Oracle vs AntDB vs Postgresql

1. DDL

create๏ผŒalter๏ผŒdrop๏ผŒtruncate

2. DML

insert๏ผŒupdate๏ผŒdelete

3. DQL

select

4. DCL

grant๏ผŒrevoke๏ผŒalter password

5. TCL

commit๏ผŒrollback๏ผŒsavepoint

6. ๆ•ฐๆฎ็ฑปๅž‹

ORACLE AntDB Postgresql
varchar2 varchar2 varchar
char(n) char(n) char(n)
date๏ผˆๆ—ฅๆœŸ๏ผ‰ date๏ผˆๆ—ฅๆœŸ๏ผ‰ timestamp๏ผˆๆ—ถ้—ดๆ—ฅๆœŸๅž‹๏ผ‰ใ€date๏ผˆๆ—ฅๆœŸ๏ผ‰ใ€time๏ผˆๆ—ถ้—ด๏ผ‰
number(n) number(n) smallintใ€intใ€bigint
number(p,n) number(p,n) numeric(p,n)๏ผˆไฝŽๆ•ˆ๏ผ‰ใ€float๏ผˆ้ซ˜ๆ•ˆ๏ผ‰
clob clob text
blob blob bytea
rownum rownum ๆ— 
rowid rowid ctid

7. ็ณป็ปŸๅ‡ฝๆ•ฐ

ๅŽŸ็”Ÿๆ”ฏๆŒ๏ผš ๅŽŸ็”Ÿๆ”ฏๆŒ๏ผš โˆš๏ผ›ไธๆ”ฏๆŒ๏ผšโ•ณ๏ผ›ๆ‰ฉๅฑ•ๆ”ฏๆŒ ๆ‰ฉๅฑ•ๆ”ฏๆŒ ๏ผšโ—‹

ๅ‡ฝๆ•ฐ็ฑปๅž‹ ๅ‡ฝๆ•ฐๅ็งฐ ORACLE AntDB Postgresql
ๆ•ฐๅ€ผๅ‡ฝๆ•ฐ ABS โˆš โˆš โˆš
ACOS โˆš โˆš โˆš
ASIN โˆš โˆš โˆš
ATAN โˆš โˆš โˆš
ATAN2 โˆš โˆš โˆš
BITAND โˆš โˆš โˆš
CEIL โˆš โˆš โˆš
COS โˆš โˆš โˆš
COSH โˆš โˆš โˆš
EXP โˆš โˆš โˆš
FLOOR โˆš โˆš โˆš
LN โˆš โˆš โˆš
LOG โˆš โˆš โˆš
MOD โˆš โˆš โˆš
NANVL โˆš โˆš โ—‹
POWER โˆš โˆš โˆš
ROUND (number) โˆš โˆš โˆš
SIGN โˆš โˆš โˆš
SIN โˆš โˆš โˆš
SINH โˆš โˆš โ—‹
SQRT โˆš โˆš โˆš
TAN โˆš โˆš โˆš
TANH โˆš โˆš โ—‹
TRUNC (number) โˆš โˆš โˆš
ๅญ—็ฌฆๅ‡ฝๆ•ฐ CHR โˆš โˆš โˆš
CONCAT โˆš โˆš โˆš
INITCAP โˆš โˆš โˆš
LOWER โˆš โˆš โˆš
LPAD โˆš โˆš โˆš
LTRIM โˆš โˆš โˆš
REGEXP_REPLACE โˆš โˆš โˆš
REGEXP_SUBSTR โˆš โˆš โ•ณ
REPLACE โˆš โˆš โˆš
RPAD โˆš โˆš โˆš
RTRIM โˆš โˆš โˆš
SUBSTR โˆš โˆš โˆš
TRANSLATE โˆš โˆš โˆš
TREAT โˆš โ•ณ โ•ณ
TRIM โˆš โˆš โˆš
UPPER โˆš โˆš โˆš
ASCII โˆš โˆš โˆš
INSTR โˆš โˆš โ—‹
LENGTH โˆš โˆš โˆš
REGEXP_INSTR โˆš โˆš โ•ณ
REVERSE โˆš โˆš โˆš
ๆ—ฅๆœŸๅ‡ฝๆ•ฐ ADD_MONTHS โˆš โˆš โ—‹
CURRENT_DATE โˆš โˆš โˆš
CURRENT_TIMESTAMP โˆš โˆš โˆš
EXTRACT (datetime) โˆš โˆš โˆš
LAST_DAY โˆš โˆš โ—‹
LOCALTIMESTAMP โˆš โ•ณ ๅ…ณ้”ฎๅญ— โ•ณ ๅ…ณ้”ฎๅญ—
MONTHS_BETWEEN โˆš โˆš โ—‹
NEW_TIME โˆš โˆš โ•ณ
NEXT_DAY โˆš โˆš โ—‹
ROUND (date) โˆš โˆš โ•ณ
SYSDATE โˆš โˆš โ•ณ
SYSTIMESTAMP โˆš โˆš โ•ณ
TO_CHAR (datetime) โˆš โˆš โˆš
TO_TIMESTAMP โˆš โˆš โˆš
TRUNC (date) โˆš โˆš โˆš
็ผ–็ ่งฃ็ ๅ‡ฝๆ•ฐ DECODE โˆš โˆš โ—‹
DUMP โˆš โˆš โ—‹
็ฉบๅ€ผๆฏ”่พƒๅ‡ฝๆ•ฐ COALESCE โˆš โˆš โˆš
LNNVL โˆš โˆš โ—‹
NANVL โˆš โˆš โ—‹
NULLIF โˆš โˆš โˆš
NVL โˆš โˆš โ—‹
NVL2 โˆš โˆš โ—‹
้€š็”จๆ•ฐๅ€ผๆฏ”่พƒๅ‡ฝๆ•ฐ GREATEST โˆš โˆš โˆš
LEAST โˆš โˆš โˆš
็ฑปๅž‹่ฝฌๆขๅ‡ฝๆ•ฐ CAST โˆš โˆš โˆš
CONVERT โˆš โˆš โ—‹
TO_CHAR (character) โˆš โˆš โˆš
TO_CHAR (datetime) โˆš โˆš โˆš
TO_CHAR (number) โˆš โˆš โˆš
TO_DATE โˆš โˆš โˆš
TO_NUMBER โˆš โˆš โˆš
TO_TIMESTAMP โˆš โˆš โˆš
ๅˆ†ๆžๅ‡ฝๆ•ฐ AVG * โˆš โˆš โˆš
COUNT * โˆš โˆš โˆš
DENSE_RANK โˆš โˆš โˆš
FIRST โˆš โ•ณ โ•ณ
FIRST_VALUE * โˆš โˆš โˆš
LAG โˆš โˆš โˆš
LAST โˆš โ•ณ โ•ณ
LAST_VALUE * โˆš โˆš โˆš
LEAD โˆš โˆš โˆš
MAX * โˆš โˆš โˆš
MIN * โˆš โˆš โˆš
RANK โˆš โˆš โˆš
ROW_NUMBER โˆš โˆš โˆš
SUM * โˆš โˆš โˆš

8. SQL่ฟ็ฎ—็ฌฆ

SQL่ฟ็ฎ—็ฌฆ็ฑปๅž‹ ่ฟ็ฎ—็ฌฆๅ็งฐ ORACLE AntDB Postgresql
็ฎ—ๆ•ฐ่ฟ็ฎ—็ฌฆ + โˆš โˆš โˆš
- โˆš โˆš โˆš
* โˆš โˆš โˆš
/ โˆš โˆš โˆš
้€ป่พ‘่ฟ็ฎ—็ฌฆ and โˆš โˆš โˆš
or โˆš โˆš โˆš
not โˆš โˆš โˆš
ๆฏ”่พƒ่ฟ็ฎ—็ฌฆ != โˆš โˆš โˆš
<> โˆš โˆš โˆš
^= โˆš โ•ณ โ•ณ
= โˆš โˆš โˆš
< โˆš โˆš โˆš
> โˆš โˆš โˆš
<= โˆš โˆš โˆš
>= โˆš โˆš โˆš
is (not) null โˆš โˆš โˆš
(not) between and โˆš โˆš โˆš
(not)in โˆš โˆš โˆš
all/any โˆš โˆš โˆš
exists โˆš โˆš โˆš
like โˆš โˆš โˆš
่ฟžๆŽฅ่ฟ็ฎ—็ฌฆ ll โˆš โˆš โˆš
ๅˆๅนถ่ฟ็ฎ—็ฌฆ union (all) โˆš โˆš โˆš
minus โˆš โˆš except
intersect โˆš โ•ณ โˆš

9. ๆŸฅ่ฏข

SQLๆŸฅ่ฏข็ฑปๅž‹ ๅ็งฐ ORACLE AntDB Postgresql
ๅŽป้‡ distinct โˆš โˆš โˆš
unique โˆš โ•ณ โ•ณ
ๅˆ†็ป„ group by โˆš โˆš โˆš
่ฟ‡ๆปค having โˆš โˆš โˆš
ๆŽ’ๅบ order by โˆš โˆš โˆš
้€’ๅฝ’ connect by โˆš โˆš โ•ณ
cte cte โˆš โˆš โˆš
case when case when โˆš โˆš โˆš
ๆ‰น้‡insert insert all into โˆš โ•ณ insert into values โ•ณ insert into values
merge into merge into โˆš โ•ณ upsert โ•ณ upsert

10. ่กจ่ฟžๆŽฅ

่กจ่ฟžๆŽฅ็ฑปๅž‹ ่กจ่ฟžๆŽฅๅ็งฐ ORACLE AntDB Postgresql
ๅ†…่ฟžๆŽฅ (inner) join โˆš โˆš โˆš
from tableA,tableB โˆš โˆš โˆš
ๅทฆ่ฟžๆŽฅ left (outer) join โˆš โˆš โˆš
ๅณ่ฟžๆŽฅ right (outer) join โˆš โˆš โˆš
ๅ…จ่ฟžๆŽฅ full (outer) join โˆš โˆš โˆš
(+) (+) โˆš โˆš โ•ณ

11. ่ง†ๅ›พ/ๅ‡ฝๆ•ฐ/ๅญ˜ๅ‚จ่ฟ‡็จ‹/่งฆๅ‘ๅ™จ

็ฑปๅž‹ ๅ็งฐ ORACLE AntDB Postgresql
่ง†ๅ›พ create view โˆš โˆš โˆš
alter view โˆš โˆš โˆš
drop view โˆš โˆš โˆš
ๅ‡ฝๆ•ฐ create fuction โˆš โˆš โˆš
alter fuction โˆš โˆš โˆš
drop fuction โˆš โˆš โˆš
ๅญ˜ๅ‚จ่ฟ‡็จ‹ create procedure โˆš โˆš โˆš
alter procedure โˆš โˆš โˆš
drop procedure โˆš โˆš โˆš
่งฆๅ‘ๅ™จ create trigger โˆš โˆš โˆš
alter trigger โˆš โˆš โˆš
drop trigger โˆš โˆš โˆš

12. sequence

็ฑปๅž‹ ๅ็งฐ ORACLE AntDB Postgresql
ๆ–ฐๅปบๅบๅˆ— create sequence โˆš โˆš โˆš
ไฟฎๆ”นๅบๅˆ— alter sequence โˆš โˆš โˆš
ๅˆ ้™คๅบๅˆ— drop sequence โˆš โˆš โˆš
ๆ“ไฝœๅบๅˆ— seq.nextVal โˆš โˆš โ•ณ nextVal('seq')
seq.currVal โˆš โˆš โ•ณ currVal('seq')

13. ๅ…ถไป–

็ฑปๅž‹ ๅ็งฐ ORACLE AntDB Postgresql
่ฟ‡็จ‹่ฏญ่จ€ declare โˆš โˆš โˆš
exception โˆš โˆš โˆš
cursor โˆš โˆš โˆš
่‡ชๅฎšไน‰type create type โˆš โˆš โˆš
alter type โˆš โˆš โˆš
drop type โˆš โˆš โˆš
ๆ•ฐๆฎ็ฑปๅž‹้šๅผ่ฝฌๆข ้šๅผ่ฝฌๆข โˆš โˆš โ•ณ
oracleๅˆซๅ oracleๅˆซๅ โˆš โˆš โ•ณ
็ฑปๅž‹ๅคๅˆถ %type โˆš โˆš โˆš
%rowtype โˆš โˆš โˆš
like้€š้…็ฌฆ % โˆš โˆš โˆš
_ โˆš โˆš โˆš
dual่™šๆ‹Ÿ่กจ dual โˆš โˆš โ•ณ