오라클 데이터 검색 – Scalar Function(2) 문자형 함수

지난 시간을 통해 느끼셨듯이 Scalar 함수는 그리 어렵지 않습니다.
함수 이름만으로도 그 뜻이 짐작이 되고 사용법도 그리 복잡하지 않습니다.
오늘은 지난 시간에 이어 문자형 함수에 대해 그 종류를 간략하게 알아보고 간단한 실습을 해보도록 하겠습니다.

  1. 문자형 함수의 종류

  2. UPPER, LOWER, INITCAP 함수
    백문이 불여일타, 일단 입력해 보고 그 결과를 봅시다.
    SQL*Plus를 실행해서 다음 문장을 직접 입력해 보세요.
    SELECT EMP_NUM,
        LOWER(LAST_NAME),
        INITCAP(FIRST_NAME),
        UPPER(ADDRESS)
    FROM EMP;

  3. CONCAT 함수
    문자열 합성 함수라고 했죠?
    직접 한번 해보세요.

    SELECT CONCAT( LAST_NAME, FIRST_NAME )
    FROM        EMP;


    성과 이름이 모두 붙어서 출력됩니다.

    그럼 이렇게 해보면 어떨까요?
    SELECT CONCAT(FIRST_NAME, ‘님’ )
    FROM EMP;

    직접 그 결과를 확인해 보세요.

  4. SUBSTR 함수
    이건 조금 설명 드려야겠네요.
    일단
    SUBSTR(arg1, start_position, length)와 같은 형식으로 쓰입니다.
    여기서 arg1에는 컬럼 이름이 옵니다.
    start_position이 양수이면 왼쪽부터 시작, 음수이면 오른쪽부터 시작하여 length 크기만큼 문자열을 자릅니다. 만약 length를 생략하면 나머지 start_position에서 시작하여 나머지 모두를 자릅니다.

    그럼 아래 문장을 직접 입력해서 그 결과를 살펴 보세요.
    SELECT SUBSTR( LAST_NAME, 2, 3 )
    FROM EMP;

    이렇게 하면 또 어떨까요?
    SELECT SUBSTR( FIRST_NAME, -3)
    FROM        EMP;

    그냥 FIRST_NAME을 SELECT했을 때와 비교해 보세요.

  5. LENGTH 함수
    특정 컬럼의 길이를 구하기 위한 함수인데, 한글과 영문 모두 1바이트로 취급합니다.
    데이터의 유형별로 LENGTH 함수를 적용했을 때 구할 수 있는 길이가 조금 다른데,
    NUMBER형 데이터라면 실제 길이를 구하고
    DATE형 데이터라면 Default Date Format의 길이를 구합니다.
    CHAR형이라면 정의된 길이를 구하고
    VARCHAR2형이라면 정의된 길이와 상관없이 실제 길이를 구합니다.
    LONG 형도 실제 길이를 구합니다.

    자, 실습해 볼까요?
    SELECT LENGTH(EMP_NUM),
    LENGTH(ADDRESS)
    FROM EMP;

  6. LPAD/RPAD 함수
    문자열의 왼쪽과 오른쪽의 공백을 특정 지정한 문자열로 채우는데 다음과 같이 사용합니다.
    LPAD( arg1, length, arg2 )
    RPAD( arg1, length, arg2 )
    이때 arg1은 Column Name이나 문자열이어야 하고,
    length는 전체 자릿수를 나타냅니다.
    채우고자 하는 문자는 arg2 자리에 씁니다. 만약 생갹하면 공백으로 채워집니다.

    아래와 같이 입력하면 어떤 결과가 나올까요?
    SELECT LPAD( PLAY_TIME, 5, ‘*’ ),
    RPAD(PLAY_TIME, 5, ‘*’ )
    FROM VIDEO;

    요건 직접 한번 해보세요.

  7. LTRIM/RTRIM 함수
    일단 형식부터 봅시다.
    LTRIM( arg1, arg2 )
    RTRIM( arg1, arg2 )
    arg1의 문자열에서 더 이상 arg2의 문자열을 만나지 않을 때까지 지운 결과를 구합니다.
    이때 arg1은 Column Name이나 문자열이고, arg2도 문자열입니다.

    아래와 같이 입력해 보세요.
    SELECT LTRIM( ‘XXAXBA’, ‘X’ ),
    RTRIM(‘XXAXBA’ , ‘A’ )
    FROM DUAL;

    결과가 예측됩니까?
    LTRIM의 결과는 AXBA, RTRIM의 결과는 XXAXB가 되겠죠?

  8. TRANSLATE/REPLACE
    a 문자를 b문자로 바꾸고 싶다면,
    TRANSLATE(arg, a, b)
    과 같이 쓰면 됩니다.
    이때 arg1은 Column Name이나 문자열이어야 합니다.
    예를 들어,
    SELECT TRANSLATE (‘AABBA’, ‘B’, ‘C’)
    FROM DUAL;

    라고 쓰면
    결과는 AACCA가 되겠죠.

    REPLACE를 사용하면 한 문자가 아니라 문자열로 교체할 수 있습니다.
    예를 들어,
    SELECT REPLACE (‘JACK and JUE’, ‘J’, ‘BL’)
    FROM DUAL;

    라고 쓰면
    결과는 BLACK and BLUE가 되겠죠.



어려운 것은 없었을 것입니다.
앞으로 10여회의 강좌만 더하면 기초 과정이 끝납니다.

동주 자는 모습이 너무 귀엽네요.
이상 동주아빠 손병목이었습니다.

위로 스크롤