ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6.2 문자 함수
    Oracle 2023. 8. 1. 14:40

    6.2. 문자함수

    • 문자값를 가공하거나 문자값으로부터 특정 결과를 얻고자 할 때 사용

    6.2.1 UPPER, LOWER, INITCAP

    • UPPER : 주어진 문자를 모두 대문자로 변환
    • LOWER : 주어진 문자를 모두 소문자로 변환
    • INITCAP : 주어진 문자 중 첫 글자는 대문자로, 나머지는 소문자로 변환
    SELECT ename, UPPER(ename), LOWER(ename), INITCAP(ename)
    FROM emp;

    • 'KimHUgo'와 'kimhugo', 'KimHuGo'는 모두 다른 문자로 인식한다.
    • 이 때 모든 문자를 대문자, 혹은 소문자로 변환하여 원하는 조건의 문자를 찾는데 활용할 수 있다.

     

    6.2.2 LENGTH, LENGTHB

    • LENGTH : 문자열의 길이를 반환
    • LENGTHB : 문자열의 바이트 수를 반환
    SELECT LENGTH('ENGLISH'), LENGTH('한글'), LENGTHB('ENGLISH'), LENGTHB('한글')
    FROM dual;

    • LENGTH는 영어든, 한글이든 정확한 글자수를 반환한다.
    • LENGTHB를 통해 오라클db에서 영어 한 글자를 1바이트, 한글 한 글자를 3바이트로 취급하는 걸 알 수 있다.

     

    6.2.3 SUBSTR

    • 문자열의 일부를 추출. 첫 번째 문자의 위치는 0이 아니라 1이다.
    • SUBSTR(문자열, 시작 위치, 추출 길이) : 주어진 '문자열'의 '시작 위치'부터 '추출 길이'만큼 추출. 시작 위치가 음수인 경우 마지막 위치부터 거슬러 올라간 위치에서부터 시작.
    • SUBSTR(문자열, 시작 위치) : '문자열'의 '시작 위치'부터 끝까지 추출. 시작 위치가 음수인 경우 마지막 위치부터 거슬러 올라간 위치부터 끝까지 추출.
    SELECT ename, SUBSTR(ename, 1, 2), SUBSTR(ename, 3, 2), SUBSTR(ename, 3)
    FROM emp;

    6.2.4. INSTR

    • 문자열 안에서 특정 문자나 문자열의 위치를 반환
    INSTR({대상 문자열},
          {위치를 찾으려는 대상문자 또는 문자열},
          [위치 찾기를 시작할 위치],
          [시작 위치에서부터 몇 번째로 등장하는 대상 문자인지]

    {} : 필수, [] : 선택

     

    SELECT INSTR('HELLO, ORACLE!', 'L') AS INSTR_1,
           INSTR('HELLO, ORACLE!', 'L', 5) AS INSTR_2,
           INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_3
    FROM dual;

    INSTR_1 : HELLO, ORACLE!

    INSTR_2 : HELLO, ORACLE!

    INSTR_3 : HELLO, ORACLE!

     

    • 이름에 'S'가 들어가는 사원의 정보 표기하기
    SELECT *
    FROM emp
    WHERE INSTR(ename, 'S') > 0;

     

    6.2.5 REPLACE

    • 특정 문자열 속 문자를 다른 문자로 대체
    • 대체할 문자를 입력하지 않으면, 대상 문자는 삭제
    SELECT '010-1234-5678' AS REPLACE_BEFORE,
           REPLACE('010-1234-5678', '-', '*') AS REPLACE_1,
           REPLACE('010-1234-5678', '-') AS REPLACE_2
    FROM dual;

    6.2.6 LPAD, RPAD

    • 데이터와 자릿수를 지정한 후 데이터의 길이가 짧아 자릿수가 남을 경우, 남은 자리를 특정 문자로 채움
    • LPAD는 빈 자리를 왼쪽에 채우고, RPAD는 오른쪽에 채운다.
    • 채울 문자를 지정하지 않는 경우, 공백으로 채운다.
    • 데이터의 일부만 노출해야 하는 정보(개인 정보 등)을 출력할 때 자주 사용
    LPAD({문자열 또는 열이름}, {데이터 자릿수}, [남은 자리에 채울 문자])
    RPAD({문자열 또는 열이름}, {데이터 자릿수}, [남은 자리에 채울 문자])
    SELECT 'ORACLE',
           LPAD('ORACLE', 10, '#') AS LPAD_1,
           RPAD('ORACLE', 10, '*') AS RPAD_1,
           LPAD('ORACLE', 10) AS LPAD_2,
           RPAD('ORACLE', 10) AS RPAD_2
    FROM dual;

    6.2.7. CONCAT

    • 두 문자열을 하나로 연결
    • 열이나 문자열 모두 지정 가능
    SELECT CONCAT(empno, ename),
           CONCAT(empno, CONCAT(' : ', ename))
    FROM emp
    WHERE ename = 'SCOTT';

     

    6.2.8 TRIM, LTRIM, RTRIM

    • 문자열 내에서 특정 문자를 지움
Designed by Tistory.