Oracle๊ณผ MySQL์ ์ฐจ์ด ๋ฐ ๊ฐ๋
โ๊ถ๊ธ์ฆโ
์ต๊ทผ ๋ฉด์ ์ ๋ณด๊ฒ ๋๋๋ฐ, ๋ํ์ ๋ MySQL์ ์ผ์๊ณ ์ต๊ทผ์ Oracle๋ก DB๋ฅผ ์ ํํ๋ค๊ณ ํ๋๋ฐ, ๊ทธ๋ผ ๋์ ์ฐจ์ด์ ์ ์๋์ง ์ Oracle์ ์ ํํ๋์ง์ ์ง๋ฌธ์ ๋ฐ์์ ๋ชจ๋ฅธ๋ค๊ณ ๋๋ต์ ํ๋ค....
๊ทธ๋์ ์ด๋ฒ ๊ธฐํ์ ๋์ ์ฐจ์ด์ ์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
Oracle(์ค๋ผํด) ์ด๋?
๋ฏธ๊ตญ์ ์ค๋ผํด ํ์ฌ์์ ์ ์ํ ์ธ๊ณ ์ ์ ์จ 1์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
ํ์ฌ ์ ๋์ค ์ฒด์ ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ DBMS
๐์ฅ์
๋๊ท๋ชจ ๊ธฐ์ ์์คํ ์ ์ ํฉํ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
๊ณ ์ฑ๋ฅ, ๋ณต์กํ ํธ๋์ญ์ ์ฒ๋ฆฌ, ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฑ์ ์ฐ์ํ๋ค.
๐๋จ์
๋น์ฉ์ ์ธ ๋ถ๋ด ์ฆ๊ฐ
๊ธฐ๋ฅ์ด ๋ง์ ์ด๋ณด์์๊ฒ ์ด๋ ค์
๋์ ์ง์ ํ๋์จ์ด ์ฌ์์ด ํ์ํจ
MySQL์ด๋?
์ ์ธ๊ณ์ ์ผ๋ก ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฉฐ, MySQL AB์ฌ๊ฐ ๊ฐ๋ฐํ์ฌ ๋ฐฐํฌ ๋ฐ ํ๋งคํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌํด์ด๋ค.
๐์ฅ์
๋งค์ฐ ์ ์ ์ค๋ฒ ํค๋๋ฅผ ์ฌ์ฉํ๋ค.
→ ํด๋น ์์ ์ด ํจ์จ์ ์ผ๋ก ๋์ํ๊ณ , ํ์ ์ด์์ ๋ถ๊ฐ ์์ ์ด๋ ๋น์ฉ์ด ๊ฑฐ์ ๋ฐ์ํ์ง ์๋ ๋ค๋ ๊ฒ.
→ ์ฑ๋ฅ ์ธก๋ฉด์์ ์ฐ์ํ๋ค, ์ฒ๋ฆฌ์๋๊ฐ ๋น ๋ฅด๋ค
๋ค๋ฅธ ๋ฐ์ดํฐ ๊ด๋ฆฌ ํด์ ๋นํด ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํ์ฌ ์ฌ์ฉํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ๋ค.
๊ฑฐ์ ๋ชจ๋ ์ด์์ฒด์ ์ฌ์ฉ์ ์ง์ํ๋ค.
MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฌด๋ฃ๋ผ์ ๋น์ฉ์ ์ธ ๋ถ๋ด์ด ์ ๋ค.
์คํ์์ค๋ ๋ฌด๋ฃ, ์์ ์ฉ์ ์ ๋ก์ด๋ค.
๐๋จ์
๋ณต์กํ ์ฟผ๋ฆฌ๋ ์ฑ๋ฅ ์ ํ
ํธ๋์ญ์ ์ง์์ด ์๋ฒฝํ์ง ์๋ค.
์ฌ์ฉ์์ ์ ํจ์์ ์ฌ์ฉ์ด ์ฝ์ง ์๊ณ ์ ์ฐํ์ง ์๋ค.
๊ตฌ๋ฌธ ์ฐจ์ด
โ Null ๊ฐ ํ์ธ ํจ์
Oracle : NVL
MySQL : IFNULL
-- Oracle
SELECT NVL(column_name, 'DefaultValue') AS result FROM table_name;
-- MySQL
SELECT IFNULL(column_name, 'DefaultValue') AS result FROM table_name;
โก ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ํ์ธ ํจ์
Oracle : SYSDATE
MySQL : DATE()
-- Oracle
SELECT SYSDATE FROM dual;
-- MySQL
SELECT NOW();
โข ๋ ์ง ํฌ๋ฉง ๋ณํ
Oracle : TO_CHAR
MySQL : DATE_FORMAT
-- Oracle
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;
-- ํ์ฌ ๋ ์ง์ ์๊ฐ์ 'YYYY-MM-DD HH24:MI:SS' ํ์์ผ๋ก ๋ณํํ์ฌ ํ์
-- MySQL
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_date;
-- ํ์ฌ ๋ ์ง์ ์๊ฐ์ '%Y-%m-%d %H:%i:%s' ํ์์ผ๋ก ๋ณํํ์ฌ ํ์
โฃ ์์ผ ๋ณํ์ ์ซ์ ๋ฒ์
Oracle : ์ผ~ํ ๋ฅผ 1~7๋ก ์ธ์
MySQL : ์ผ~ํ ๋ฅผ 0~6๋ก ์ธ์
โค ๋ฌธ์์ ๋ฌธ์๋ฅผ ํฉ์น๋ ๋ฐฉ๋ฒ
Oracle : ' '
MySQL : CONCAT
-- Oracle
SELECT 'Hello ' || 'World' AS concatenated_string FROM dual;
-- MySQL
SELECT CONCAT('Hello', ' ', 'World') AS concatenated_string;
โฅ ํ๋ณํ ๋ฐฉ๋ฒ
Oracle : TO_CHAR
MySQL : CAST
-- Oracle
-- ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
SELECT CAST('123' AS NUMBER) AS numeric_value FROM dual;
-- ๋ ์ง ๋ฌธ์์ด์ ๋ ์ง๋ก ๋ณํ
SELECT TO_DATE('2023-08-24', 'YYYY-MM-DD') AS date_value FROM dual;
-- ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ
SELECT TO_CHAR(123) AS string_value FROM dual;
-- MySQL
-- ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
SELECT CAST('123' AS SIGNED) AS numeric_value;
-- ๋ ์ง ๋ฌธ์์ด์ ๋ ์ง๋ก ๋ณํ
SELECT STR_TO_DATE('2023-08-24', '%Y-%m-%d') AS date_value;
-- ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ
SELECT CAST(123 AS CHAR) AS string_value;
โฆ ์ํ์ค ์ฌ์ฉ์ ๋ค์ ๋ฒํธ๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ
Oracle : ์ํ์ค๋ช .NEXTVAL
MySQL : ์ํ์ค๋ช .CURRVAL
-- Oracle
SELECT your_sequence.NEXTVAL FROM dual;
โง ๋์๋ฌธ์ ๊ตฌ๋ถ
Oracle : ๊ตฌ๋ถ์์
MySQL : ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ๋ถํ๋, ์ค์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค.