Oracle : ์์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฃผ์๋ก, ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ๋ ฅํ ๋ณด์, ๊ณ ๊ฐ์ฉ์ฑ, ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๋ฐฐํฌ ์ ์ ๋ฃ ๋ผ์ด์ ์ค๊ฐ ํ์ํฉ๋๋ค.
MySQL : ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ DBMS ์ค ํ๋๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ค์๊ท๋ชจ ์์คํ ์์ ์ธ๊ธฐ๊ฐ ๋์ต๋๋ค. ์๋์ ๋จ์ํจ์ด ๊ฐ์ ์ด๋ฉฐ, ์คํ ์์ค์ ์์ฉ ๋ฒ์ ๋ชจ๋ ์ ๊ณต๋ฉ๋๋ค.
PostgreSQL : ๊ณ ๊ธ ๊ธฐ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ถ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ๋ณต์กํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ๋ฐ์ด๋๋ฉฐ, ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
1๏ธโฃ ๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ ํ์ ๋ฐ ํจ์
Oracle
- DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE์ ์ง์ํด์ ์๊ฐ๋๋ณ๋ก ์ ๋ฐํ๊ฒ ์๊ฐ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํจ.
- ๋ ์ง์ ์๊ฐ ํจ์
- SYSDATE : ํ์ฌ ์๋ฒ์ ๋ ์ง์ ์๊ฐ์ ๋ฐํํจ (์๊ฐ๋ ์ ๋ณด ์์).
- CURRENT_TIMESTAMP : ์๊ฐ๋ ์ ๋ณด๋ฅผ ํฌํจํ ํ์ฌ ๋ ์ง์ ์๊ฐ์ ๋ฐํํจ.
MySQL
- datetime, timestamp ๋ชจ๋ ์ง์ํ๋ฉฐ, datetime์ ์๊ฐ๋ ์ ๋ณด๋ฅผ ํฌํจํ์ง ์๊ณ , timestamp๋ ์๊ฐ๋ ์ ๋ณด๋ฅผ ๋ค๋ฃธ.
- ๋ ์ง์ ์๊ฐ ํจ์
- now() : ์๋ฒ์ ํ์ฌ ์๊ฐ์ ๋ฐํํจ.
- current_timestamp() : NOW()์ ๋์ผํ๊ฒ ๋์ํ๋ฉฐ, ๊ดํธ ์์ด CURRENT_TIMESTAMP๋ก ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํจ.
PostgreSQL
- timestamp without time zone, timestamp with time zone์ ์ง์ํด ์๊ฐ๋์ ๋ฐ๋ฅธ ์ ๋ฐํ ์๊ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํจ.
- ๋ ์ง์ ์๊ฐ ํจ์
- current_timestamp : ํ์ฌ ๋ ์ง์ ์๊ฐ(์๊ฐ๋ ํฌํจ)์ ๋ฐํํจ.
- now() : CURRENT_TIMESTAMP์ ๋์ผํ๊ฒ ํ์ฌ ๋ ์ง์ ์๊ฐ์ ๋ฐํํจ.
2๏ธโฃ ์ซ์ ๋ฐ์ดํฐ ํ์
- Oracle : NUMBER, BINARY_FLOAT, BINARY_DOUBLE๋ก ์ ์์ ์ค์๋ฅผ ์ฒ๋ฆฌํจ. ํนํ NUMBER๋ ๋์ ์ ๋ฐ๋๋ฅผ ์ ๊ณตํจ.
- MySQL : tinyint, smallint, mediumint, int, bigint ๋ฑ์ ์ ์ ํ์ ๊ณผ float, double, decimal๋ก ์ค์ ์ฒ๋ฆฌํจ.
- PostgreSQL : smallint, int, bigint์ numeric, real, double precision์ ์ฌ์ฉํด ์ซ์๋ฅผ ๋ค๋ฃธ. int์ integer๋ ๋์์ด๋ก ์ทจ๊ธ๋จ.
3๏ธโฃ ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์
- Oracle : VARCHAR2, CHAR, CLOB์ ์ง์ํจ. VARCHAR2๋ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด, CHAR๋ ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด์ ์ฒ๋ฆฌํจ.
- MySQL : varchar, char, text๋ฅผ ์ ๊ณตํ๋ฉฐ, text๋ ๋์ฉ๋ ๋ฌธ์์ด ์ฒ๋ฆฌ ๊ฐ๋ฅํจ.
- PostgreSQL : varchar, char, text๋ฅผ ์ง์ํ๊ณ , text๋ ๊ธธ์ด ์ ํ ์์ด ์ฌ์ฉ ๊ฐ๋ฅํจ.
4๏ธโฃ ์ด์ง ๋ฐ์ดํฐ ํ์
- Oracle : BLOB, RAW๋ฅผ ์ง์ํด ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํจ.
- MySQL : blob, longblob์ ์ ๊ณตํ๋ฉฐ, ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ค์ํ ์ด์ง ๋ฐ์ดํฐ ํ์ ์ ์ฒ๋ฆฌํจ.
- PostgreSQL : bytea๋ก ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํจ.
5๏ธโฃ ๋ ผ๋ฆฌ ๋ฐ์ดํฐ ํ์
- Oracle : ๋ณ๋์ BOOLEAN ํ์ ์ด ์์ด์ NUMBER(1)๋ก 0๊ณผ 1์ ์ฌ์ฉํด ๋ ผ๋ฆฌ ๊ฐ์ ์ฒ๋ฆฌํจ.
- MySQL : tinyint(1)์ผ๋ก 0๊ณผ 1์ ์ฌ์ฉํด ๋ ผ๋ฆฌ ๊ฐ์ ์ฒ๋ฆฌํจ. MySQL 8.0๋ถํฐ๋ boolean๋ ์ง์ํจ.
- PostgreSQL : boolean ํ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๊ณ , true, false ๊ฐ์ ์ฒ๋ฆฌํจ.
6๏ธโฃ ์ปฌ๋ผ๊ฐ ์๋ ์ฆ๊ฐ
- Oracle : SEQUENCE ๊ฐ์ฒด ์ฌ์ฉ (`CREATE SEQUENCE` ๋ช ๋ น์ด๋ก ์ ์).
- MySQL : auto_increment ์์ฑ ์ฌ์ฉ.
- PostgreSQL : serial ๋ฐ bigserial ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ. ์ปฌ๋ผ์ ์๋์ผ๋ก ์ํ์ค๋ฅผ ์์ฑํ๊ณ ๊ฐ์ ์๋ ์ฆ๊ฐ์ํด.
* Oracle๊ณผ PostgreSQL์์ ์ํ์ค๋ฅผ ์ ์ดํ๋ ๋ฐฉ์์ด ๋น์ทํ๋ค.
7๏ธโฃ ๋์๋ฌธ์ ์ฒ๋ฆฌ
- Oracle : ์ ๋ ฅ๋ ์๋ณ์๋ ์๋์ผ๋ก ๋๋ฌธ์๋ก ๋ณํ๋จ. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ค๋ฉด ํฐ๋ฐ์ดํ(")๋ฅผ ์ฌ์ฉํด์ผ ํจ.
- MySQL : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์ด๋ฆ์ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๋ค๋ฆ. Windows์์๋ ํ์ผ ์์คํ ์ด ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฏ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์ด๋ฆ ๋ชจ๋ ๊ตฌ๋ถํ์ง ์์. ์ปฌ๋ผ ์ด๋ฆ ์ญ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์.
- PostgreSQL : ์ ๋ ฅ๋ ์๋ณ์๋ ์๋์ผ๋ก ์๋ฌธ์๋ก ๋ณํ๋จ. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ค๋ฉด ํฐ๋ฐ์ดํ(")๋ฅผ ์ฌ์ฉํด์ผ ํจ.
8๏ธโฃ ์๋ ์ปค๋ฐ ์ค์
- Oracle : ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ปค๋ฐ์ด ์๋. ๋ชจ๋ SQL ์์ ์ ๋ช ์์ ์ผ๋ก `COMMIT` ๋๋ `ROLLBACK`์ ํธ์ถํด์ผ ์ ์ฅ๋๊ฑฐ๋ ์ทจ์๋จ.
- MySQL : ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ปค๋ฐ์ด ์ผ์ ธ ์์. ๊ฐ SQL ๋ช ๋ น์ด ์๋์ผ๋ก ์ ์ฅ๋จ. ํ์์ ๋ฐ๋ผ `begin`์ผ๋ก ํธ๋์ญ์ ์ ์์ํ๊ณ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์์.
- PostgreSQL : ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ปค๋ฐ์ด ์ผ์ ธ ์์. SQL ๋ช ๋ น์ด ์คํ๋ ๋๋ง๋ค ์๋์ผ๋ก ์ ์ฅ๋จ. ์๋ ํธ๋์ญ์ ๊ด๋ฆฌ๋ ์ง์ํจ.
9๏ธโฃ ROWNUM, LIMIT, OFFSET
- Oracle : ROWNUM์ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ ์งํฉ์ ํน์ ํ์ ์ ํํ๊ฑฐ๋ ํํฐ๋ง.
- ์ : `SELECT * FROM table WHERE ROWNUM <= 10;` (์์ 10๊ฐ ํ ์ ํ)
- MySQL : limit๊ณผ offset์ ์ฌ์ฉํ์ฌ ํ์ ์ ํ.
- ์ : `select * from table limit 10 offset 5;` (5๋ฒ์งธ ์ดํ 10๊ฐ ํ ์ ํ)
- PostgreSQL : limit ๊ณผ offset์ ์ฌ์ฉํ์ฌ ํ์ ์ ํ. MySQL๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋์.
๐ ๊ด๋ฆฌ ๋๊ตฌ
Oracle
- SQL Developer : ์ฟผ๋ฆฌ ์์ฑ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ, ์ค๊ณ ๋ฐ ์ ์ฅ ํ๋ก์์ ๊ฐ๋ฐ์ ์ํ ๊ธฐ๋ณธ GUI ๋๊ตฌ.
- Oracle Enterprise Manager : ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ๋ฅผ ์ํ ์น ๊ธฐ๋ฐ ๊ด๋ฆฌ ๋๊ตฌ๋ก, ๋ชจ๋ํฐ๋ง, ์ฑ๋ฅ ํ๋, ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ ๋ฑ ๊ณ ๊ธ ๊ธฐ๋ฅ ์ ๊ณต.
- Toad for Oracle : ๊ฐ๋ฐ์์ DB ๊ด๋ฆฌ์์ฉ์ผ๋ก ์ค๊ณ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก, ์คํค๋ง ๊ด๋ฆฌ, SQL ์ต์ ํ, ์คํฌ๋ฆฝํธ ์์ฑ ์ง์.
MySQL
- MySQL Workbench : ๋ชจ๋ธ๋ง, ์ฟผ๋ฆฌ ์คํ, ์๋ฒ ๊ด๋ฆฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์์ธ์ ์ํ ๊ธฐ๋ณธ GUI ๋๊ตฌ.
- phpMyAdmin : ์น ๊ธฐ๋ฐ์ MySQL ๊ด๋ฆฌ ๋๊ตฌ๋ก, ์ฟผ๋ฆฌ ์คํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ, ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ ์ ๊ณต.
- HeidiSQL : Windows์ฉ ๊ฒฝ๋ GUI ๋๊ตฌ๋ก, ์ฌ๋ฌ MySQL ์๋ฒ๋ฅผ ๋์์ ๊ด๋ฆฌํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์.
PostgreSQL
- pgAdmin : ํ ์ด๋ธ ๋ฐ ์ฌ์ฉ์ ์์ฑ, ์ฟผ๋ฆฌ ์คํ, ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ ๋ฑ ๋ค์ํ ๊ด๋ฆฌ ์์ ์ GUI๋ก ์ง์ํ๋ ๊ธฐ๋ณธ ๋๊ตฌ.
- DBeaver : ์ฌ๋ฌ DBMS๋ฅผ ์ง์ํ๋ ์คํ ์์ค SQL ํด๋ผ์ด์ธํธ๋ก, PostgreSQL๋ฟ๋ง ์๋๋ผ MySQL, Oracle ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํตํฉ ๊ด๋ฆฌํ ์ ์์.
- DataGrip : JetBrains์์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ SQL IDE๋ก, PostgreSQL์ ํฌํจํ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ณ ๊ธ ์ฟผ๋ฆฌ ์์ฑ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณต.