반응형

Oracle vs MySQL

 

DB 사용시 Oracle 을 더 많이 사용하여, 배웠던 MySQL 에 대해서는 좀 잊은 것 같다.

2 개의 문법 차이가 있기 때문에 정리할 필요성을 느꼈다. 

 

1. 공백 치환 함수 

Oracle : select NVL('컬럼명', '') from dual;

MySQL : select IFNULL('컬럼명', '') from dual;

 

2. 현재 날짜 및 시간

Oracle : sysdate 

MySQL : now()

 

3. 날짜 Format

Oracle : to_char(sysdate, 'MMDDYYYYHH24MISS)

MYSQL : date_format(now(), '%Y%m%d%H%i%s') 

-> 이곳에서 대문자 Y는 4자리 년도, 소문자 y는 2자리 년도로 인식한다.

 

4. 요일 관련 날짜 Format

Oracle : 요일을 1 ~ 7 로 인식 -> to_char(sysdate -1, 'D')

MySQL : 요일을 0 ~ 6 으로 인식 -> date_format(date_sub(now(), interval 1 day, '%w')

* JavaScript 가 0 ~ 6 으로 인식하므로 Oracle 에서 -1 을 해서 맞추는 경우가 많음 

 

5. Like 절 '%' 사용 

Oracle : Like '%'||'문자'||'%' 이런 식으로 컬럼명 앞뒤로 '%' 사용 

MySQL : Like concat('문자', '%') 이런식으로 concat 사용 

 

6. 형변환

Oracle : To_char, To_number 등 사용 

MySQL : Cast 

select to_char(123) from dual;

 

7. 대소문자 구분

Oracle : 구분없이 사용

MySQL : 기본적으로 구분하지만 설정에서 변경 가능 

 

8. rownum

Oracle : where 절에서 rownum > 5 and rownum =< 15

MySQL : where 절을 하용하지 않고 limit 5, 15

 

9. 문자열 자르기

Oracle : substr(문자열, 1, 3)

MySQL : substring(문자열, 1, 3), left(문자열, 3), right(문자열, 3)

 

10. sequence 는 둘다 사용자 함수를 만들어서 아래와 같이 사용

Oracle : 시퀀스명.nextval

MySQL : 시퀀스명.currval

 

11. 문자열 병합 ( - 사용하여 문자열 연결 가정 )

Oracle : 문자열 ( 또는 컬럼 ) || '-'

MySQL : concat(문자열 ( 또는 컬럼 ), '-')

 

12. 예약어가 컬럼명일 경우 

Oracle : 컬럼명을 "" 로 감싸기 (ex. select "column" from tab)

MySQL : 컬럼명을 Tab 키 위에 있는 ` 로 감싸기 (single 쿼테이션)

 

13. 저장 프로시저의 여부를 파악하여 create

Oracle : create or replace procedure 프로시저명

MySQL : drop procedure if exists 프로시저명; 을 한 뒤 create procedure 프로시저명 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기