데이터베이스 관리에서 패턴 검색은 대규모 데이터셋에서 특정 조건에 맞는 데이터를 효율적으로 찾는 데 매우 유용한 기능입니다. 오라클 DB에서 제공하는 LIKE 연산자는 이러한 패턴 검색을 간단하면서도 강력하게 수행할 수 있는 도구입니다. 이번 글에서는 LIKE 연산자의 기본 사용법부터 고급 활용법까지, 다양한 예제와 함께 자세히 알아보겠습니다.
1. LIKE 연산자의 기본 개념
LIKE 연산자는 문자열 데이터에서 특정 패턴과 일치하는 데이터를 검색할 때 사용됩니다. 이때 패턴 매칭을 위해 와일드카드(%, _)를 사용합니다.
- % (퍼센트 기호)
0개 이상의 문자와 일치합니다.
예: 'A%'는 'A'로 시작하는 모든 문자열을 검색합니다. - _ (언더스코어)
정확히 1개의 문자와 일치합니다.
예: 'A_'는 'A'로 시작하고 두 번째 문자가 무엇이든 상관없는 문자열을 검색합니다.
2. 기본 사용법과 예제
2.1 특정 패턴 검색
다음 예제는 EMPLOYEES 테이블에서 특정 패턴을 검색하는 방법을 보여줍니다.
예제 1: 특정 문자로 시작하는 데이터 검색
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'J%';
- 설명:
FIRST_NAME 열에서 'J'로 시작하는 모든 이름을 검색합니다.
결과 예시:- John, James, Jennifer 등.
예제 2: 특정 문자로 끝나는 데이터 검색
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%son';
- 설명:
LAST_NAME 열에서 'son'으로 끝나는 모든 성을 검색합니다.
결과 예시:- Johnson, Wilson, Samson 등.
예제 3: 특정 길이의 데이터 검색
SELECT DEPARTMENT_NAME
FROM DEPARTMENTS
WHERE DEPARTMENT_NAME LIKE '___';
- 설명:
이름의 길이가 정확히 3자인 부서명을 검색합니다.
결과 예시:- IT, HR 등 (부서명은 조직마다 다름).
3. 고급 활용법
3.1 와일드카드 결합 사용
와일드카드를 조합하여 더욱 복잡한 패턴을 검색할 수 있습니다.
예제 4: 중간에 특정 문자가 포함된 데이터 검색
SELECT EMAIL
FROM EMPLOYEES
WHERE EMAIL LIKE '%_admin%';
- 설명:
이메일 주소 중간에 'admin'이 포함된 데이터를 검색합니다.
결과 예시:
3.2 NOT LIKE 연산자
NOT LIKE를 사용하면 특정 패턴과 일치하지 않는 데이터를 검색할 수 있습니다.
예제 5: 특정 패턴을 제외한 데이터 검색
SELECT PHONE_NUMBER
FROM EMPLOYEES
WHERE PHONE_NUMBER NOT LIKE '555%';
- 설명:
전화번호가 '555'로 시작하지 않는 데이터를 검색합니다.
결과 예시:- 444-1234, 666-7890 등.
3.3 ESCAPE를 사용한 특수 문자 검색
특수 문자(%, _)를 데이터로 검색하려면 ESCAPE 키워드를 사용해야 합니다.
예제 6: 특수 문자 포함 데이터 검색
SELECT FILE_NAME
FROM DOCUMENTS
WHERE FILE_NAME LIKE '100\%%' ESCAPE '\';
- 설명:
파일명이 '100%'로 시작하는 데이터를 검색합니다.
결과 예시:- 100%_completion.doc, 100%_error.txt 등.
4. LIKE 연산자 사용 시 주의사항
4.1 성능 문제
LIKE 연산자는 패턴 매칭이 복잡할수록 성능이 저하될 수 있습니다. 특히, %가 앞에 사용된 패턴('%abc')은 인덱스를 사용할 수 없어 검색 속도가 느려질 수 있습니다.
해결 방법:
- 데이터 정규화 및 적절한 인덱스 설계.
- 특정 조건에서는 INSTR, SUBSTR 등의 문자열 함수 활용.
4.2 대소문자 민감성
오라클은 기본적으로 대소문자를 구분합니다. 대소문자 구분 없이 검색하려면 LOWER() 또는 UPPER() 함수를 활용해야 합니다.
예제 7: 대소문자 구분 없는 검색
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE LOWER(FIRST_NAME) LIKE 'john%';
5. 실무 활용 팁
- 간단한 패턴 매칭: 데이터 전처리나 빠른 데이터 확인에 유용합니다.
- 복잡한 조건 필터링: 다른 문자열 함수와 결합하여 정교한 조건을 만들 수 있습니다.
- 효율적 설계: 성능 문제를 방지하려면 패턴 설계 및 인덱스 활용을 최적화하세요.
마무리
LIKE 연산자는 오라클 DB에서 패턴 검색을 수행할 때 매우 유용한 도구입니다. 기본 개념을 이해하고 다양한 예제를 통해 응용하면 데이터 관리와 분석 작업에서 큰 효율을 얻을 수 있습니다. 위에서 다룬 기본과 고급 활용법을 바탕으로 실무에 바로 적용해 보세요!
'Database' 카테고리의 다른 글
오라클 SQL 숫자 함수: ROUND, TRUNC, MOD (0) | 2024.12.03 |
---|---|
오라클 내장 함수 소개 : 함수란 무엇인가? (1) | 2024.12.03 |
오라클 BETWEEN과 IN 연산자의 이해와 활용 (0) | 2024.12.03 |
오라클 DB에서 AND, OR, NOT 논리 연산자 사용법 (0) | 2024.12.03 |
오라클 DB에서 NULL 값 처리 방법 (0) | 2024.12.03 |