Day02-6. Oracle 함수 -6.

이하연·2023년 2월 10일

DBMS 교육

목록 보기
11/22

두 번째 Oracle 문자열 함수 포스팅입니다. 구차하게 서론을 늘어놓을 여유가 없으니.. 바로 가보겠습니다.

Oracle 문자열 함수 두 번째 설명 개시합니다.

6. substr

substring 이라는 문자열 메소드는 자바에서 이전에 사용했었죠? 이는 이와 같은 기능을 합니다. 문자열을 어느 시점에서 잘라주는 기능이죠.

substr( (문자열), 자를 위치)


"good morning john"이라는 문자열이 있다고 해봅시다.

우리는 이 good을 잘라줄겁니다. 그럼 문자열의 첫 글자는 1이니, 4까지 잘라주면 되겠죠.

8로 바꾸면 "morning"에서 "rnin"만 나올테고요.

7. replace

이 특정 문자 위치에서 문자를 바꿔줄 수도 있습니다.

replace( (문자열), (바꿀 문자열), (바뀔 문자열))

예시를 보시면 "good morning tom"이라는 문자열이 있습니다.

이를 "morning"에서 "evening"으로 바꿔보면 이러한 값이 변환되어 나타납니다.

8. 날짜 함수, 현재 달의 마지막 날짜

전전 포스팅에서 SYSDATE()은 현재 날짜를 조회하는 함수라고 설명드렸었죠. 그럼 이를 조회하려고 하면 이러하게 나타나는데요.

SYSDATE : 현재 날짜

날짜 더하기

문자열 함수 중에는 날짜를 더해주는 함수 또한 있습니다. 우리는 그 중에서 ADD_MONTHS() 함수를 이용해보겠습니다.

파라미터에는 현재 날짜와, 더해줄 달의 갯수를 설정해주시면 됩니다.


그렇게 되면 9월이네요.

그럼 이번 달의 마지막 날짜는 어떻게 알 수 있을까요?

간단합니다. 우리에게는 LAST_DAY라는 함수로 마지막 날을 조회할 수 있습니다.

LAST_DAY : 마지막 날

9. 날짜, 글자 변환

우리는 문자열을 날짜 형식에 맞춰 글자로 변환할수도 있습니다.

이에 대한 함수는 2가지가 있습니다.

1. to_char : 글자 형식으로 변환
2. to_date : 날짜 형식으로 변환


먼저, 글자로 변환하는 법을 알아보겠습니다. 이 역시, 복잡해보이지만 전의 함수들과 같습니다. 현재 값과, 변하게 할 형식 값을 지정해주면 됩니다. 별칭은 전 그냥 넣었습니다.

날짜 형식으로 바꾸는 방법도 같이 알아볼까요. 이번에는 .todate()를 사용해봅시다.

방식은 이전과 같습니다.

10. 데이터 값 변경

데이터를 보다보면 null 이라고 표시가 되있는 것이 읽는 입장에서는 살짝 복잡하죠. 이것을 다른 데이터로 변환시켜줄 수 있습니다. 또한 다른 데이터도 변경해줄 수 있습니다.

nvl() : null 값 변경 함수

null값 변경부터 알아보도록 하겠습니다.

적용 방식은 이전 함수들과 같이, null이 있는 카테고리명에 (,) 로 변환할 데이터를 넣어주시면 됩니다.

위와 같이 null 데이터가 0으로 변환된 것이 보이시죠.

DECODE() : 기존 데이터 다른 데이터로 변경

Decode의 적용 방식도 Null 과 같습니다. 카테고리를 불러오고, 변환할 데이터를 고르고, 변환 후 표시될 데이터를 지정해주시면 됩니다.

그럼 아래와 같이 다 변환된 것을 보실 수 있습니다.

11. 조건문

우리가 배운 JAVA에서는 If ~ else 혹은 switch 라는 조건문이 있었죠. Oracle에게는 CASE문이 이를 대체하는 조건문으로 있습니다.

CASE : 조건, WHEN은 if : THEN이 리턴할 결과값으로 작용


위의 예시는 이전과 같습니다. DEPARTMENT_ID가 20일 시, 'MA'로 데이터를 변경할 수 있도록 해주고 있습니다.

그럼 성공적으로 조건문이 들어가는지 볼까요?


잘 나오네요. 이번에는 NULL을 변경해주지 않아서 그대로 나온 것입니다.

끝!

이로서 Oracle의 다양한 함수들에 대한 설명을 마칩니다. 다음 포스팅에서 뵙겠습니다.

profile
애옹.

0개의 댓글