들어가며
오라클 디비와 mysql 디비의 사용에 따라 차이점을 비교 정리한다.
1. 공백치환 함수 ( NULL값 확인 함수 )
ORACLE에서는 NVL함수를 사용하지만 MYSQL에서는 IFNULL을 사용한다.
Oracle : SELECT NVL('컬럼명', '') FROM DUAL;
MySql : SELECT IFNULL('컬럼명', '') FROM DUAL;
2. 현재 날짜시간
ORACLE에서는 SYSDATE를 사용하지만 MYSQL에서는 NOW()함수를 사용한다.
Oracle : SYSDATE
Mysql : NOW()
3. 날짜포멧
ORACLE에서는 날짜를 STRING으로 변경시 TO_CHAR()함수를 사용하지만 MYSQL에서는 DATE_FORMAT()함수를 사용한다.
Oracle : TO_CHAR(sysdate,'MMDDYYYYHH24MISS')
Mysql : DATE_FORMAT(now(),'%Y%m%d%H%i%s') -> 여기서 대문자Y는 4자리 년도(2021), 소문자 y는 2자리 년도(21)
4. 날짜 포멧 : 요일
Oracle : 요일이 1~7로 인식함 -> TO_CHAR(SYSDATE - 1, 'D')
Mysql : 요일이 0~6으로 인식 -> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%w')
* 참고로 자바스크립트가 0~6으로 인식하기에 Oracle 쿼리에서 -1을 해서 맞추는 경우가 많다.
* 요일 순서 : 일,월,화,수,목,금,토
5. Like절 '%' 사용법
ORACLE에서는 문자와 문자를 합칠때 '||'을 사용하고, MYSQL에서는 문자와 문자를 합칠때 CONCAT()함수를 사용합니다.
Oracle : SELECT USER_ID FROM KGON WHERE USER_ID LIKE '%' || '문자' || '%'
Mysql : SELECT USER_ID FROM KGON WHERE USER_ID LIKE CONCAT('%','문자','%')
6. 형변환
ORACLE에서는 TO_CHAR, TO_NUMBER을 사용하여 형을 변환하지만 MYSQL에서는 CAST를 사용하여 형을 변환합니다.
Oracle : SELECT TO_CHAR(632) FROM DUAL (To_char, To_number 등)
Mysql : SELECT CAST(1234 AS CHAR) FROM DUAL
7. 대소문자 구분함
Oracle : 구분없음
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), LEFT(문자열, 3), RIGHT(문자열, 3)
11. 문자열 합치기 ( - 문자열을 연결한다고 가정)
Oracle: 문자열(또는 컬럼) ||' - '
Mysql: CONCAT(문자열(또는 컬럼), ' - ')
12. 예약어가 컬럼명일 때
Oracle: 컬럼명을 따옴표(")로 감싸기 (예: select "column" from tab)
Mysql: 컬럼명을 TAB 키 위에 있는 ` 키 ( Single quotation )로 감싸기
13. 저장프로시저 있는지 여부 파악해서 Create 하기
Oracle: CREATE OR REPLACE PROCEDURE 프로시저명
Mysql: DROP PROCEDURE IF EXISTS 프로시저명; 을 한 뒤에 CREATE PROCEDURE 프로시저명
14. 페이징처리가 다름
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
계속 업데이트....
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'Database' 카테고리의 다른 글
SQL - JOIN (0) | 2021.05.23 |
---|---|
DB - 데이터베이스 관련 용어 정리 (0) | 2021.05.18 |
DB - Oracle SQL SELECT 쿼리 실행 순서 (0) | 2021.05.12 |
DB - Transaction 정리 (0) | 2021.05.01 |
DB - MySql 명령어 (0) | 2021.04.28 |
댓글