참치코더의 꿈 메모장

2021/07/13 Oracle - 함수 본문

Oracle

2021/07/13 Oracle - 함수

참치깡 2021. 7. 13. 20:31
728x90

대 소문자를 바꿔 주는 UPPER, LOWER, INITCAP 함수

 

UPPER(문자열) : 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환

LOWER(문자열) : 괄호 항 문자 데이터를 모두 소문자로 변환하여 반환

INITCAP(문자열) : 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 

 

문자열 길이를 구하는 LENGTH 함수

 

특정 문자열의 길이를 구할 때 LENGTH 함수를 사용한다. 

 

LENGTHB  함수

 

LENGTH 함수와 사용 방식은 같지만 문자열 데이터 길이가 아닌 바이트 수를 반환하는 LENGTHB 함수도 

존재한다

 

* 한 글자당 영어는 1byte 한글은 2byte로 처리된다

* DUAL 테이블은 오라클의 최고 권한 관리자 계정 sys소유의 테이블  (더미테이블)

 

문자열 일부를 추출하는 SUBSTR 함수

 

SUBSTR(문자열 데이터, 시작 위치, 추출 길이)

 

문자열 데이터의 시작 위치부터 추출 길이만큼 추출한다. 

시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 시작한다.

 

SUBSTR(문자열 데이터, 시작 위치)

 

문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출한다.

시작 위치가 음수일 경우에는 마지막 위치부터 거슬러 올라간 위치에서 끝까지 추출한다.

 

INSTR([대상 문자열 데이터(필수)],[위치를 찾으려는 부분 문자(필수)]

         [위치 찾기를 시작할 대상 문자열 데이터 위치(선택, 기본값은 1)],

         [시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은 1)])

 

 

REPLACE 함수

REPLACE 함수는 특정 문자열 데이터에 포함된 문자를 다른 문자로 대체할 경우에 유용한 함수이다.

 

REPLACE([문자열 데이터 또는 열 이름], [찾는 문자(필수)], [대체할 문자(선택)])

 

* 만약 대체할 문자를 입력하지 않는다면 찾는 문자로 지정한 문자는 문자열 데이터에서 삭제된다.

 

SELECT '010-1234-5678' AS REPLACE_BEFORE

       REPLACE('010-1234-5678','-', ' ')AS REPLACE_1,

       REPLACE('010-1234-5678', '-')AS REPLACE_2

FROM DUAL;

 

* REPLACE 함수는 카드 번호나 시간을 나타내는 데이터처럼 특정 문자가 중간중간 끼어잇는 데이터를 없애거나 

  변경할 때 사용한다.

 

LPAD, RPAD 함수

데이터와 자릿수를 지정한후 데이터 길이가 지정한 자릿수보다 작을 경우에 나머지 공간으로 채우는 함수.

 

* LPAD는 남은 빈 공간을 왼쪽에 채우고 RPAD는 오른쪽에 채운다.

 

LPAD([문자열 데이터 또는 열이름(필수)],[데이터의 자릿수(필수)], [빈 공간에 채울 문자(선택)])

RPAD([문자열 데이터 또는 열이름(필수)],[데이터의 쟈릿수(필수)],[빈 공간에 채울 문자(선택)])

 

SELECT 'Oracle',

          LPAD('Oracle',10,'#') AS LPAD_1,

          RPAD('Oracle',20,'*') AS RPAD_1,

          LPAD('Oracle', 10) AS LPAD_2,

          RPAD('Oracle',10) AS RPAD_2

FROM DUAL;

 

* 패딩 처리는 데이터의 일부만 노출해야 하는 개인정보를 출력할 때 사용한다.

 

SELECT

          RPAD('971225-', 14, '*') AS RPAD_JMNO,

          RPAD('010-1234-', 13, '*') AS RPAD_PHONE

FROM DUAL;

 

CONCAT 함수

CONCAT 함수는 두 개의 문자열 데이터를 하나의 데이터로 연결해 주는 역할을 한다.

 

SELECT CONCAT(EMPNO, ENAME),

          CONCAT(EMPNO, CONCAT(' : ', ENAME))

FROM EMP

WHERE ENAME = 'SCOTT';

 

* 실무에서는 CONCAT 대신에 || 연산자를 더 많이 사용한다. 

 

TRIM, LTRIM, RTRIM

 

TRIM, LTRIM, RTRIM 문자열 데이터 내에서 특정 문자를 지우기 위해 사용한다.

 

TRIM

 

*삭제할 문자가 생략된 경우에 기본적으로 공백을 제거한다.

 

TRIM 삭제 옵션

 

LEADING : 왼쪽에 있는 글자 제거

TRAILING: 오른쪽에 있는 글자 제거 

BOTH : 양쪽의 글자를 모두 제거

 

TRIM 함수의 사용법

 

TRIM[삭제 옵션(선택)][삭제할 문자(선택)] FROM[원본 문자열 데이터(필수)]

 

SELECT '[' || TRIM('_ _Oracle_ _') || ']' AS TRIM,
          '[' || TRIM(LEADING FROM '_ _Oracle_ _')|| ']' AS TRIM_LEADING,

          '[' || TRIM(TRAILING FROM '_ _Oracle_ _') || ']' AS TRIM_TRAILING

          '[' || TRIM(BOTH FROM '_ _Oracle_ _')|| ']' AS TRIM_BOTH

FROM DUAL;

 

LTRIM, RTRIM

 

* TRIM과 다른 점은 삭제할 문자를 하나만 지정하는 것이 아니라 여러 문자 지정이 가능하다. 

 

LTRIM([원본 문자열 데이터(필수)], [삭제할 문자 집합(선택)])

RTRIM([원본 문자열 데이터(필수)], [삭제할 문자 집합(선택)])

 

 

 

 

728x90
Comments