🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[SQL] LIKE란?

김 홍시 2024. 11. 24.
반응형

SQL에서 LIKE는 문자열 데이터를 검색할 때 특정 패턴과 일치하는 값을 찾기 위해 사용되는 조건절입니다. 주로 WHERE 절과 함께 사용됩니다.

주요 특징

  • 패턴 매칭을 위해 와일드카드 문자를 사용합니다.
  • 대소문자 구분 여부는 데이터베이스 시스템에 따라 달라집니다.
    • 대소문자 구분하지 않음: MySQL, SQLite 등
    • 대소문자 구분함: PostgreSQL (대소문자 무시하려면 ILIKE 사용)

와일드카드 문자

  1. % (퍼센트): 0개 이상의 문자를 대체합니다.
    • LIKE 'abc%' → abc로 시작하는 모든 문자열.
    • LIKE '%xyz' → xyz로 끝나는 모든 문자열.
    • LIKE '%123%' → 123이 포함된 모든 문자열.
  2. _ (언더스코어): 정확히 1개의 문자와 일치합니다.
    • LIKE 'a_c' → a와 c 사이에 한 글자가 있는 문자열(abc, aac 등).
    • LIKE '_b_' → 두 번째 문자가 b인 3글자 문자열(aba, abc 등).

기본 구조

SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 LIKE '패턴';

예시

1. 특정 문자열로 시작하는 데이터 검색

SELECT * 
FROM 고객
WHERE 이름 LIKE '김%';
-- 이름이 '김'으로 시작하는 고객 검색

2. 특정 문자열로 끝나는 데이터 검색

SELECT * 
FROM 고객
WHERE 이메일 LIKE '%@gmail.com';
-- Gmail 이메일 주소를 가진 고객 검색

3. 특정 문자열을 포함하는 데이터 검색

SELECT * 
FROM 상품
WHERE 상품명 LIKE '%초코%';
-- 상품명에 '초코'가 포함된 모든 상품 검색

4. 문자 개수 제한 (언더스코어 사용)

SELECT *
FROM 상품
WHERE 상품코드 LIKE 'A_1';
-- 'A'로 시작하고 세 번째 문자가 '1'인 상품 코드 검색 (예: 'AB1', 'AC1')

NOT LIKE

LIKE와 반대로 특정 패턴에 일치하지 않는 데이터를 검색합니다.

SELECT *
FROM 고객
WHERE 이름 NOT LIKE '박%';
-- 이름이 '박'으로 시작하지 않는 고객 검색

실전 활용

  1. 숫자와 문자가 섞인 데이터 검색
    LIKE 'A%123' → A로 시작하고 123으로 끝나는 문자열.
  2. 특정 문자가 포함되지 않은 데이터 검색
    NOT LIKE '%2023%' → '2023'이 포함되지 않은 문자열.
  3. 패턴과 와일드카드 조합 활용
    고객 데이터에서 성별이 알파벳 하나로 기록된 경우:
  4. SELECT * FROM 고객 WHERE 성별 LIKE '_'; -- 성별 컬럼이 정확히 1글자인 경우 검색

LIKE는 텍스트 데이터 검색 시 매우 유용하며, 특히 특정 패턴을 기준으로 데이터를 필터링하는 데 필수적입니다. 😊

반응형

댓글