Oracle SQL의 LIKE 연산자: 문법과 사용 예제
1. LIKE 연산자란?
LIKE 연산자는 Oracle SQL에서 문자열을 비교할 때 사용되는 연산자로, 특정 패턴과 일치하는 데이터를 검색할 수 있습니다. LIKE는 주로 WHERE
절과 함께 사용되며, 와일드카드 문자를 지원하여 유연한 검색을 제공합니다.
2. LIKE 연산자의 문법
SELECT column_name
FROM table_name
WHERE column_name LIKE pattern;
pattern은 검색하려는 패턴을 정의하며, 다음 두 가지 와일드카드 문자를 사용할 수 있습니다:
- %: 0개 이상의 문자를 대체.
- _: 정확히 1개의 문자를 대체.
3. LIKE 연산자 사용 예제
1) 특정 문자열로 시작하는 데이터 검색
SELECT *
FROM employees
WHERE first_name LIKE 'J%';
위 쿼리는 first_name
이 'J'로 시작하는 모든 행을 반환합니다.
2) 특정 문자열로 끝나는 데이터 검색
SELECT *
FROM employees
WHERE first_name LIKE '%n';
위 쿼리는 first_name
이 'n'으로 끝나는 모든 행을 반환합니다.
3) 특정 문자를 포함하는 데이터 검색
SELECT *
FROM employees
WHERE first_name LIKE '%ohn%';
위 쿼리는 first_name
에 'ohn'이 포함된 모든 행을 반환합니다.
4) 정확히 한 글자 대체
SELECT *
FROM employees
WHERE first_name LIKE '_a%';
위 쿼리는 두 번째 글자가 'a'인 모든 행을 반환합니다.
5) 여러 패턴 검색
SELECT *
FROM employees
WHERE first_name LIKE 'A%' OR first_name LIKE 'B%';
위 쿼리는 first_name
이 'A' 또는 'B'로 시작하는 모든 행을 반환합니다.
4. LIKE 연산자와 대소문자
Oracle SQL의 LIKE 연산자는 기본적으로 대소문자를 구분합니다. 대소문자를 구분하지 않으려면 LOWER()
또는 UPPER()
함수를 사용할 수 있습니다:
SELECT *
FROM employees
WHERE LOWER(first_name) LIKE 'j%';
5. LIKE 연산자와 ESCAPE 사용
와일드카드 문자(%, _)를 검색하려면 ESCAPE
키워드를 사용합니다:
SELECT *
FROM employees
WHERE first_name LIKE '%\%%' ESCAPE '\';
위 쿼리는 '%' 문자가 포함된 데이터를 검색합니다.
6. 성능 최적화
- 인덱스 활용: 와일드카드 문자를 처음에 사용하면 인덱스가 작동하지 않으므로, 가능하면 피하세요.
- FULLTEXT 인덱스: 대규모 데이터 검색 시 FULLTEXT 인덱스를 고려하세요.
7. 결론
Oracle SQL의 LIKE 연산자는 문자열 검색을 유연하고 강력하게 수행할 수 있는 도구입니다. 와일드카드와 함께 사용하여 다양한 패턴 매칭 작업을 처리할 수 있으며, 대소문자 구분, 성능 최적화, ESCAPE 기능을 활용하면 더욱 효과적으로 사용할 수 있습니다.