ebson

오라클DB와 마리아DB 문법 차이점 정리 본문

DATABASE STUDY

오라클DB와 마리아DB 문법 차이점 정리

ebson 2022. 8. 28. 13:11

#1. 공백치환함수 

ORACLE : SELECT NVL(A, B) FROM DUAL ;

MARIA : SELECT IFNULL(A, B) FROM DUAL;



#2. 현재날짜시간

ORACLE : SYSDATE

MARIA : NOW()



#3. 날짜포맷

ORACLE : TO_CHAR(SYSDATE, , ‘YYYYMMDDHH24MISS’)

MARIA : DATE_FORMAT(NOW(), ‘%Y%M%D%H%i%s’) → 여기서 대문자 Y는 4자리 년도, 소문자 y는 2자리 년도



#4. 날짜포맷(요일)

ORACLE : 요일을 1-7으로 인식 → TO_CHAR(SYSDATE-1, ‘D’)

MARIA : 요일을 0-6으로 인식 → DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), ‘%w’)

*자바스크립트에서는 0-6으로 인식



#5. LIKE절 ‘%’사용법

ORACLE : LIKE ‘% || ‘문자’ ||  %’ → 컬럼명 앞뒤로 ‘%’를 붙임

MARIA : LIKE CONCAT(‘문자’, ‘%’) → CONCAT 함수 사용



#6. 형변환

ORACLE : TO_CHAR, TO_NUMBER 등

MARIA : CAST

EX) SELECT TO_CHAR(1234) FROM DUAL ;

 → SELECT CAST(1234 AS CHAR) FROM DUAL ;



#7. 대소문자 구분

ORACLE : 구분없음

MARIA : 구분하나, 설정으로 변경 가능함



#8. ROWNUM

ORACLE : WHERE절에 ROWNUM > 5 AND ROWNUM =< 10

MARIA : WHERE절 없이 LIMIT 5, 10



#9. SEQUENCE는 둘 다 사용자 함수를 만들어 아래와 같이 사용

ORACLE : 시퀀스명.NEXTVAL

MARIA : 시퀀스명.CURRVAL (또는 AUTOiNCREMENT)



#10. 문자열자르기

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

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



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

ORACLE : 문자열(또는 컬럼) || ‘-’

MARIA : CONCAT(문자열(또는컬럼), ‘-’)



#12. 예약어가 컬럼명일 때

ORACLE : 컬럼명을 따옴표(‘’)로 감싸기

MARIA : 컬럼명을 TAB 키 위에 있는 키(``)로 감싸기



#13. 저장프로시저 있는지 여부 파악해서 CREATE하기

ORACLE : CREATE OR REPLACE PROCEDURE 프로시저명

MARIA : DROP PROCEDURE IF EXISTS 프로시저명; 을 한 뒤에 CREATE PROCEDURE 프로시저명



#14. JOIN

ORACLE : SELECT * FROM A, B WHERE A.ID = B.ID(+)

MARIA : SELECT * FROM A LEFT OUTER JOIN B ON A.ID = B.ID



#15. TO_DATE(), STR_TO_DATE()

ORACLE : TO_DATE(‘202201010101’, ‘YYYY-MM-DD HH24:MI’)

MARIA : STR_TO_DATE(‘202201010101’, ‘%Y%m%d%s’)



#16. TRUNC(), TRUNCATE()

ORACLE : SELECT TRUNC(123456.12, 1) → 123456.1

SELECT TRUNC(123456.12, -1) → 123450

SELECT TRUNC(123456.12, 3) → 123456.120

SELECT TRUNC(123456.12, -3) → 123000

MARIA :  SELECT TRUNCATE(123456.12, 1); → 123456.1

SELECT TRUNCATE(123456.12, -1) → 123450

SELECT TRUNCATE(123456.12, 3) → 123456.120

SELECT TRUNCATE(123456.12, -3) → 123000



#17. WM_CONCAT(), GROUP_CONCAT() → 여러 행의 데이터들을 한 행으로 출력

ORACLE : SELECT WM_CONCAT(COL) 

      FROM TAB

MARIA : SELECT COL1

    , GROUP_CONCAT(COL2)

  FROM TAB

  GROUP BY COL1



#18. DECODE, IF

ORACLE : SELECT DECODE(COL%2, 0,  ‘EVEN’, 1, ‘ODD’, NULL)

MARIA : SELECT IF(COL%2=0, ‘EVEN’, ‘ODD’) FROM TAB




 

참고 출처 

https://lollaziest.tistory.com/98 

'DATABASE STUDY' 카테고리의 다른 글

오라클 SEQUENCE  (0) 2022.08.28
오라클 PL/SQL옵티마이저  (0) 2022.08.28
오라클 SQL - JOIN  (1) 2022.08.28
오라클 SQL - SUBQUERY  (1) 2022.08.28
마리아DB에서 오라클 PIVOT 기능 사용하기  (0) 2022.08.28
Comments