미소의 세상

오라클 MYSQL 문법 차이 본문

SQL

오라클 MYSQL 문법 차이

짱미소 2022. 3. 2. 21:44

1. 공백치환 함수 ( NVL -> IFNULL )

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

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

 

2. 현재 날짜시간

Oracle : SYSDATE

Mysql  : NOW() 

 

3. 날짜포멧 

Oracle : TO_CHAR(sysdate,'MMDDYYYYHH24MISS')

Mysql  : DATE_FORMAT(now(),'%Y%m%d%H%i%s')  -> 여기서 대문자Y는 4자리 년도, 소문자 y는 2자리 년도

 

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 : Like '%'||'문자'||'%' 이런식으로 컬럼명 앞뒤로 '%'를 붙여주면 된다
Mysql : LIKE CONCAT('문자','%') 이런식으로 CONCAT 함수 사용
 
6. 형변환
Oracle : To_char, To_number 등
Mysql : CAST
SELECT TO_CHAR(1234) FROM DUAL 
-> 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. 문자열 자르기

Oracle: SUBSTR(문자열, 1, 10)

Mysql: SUBSTRING(문자열, 1,10), LEFT(문자열, 3), RIGHT(문자열, 3)

 

10. 문자열 합치기 ( - 문자열을 연결한다고 가정)

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

Mysql: CONCAT(문자열(또는 컬럼), ' - ')

 

'SQL' 카테고리의 다른 글

프로시저의 장단점  (0) 2022.05.11
Mybatis #, $ 차이  (0) 2022.05.04
서브쿼리의 종류  (0) 2022.04.15
Mybatis와 비교한 JPA 장단점  (0) 2022.04.03
오라클 자주 사용하는 힌트 정리 (sql 튜닝)  (0) 2022.03.22
Comments