MySQL
MySQL์ด๋?
DB์ ์ข ๋ฅ๋ก๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ๊ทธ์ค ์์ฃผ ์ฌ์ฉํ๋ DB์ Oracle , MySQL , MSSQL ๋ฑ์ด ์๋ค.
์ฌ๊ธฐ์๋ MySQL์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
DB๋ SQL ์ธํฐํ์ด์ค๋ฅผ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๊ณ ๊ธฐ๋ฅ์ ๊ณต์ ํ๋ฉฐ ๋ค๋ฅธ DB ์ฌ์ฉ์์๋ ๋ณ๋ค๋ฅธ ๊ณต๋ถ์์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๊ทธ์ค MySQL์ ์ธ๊ณ์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์คํ ์์ค์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
์ด๋ค.
๋ค์ค ์ค๋ ๋, ๋ค์ค ์ฌ์ฉ์ ํ์์ ๊ตฌ์กฐ์ง์์ด ํ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
์ผ๋ก์ ์ค๋ผํด์ด ๊ด๋ฆฌ ๋ฐ ์ง์ํ๊ณ ์๋ค.
์ค์น๋ฐฉ๋ฒ์ ๊ฒ์์ ํตํด ์ฝ๊ฒ ์ฐพ์์ ์๋ค. https://dev.mysql.com/downloads/mysql/
Oracle๊ณผ MySQL์ ์ฐจ์ด
Oracle๊ณผ MySQL์ ๋๋ค ์ค๋ผํด ์ฌ์์ ์๋น์ค์ค์ด๋ฉฐ ๋ฌด๋ฃ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ๋ค.
Oracle์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ฌ์ฉํ๋ฉฐ MySQL์ ์๊ท๋ชจ ํ๋ก์ ํธ์์ ์์ฃผ ์ฌ์ฉํ๋ค.
๋ DB์ ์ฐจ์ด์ ์ ๋ฌธ๋ฒ์ด ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค๋ ์ ์ธ๋ฐ ์ ์ ๋ฆฌ๋ ๊ธ์ด ์์ด ์ฐธ์กฐํด๋ณด์๋ค.
-
๊ณต๋ฐฑ์นํ ํจ์ ( NVL -> IFNULL )
Oracle : SELECT NVL(โ์ปฌ๋ผ๋ช โ, โโ) FROM DUAL;
MySql : SELECT IFNULL(โ์ปฌ๋ผ๋ช โ, โโ) FROM DUAL; -
ํ์ฌ ๋ ์ง์๊ฐ
Oracle : SYSDATE
Mysql : NOW() -
๋ ์งํฌ๋ฉง
Oracle : TO_CHAR(sysdate,โMMDDYYYYHH24MISSโ)
Mysql : DATE_FORMAT(now(),โ%Y%m%d%H%i%sโ)
-> ์ฌ๊ธฐ์ ๋๋ฌธ์Y๋ 4์๋ฆฌ ๋ ๋, ์๋ฌธ์ y๋ 2์๋ฆฌ ๋ ๋ -
๋ ์ง ํฌ๋ฉง : ์์ผ
Oracle : ์์ผ์ด 1~7๋ก ์ธ์ํจ -> TO_CHAR(SYSDATE - 1, โDโ)
Mysql : ์์ผ์ด 0~6์ผ๋ก ์ธ์ -> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), โ%wโ) -
Like์ โ%โ ์ฌ์ฉ๋ฒ
Oracle : Like โ%โ||โ๋ฌธ์โ||โ%โ ์ด๋ฐ์์ผ๋ก ์ปฌ๋ผ๋ช ์๋ค๋ก โ%โ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค
Mysql : LIKE CONCAT(โ๋ฌธ์โ,โ%โ) ์ด๋ฐ์์ผ๋ก CONCAT ํจ์ ์ฌ์ฉ -
ํ๋ณํ
Oracle : To_char, To_number ๋ฑ
Mysql : CAST
(SELECT TO_CHAR(1234) FROM DUAL -> SELECT CAST(1234 AS CHAR) FROM DUAL) -
๋์๋ฌธ์ ๊ตฌ๋ถํจ
Oracle : ๊ตฌ๋ถ์์
Mysql : ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ๋ถํ๋, ์ค์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํจ -
ROWNUM
Oracle : where ์ ์ rownum > 5 and rownum =< 10
Mysql : where์ ์์ด limit 5,10 -
Sequence(์ํ์ค)๋ ๋ ๋ค ์ฌ์ฉ์ํจ์๋ฅผ ๋ง๋ค์ด์ ์๋์ ๊ฐ์ด ์ฌ์ฉ
Oracle : ์ํ์ค๋ช .nextval
Mysql : ์ํ์ค๋ช .currval -
๋ฌธ์์ด ์๋ฅด๊ธฐ
Oracle: SUBSTR(๋ฌธ์์ด, 1, 10)
Mysql: SUBSTRING(๋ฌธ์์ด, 1,10), LEFT(๋ฌธ์์ด, 3), RIGHT(๋ฌธ์์ด, 3) -
๋ฌธ์์ด ํฉ์น๊ธฐ ( - ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ค๊ณ ๊ฐ์ )
Oracle: ๋ฌธ์์ด(๋๋ ์ปฌ๋ผ) ||โ - โ
Mysql: CONCAT(๋ฌธ์์ด(๋๋ ์ปฌ๋ผ), โ - โ) -
์์ฝ์ด๊ฐ ์ปฌ๋ผ๋ช ์ผ ๋
Oracle: ์ปฌ๋ผ๋ช ์ ๋ฐ์ดํ(โ)๋ก ๊ฐ์ธ๊ธฐ (์: select โcolumnโ from tab)
Mysql: ์ปฌ๋ผ๋ช ์ TAB ํค ์์ ์๋ ` ํค ( Single quotation )๋ก ๊ฐ์ธ๊ธฐ -
์ ์ฅํ๋ก์์ ์๋์ง ์ฌ๋ถ ํ์ ํด์ Create ํ๊ธฐ
Oracle: CREATE OR REPLACE PROCEDURE ํ๋ก์์ ๋ช
Mysql: DROP PROCEDURE IF EXISTS ํ๋ก์์ ๋ช ; ์ ํ ๋ค์ CREATE PROCEDURE ํ๋ก์์ ๋ช
์ฐธ๊ณ : https://m.blog.naver.com/cacung82/220219070134
์ถ๊ฐ์ ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก Oracle์ ์์ฝ๊ฒ ROWNUM๊ณผ Sequence๋ฅผ ์ง์ํ๋ฉฐ ์ฝ๊ฒ ์์ฑ๊ฐ๋ฅํ์ง๋ง
MySQL์ ๋๊ฐ์ง์ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ ๋ฐ๋ก ํจ์๋ฅผ ์์ฑํ์ฌ ๊ตฌํํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ ๊ฐ์ง๊ณ ์๋ค.
ROWNUM
SELECT @ROWNUM:=@ROWNUM+1, A.*
FROM ํ
์ด๋ธ๋ช
A, (SELECT @ROWNUM:=0) R
;
SQL์ ๊ธฐ๋ณธ์ ์ธ CRUD๋ ์ฌ์ฉํ๊ธฐ ์ฌ์ ์ง๋ง ๊ธฐ๋ฅ๋ค์ด ๋ง์ ๋ ํฐ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ค๋ฉด ๋ ๊ณต๋ถํด์ผ ํ ๊ฒ ๊ฐ๋ค.
Leave a comment