문자열 함수 정리

TJK·2025년 8월 22일

문자열 함수 정리

문자열 함수는 데이터를 원하는 형식으로 가공하거나 특정 패턴을 찾아내는 데 사용됩니다. SQLD 시험에서는 각 함수의 정확한 기능, 특히 시작 인덱스, 공백 처리, 그리고 DBMS별 차이를 정확히 구분하는 문제가 자주 출제됩니다.


1. 주요 문자열 함수 (시험 빈출)

함수개념시험 포인트 (★★★★★)
SUBSTR(문자열, 시작, 길이)문자열 일부 추출시작 위치는 1부터 시작. 길이가 생략되면 끝까지 반환.
INSTR(문자열, 찾을문자, [, 시작][, 순서])특정 문자의 위치 반환결과는 위치 값(숫자), 문자열이 아님.
LENGTH(문자열)문자열 길이 반환공백을 포함한 전체 길이를 반환.
TRIM(문자열)양쪽 공백/특정 문자 제거기본은 양쪽의 공백 제거. TRIM(FROM 'XXX') 형식으로 특정 문자 제거 가능.
LPAD(문자열, 길이, 채울문자)왼쪽을 채움LEFT PAD, 왼쪽을 지정된 길이까지 채움.
RPAD(문자열, 길이, 채울문자)오른쪽을 채움RIGHT PAD, 오른쪽을 지정된 길이까지 채움.
REPLACE(문자열, 찾을문자, 바꿀문자)문자열 치환문자열의 일부를 다른 문자열로 모두 바꿈. NULL도 치환 가능.
UPPER / LOWER대소문자 변환문자열 전체를 대문자/소문자로 변환.

2. DBMS별 문자열 연결 연산자 (★★★★★)

  • Oracle: || (파이프 기호)
    • 예: SELECT 'SQLD' || ' EXAM' FROM DUAL;
  • ANSI 표준 & SQL Server: CONCAT() 함수
    • 예: SELECT CONCAT('SQLD', ' EXAM');
  • 시험 포인트: SQLD 시험은 Oracle을 기반으로 출제되므로 || 사용법을 알아두는 것이 중요합니다.

3. SQLD 시험 핵심 포인트

  • SUBSTRINSTR 구분: SUBSTR결과가 문자열, INSTR은 **결과가 숫자(위치)**라는 점을 명확히 구분해야 합니다.
  • TRIM과 공백: TRIM(' SQLD ')의 결과는 'SQLD' 입니다.
  • LPADRPAD의 방향: 왼쪽(L)과 오른쪽(R)을 정확히 구분해야 합니다.

4. 암기 팁

  • SUBSTRString Sub (문자열 일부)
  • INSTRIn String (문자열 안의 위치)
  • LPADLeft PAD (왼쪽 채우기)
  • RPADRight PAD (오른쪽 채우기)

실전 기출 문제 스타일

1. 다음 SQL문의 실행 결과는?

SELECT SUBSTR('SQLD EXAM', 3, 3) FROM DUAL;

A. SQL
B. LD
C. LD
D. LDE

2. 다음 SQL문의 실행 결과는?

SELECT INSTR('SQLD EXAM', 'E', 1, 1) FROM DUAL;

A. 5
B. 6
C. 7
D. 8

3. 다음 중 REPLACE('A-B-C', '-', ' ')의 실행 결과와 동일한 것은?
A. TRIM(' A B C ')
B. CONCAT('A','B','C')
C. SELECT 'A B C' FROM DUAL;
D. REPLACE('A-B-C', '-', '')

4. 다음 SQL문의 결과가 '00SQLD'가 되기 위한 쿼리로 올바른 것은?
A. RPAD('SQLD', 6, '0')
B. LPAD('SQLD', 6, '0')
C. LPAD('SQLD', 2, '0')
D. TRIM('0' FROM '00SQLD')


정답 및 해설

  • 문제 1 정답: C
    • 해설: SUBSTR은 1부터 시작하므로, 3번째 글자인 'L'부터 3글자를 추출합니다. 'L', 'D', ' '(공백)이 포함되어 'LD '가 됩니다.
  • 문제 2 정답: B
    • 해설: 'SQLD EXAM'에서 'E'는 6번째 위치에 있습니다. INSTR은 특정 문자의 위치를 숫자로 반환합니다.
  • 문제 3 정답: C
    • 해설: REPLACE('A-B-C', '-', ' ')-를 공백으로 바꾸므로 'A B C'가 됩니다.
  • 문제 4 정답: B
    • 해설: LPAD('SQLD', 6, '0')'SQLD' 문자열의 왼쪽에 0을 채워 총 길이가 6이 되도록 만듭니다.
profile
Hello world!

0개의 댓글