# 구동 환경 : Postgre SQL 12.3 설치 -> pgAdmin4에서 아래 DB 연동 -> DBeaver 7.1.2 버전에서 코딩 진행
# 활용하는 DB = dvdrental.tar
PostgreSQL의 LIKE 연산자: 사용 이유와 중요성
안녕하세요, 데이터베이스 애호가 여러분! 오늘은 PostgreSQL에서 문자열 패턴 매칭을 위해 사용되는 LIKE 연산자에 대해 알아보겠습니다. LIKE 연산자는 SQL 쿼리에서 특정 패턴과 일치하는 문자열을 조회하는 데 사용됩니다. 이 연산자는 데이터베이스 관리 및 분석에서 매우 유용한 도구입니다. 왜 LIKE 연산자를 사용해야 하며, 무엇이 중요한지에 대해 자세히 살펴보겠습니다.
LIKE 연산자를 사용하는 이유
- 문자열 패턴 매칭: LIKE 연산자는 문자열 데이터에서 특정 패턴과 일치하는 행을 검색하는 데 사용됩니다. 예를 들어, 특정 단어로 시작하거나 끝나는, 혹은 특정 문자를 포함하는 문자열을 찾을 수 있습니다.
- 유연한 검색 조건: 단순히 일치 여부를 확인하는 것 외에도, 부분 일치 검색을 통해 보다 유연한 검색 조건을 설정할 수 있습니다. 이는 데이터 탐색 및 필터링에 매우 유용합니다.
- 텍스트 데이터 분석: 텍스트 데이터에서 특정 키워드를 검색하거나, 특정 패턴을 찾는 등의 작업에 유용합니다. 예를 들어, 이메일 주소에서 특정 도메인을 가진 사용자나 제품 설명에서 특정 키워드를 포함하는 제품을 찾을 수 있습니다.
- 빠른 데이터 조회: 부분 일치 검색을 통해 원하는 데이터를 빠르게 조회할 수 있습니다. 이는 대량의 텍스트 데이터에서 필요한 정보를 효율적으로 찾을 수 있게 해줍니다.
LIKE 연산자의 중요성
- 데이터 탐색 및 필터링: LIKE 연산자는 데이터베이스에서 특정 패턴을 검색하고 데이터를 필터링하는 데 중요한 역할을 합니다. 이는 데이터 분석과 보고서 작성에서 매우 유용합니다.
- 검색 기능 구현: 웹 애플리케이션이나 검색 엔진에서 사용자가 입력한 키워드를 기반으로 데이터를 검색할 때 LIKE 연산자를 사용할 수 있습니다. 이는 사용자 경험을 향상시킵니다.
- 정확한 데이터 조회: 특정 패턴을 기반으로 데이터를 정확하게 조회할 수 있어, 필요한 데이터를 빠르고 정확하게 추출할 수 있습니다. 이는 데이터의 정확성과 신뢰성을 높이는 데 기여합니다.
- 코드 가독성 및 유지 보수성 향상: LIKE 연산자를 사용하면 쿼리가 간결해져 코드의 가독성과 유지 보수성이 향상됩니다. 이는 쿼리 작성과 유지 보수를 용이하게 합니다.
LIKE 연산자의 활용
- 기본 사용: employees 테이블에서 이름이 'J'로 시작하는 직원들을 조회합니다.
- 부분 일치 검색: products 테이블에서 이름에 'Pro'를 포함하는 제품들을 조회합니다.
- 문자열 끝 일치 검색: employees 테이블에서 이메일 주소가 '@example.com'으로 끝나는 직원들을 조회합니다.
- 특정 위치의 문자 검색: customers 테이블에서 전화번호의 세 번째 자리가 '5'인 고객들을 조회합니다.
- NOT LIKE 사용: LIKE 연산자의 반대 개념으로, 특정 패턴과 일치하지 않는 행을 조회할 수 있습니다. 예를 들어, 이름에 'Admin'을 포함하지 않는 직원들을 조회합니다.
LIKE 연산자는 특정 집합에서 어떠한 컬럼의 값이 특정 값과 유사한 패턴을 갖는 집합을 출력하는 연산자 입니다.
SELECT
FIRST_NAME
,LAST_NAME
FROM
CUSTOMER
WHERE
FIRST_NAME LIKE 'Jen%';
-- FIRST_NAME이 'Jen'으로 시작하는 집합을 출력합니다
-- = 'Jen'이후의 문자 혹은 문자열은 모두 매칭하여 출력합니다
주석의 설명처럼 First_name 컬럼의 'Jen'으로 시작하는 값들을 모두 찾았습니다.
'%'에 대해서 설명을 드리자면 아래와 같습니다.
SELECT
'FOO' LIKE 'FOO' -- TRUE = 'FOO'는 'FOO'이므로 참
'FOO' LIKE 'F%' -- TRUE = 'F%'는 'F'로 시작하면 모두 참
'FOO' LIKE '_O_' -- TRUE = '_O_'는 3자리 문자열이고 가운데 문자가 'O'라면 모두 참
'BAR' LIKE 'B_' -- FALSE = 'B_'는 2자리 문자열이고 'B'로 시작하기만 하면 두번째 문자는 무엇이든 참
-- 하지만 'BAR'는 'B'로 시작하긴 했지만 3자리 이므로 거짓
다른 예시를 보고 LIKE 연산자에 대해서 이해도를 높여보겠습니다.
SELECT
FIRST_NAME
,LAST_NAME
FROM
CUSTOMER
WHERE
FIRST_NAME LIKE '%er%'; -- FIRST_NAME에서 'er'이 존재하는 모든 집합을 출력
주석 설명처럼 FIRST_NAME 컬럼에서 'ER'이 들어간 모든 내용들이 출력되었습니다.
SELECT
FIRST_NAME
,LAST_NAME
FROM
CUSTOMER
WHERE
FIRST_NAME LIKE '_her%';
-- FIRST_NAME에서 첫번째 문자가 어떠한 문자로든 시작 가능하지만 그 다음이
-- 'her'이어야 하고 그 다음에는 어떤 문자 혹은 문자열 이어도 상관없는 집합 출력
주석에서 설명드린바와 같으며 결과가 잘 출력 되었습니다.
SELECT
FIRST_NAME
,LAST_NAME
FROM
CUSTOMER
WHERE
FIRST_NAME NOT LIKE 'Jen%'; -- FIRST_NAME이 'Jen'으로 시작하지 않는 집합을 출력
주석의 설명처럼 FIRST_NAME 컬럼에서 'Jen'으로 시작하지 않는 집합이 출력 되었습니다.
결론
PostgreSQL의 LIKE 연산자는 문자열 패턴 매칭을 통해 데이터를 필터링하고 검색하는 데 매우 유용한 도구입니다. 이를 통해 쿼리 작성이 간결해지고, 코드 가독성과 유지 보수성이 향상되며, 유연한 데이터 탐색과 필터링이 가능합니다. LIKE 연산자를 잘 활용하면 데이터베이스 작업이 훨씬 더 효율적이고 효과적으로 이루어질 것입니다.
다음에는 IS NULL연산자에 대해서 보도록 하겠습니다.
'데이터 분석 > Postgre SQL - 정리하자' 카테고리의 다른 글
NULL이냐 IS NULL이냐? 유무판단 해보기 (0) | 2024.07.13 |
---|---|
BETWEEN 연산자란? (0) | 2024.07.12 |
IN 연산자를 활용해보자 (0) | 2024.07.11 |
Fetch문을 왜 사용해야 할까? (0) | 2024.07.11 |
Limit 문은 언제 어떻게 쓰일까? (0) | 2024.07.10 |