oracle -> mysql 정리

DB/Mysql 2015. 7. 13. 15:02 Posted by Request

oracle에서 사용 했던 방식을 mysql로 적용 할려 하니 비슷하면서도 다른 부분이 많아 정리 하고자 한다.

 

1.문자열 합치기 

Oracle : '%'||A||'%'

Mysql  : CONCAT('%', A , '%')

 

2. null check

Oracle : SELECT NVL('컬럼명', '') FROM DUAL;

MySql : SELECT IFNULL('컬럼명', '') FROM DUAL;

 

3.현재 날짜시간

Oracle : SYSDATE

Mysql  : NOW() 

 

4.날짜 포맷

Oracle : TO_CHAR(sysdate,'MMDDYYYYHH24MISS')

Mysql  : DATE_FORMAT(now(),'%Y%m%d%H%i%s')  

-> 여기서 대문자Y는 4자리 년도, 소문자 y는 2자리 년도 20150713142107

 

DATE_FORMAT(now(),'%Y%m%d') -> 20150713

 

5.날짜 포멧 : 요일

Oracle : 요일이 1~7로 인식함  -> TO_CHAR(SYSDATE 1, 'D') 

Mysql : 요일이 0~6으로 인식   -> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%w')

* 참고로 자바스크립트가 0~6으로 인식하기에 Oracle 쿼리에서 -1을 해서 맞추는 경우가 많음

 

 

6. 형변환
Oracle : To_char, To_number 등
Mysql : CAST
SELECT TO_CHAR(1234) FROM DUAL 
-> SELECT CAST(1234 AS CHAR) FROM DUAL

 

7. MYSQL은 대소문자 구분함

8. ROWNUM
Oracle : where 절에 rownum > 5 and rownum =< 10 
Mysql : where절 없이 limit 5,10


9. Sequence(시퀀스)는 둘 다 사용자함수를 만들어서 아래와 같이 사용

Oracle : 시퀀스명.nextval

Mysql : 시퀀스명.currval


10. 문자열 자르기

Oracle: SUBSTR(컬럼명, 1, 10)

Mysql: SUBSTRING(컬럼명, 1,10)