Oracle과 MySQL의 큰 차이점
1. NULL값확인함수가 다르다.
ORACLE에서는 NVL함수를 사용하지만 MYSQL에서는 IFNULL을 사용
(ORACLE) SELECT NVL(USER_ID,'') FROM KGON
(MYSQL ) SELECT IFNULL(USER_ID,'') FROM KGON
2.현재날짜시간 확인하는 방법이 다르다.
ORACLE에서는 SYSDATE를 사용하지만 MYSQL에서는 NOW()함수를 사용
(ORACLE) SELECT SYSDATE FROM DUAL;
(MYSQL ) SELECT NOW() FROM DUAL;
3.날짜포멧 변환방법이 다르다.
ORACLE에서는 날짜를 STRING으로 변경시 TO_CHAR()함수를 사용하지만 MYSQL에서는 DATE_FORMAT()함수를 사용
(ORACLE) SELECT TO_CHAR(REG_DATE, 'YYYYMMDD HH24MISS') FROM DUAL;
(MYSQL ) SELECT DATE_FORMAT(REG_DATE, '%Y%m%d%H%i%s') FROM DUAL;
[형식에 쓰는 영문자는 대소문자에 따라 다른값이 나올 수 있다]
[%Y는 4자리년도(2017) , %y는 2자리년도(17)]
4.요일변환의 숫자범위가 다르다.
ORACLE은 일,월,화,수,목,금,토를 1,2,3,4,5,6,7로 인식
MYSQL은 일,월,화,수,목,금,토를 0,1,2,3,4,5,6으로 인식
[보통 JAVASCRIPT에서 일,월,화,수,목,금,토를 0,1,2,3,4,5,6으로 쓰기 때문에 ORACLE인경우 결과값을 -1해서 반환하는 경우가 많다]
(ORACLE) SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL; [결과값: 오늘이 수요일인경우 4를 반환]
(MYSQL ) SELECT DATE_FORMAT(NOW(), '%w') FROM DUAL; [결과값: 오늘이 수요일인경우 3을 반환]
5.문자와 문자 합치는 방법이 다르다.
ORACLE에서는 문자와 문자를 합칠때 '||'을 사용
MYSQL에서는 문자와 문자를 합칠때 CONCAT()함수를 사용
(ORACLE) SELECT USER_ID FROM KGON WHERE USER_ID LIKE '%' || 'kgon' || '%'
(MYSQL ) SELECT USER_ID FROM KGON WHERE USER_ID LIKE CONCAT('%','kgon','%')
6.형변환방법이 다르다.
ORACLE에서는 TO_CHAR, TO_NUMBER을 사용하여 형을 변환하지만 MYSQL에서는 CAST를 사용하여 형을 변환한다.
(ORACLE) SELECT TO_CHAR(632) FROM DUAL
(MYSQL ) SELECT CAST(1234 AS CHAR) FROM DUAL
7.페이징 처리가 다르다.
ORACLE은 ROWNUM을 이용하여 WHERE에서 BETWEEN으로 1~10번째자료를 나타낸다.
MYSQL은 LIMIT를 사용하여 1~10번째자료를 나타낸다.
(ORACLE) SELECT * FROM ( SELECT ROWNUM , A.* FROM (SELECT * FROM KGON) A )WHERE ROWNUM BETWEEN 0 AND 10
(MYSQL ) SELECT * FROM KGON LIMIT 0, 10
8.시퀀스사용시 다음번호 불러오는 방법이 다르다.
ORACLE은 시퀀스명.NEXTVAL을 사용하지만 MYSQL은 시퀀스명.CURRVAL를 사용합니다.
'DataBase' 카테고리의 다른 글
트랜잭션과 무결성 (0) | 2023.10.20 |
---|---|
[MySQL] 계정 생성 및 권한 부여 (0) | 2021.04.22 |
[Oracle] 제약조건 (0) | 2021.04.16 |
[MySQL] 접속 (0) | 2021.04.15 |
[Oracle] 시퀀스(Sequence) (0) | 2021.04.14 |