Link
Notice
HIT해
[SQL] LIKE 본문
728x90
LIKE
LIKE는 문자열 패턴 매칭을 위한 SQL 연산자입니다. REGEXP보다 단순하지만 더 빠른 성능을 보입니다.
1. LIKE 기본 와일드카드
% : 0개 이상의 임의의 문자
_ : 정확히 1개의 임의의 문자
2. 기본 사용법과 예시
-- 특정 문자로 시작하는 경우
WHERE column LIKE 'A%'-- A로 시작하는 모든 값
WHERE column LIKE 'ABC%'-- ABC로 시작하는 모든 값-- 특정 문자로 끝나는 경우
WHERE column LIKE '%Z'-- Z로 끝나는 모든 값
WHERE column LIKE '%XYZ'-- XYZ로 끝나는 모든 값-- 특정 문자를 포함하는 경우
WHERE column LIKE '%test%'-- test를 포함하는 모든 값-- 특정 길이의 문자열
WHERE column LIKE '___'-- 정확히 3글자인 값
WHERE column LIKE '___%'-- 3글자 이상인 값-- 여러 조건 조합
WHERE column LIKE 'A%Z'-- A로 시작하고 Z로 끝나는 값
3. 실제 활용 예시
이메일 검색
-- gmail 계정 검색
WHERE email LIKE '%@gmail.com'
-- 특정 도메인의 이메일 검색
WHERE email LIKE '%@%.com'
-- 이메일 아이디가 5글자인 경우
WHERE email LIKE '_____@%'
전화번호 검색
-- 특정 지역번호로 시작하는 번호
WHERE phone LIKE '02-%'
WHERE phone LIKE '010-%'
-- 특정 형식의 전화번호
WHERE phone LIKE '___-____-____'
파일명 검색
-- 특정 확장자 파일 검색
WHERE filename LIKE '%.pdf'
WHERE filename LIKE '%.jpg'
-- 특정 접두사를 가진 파일
WHERE filename LIKE 'report_%'
이름 검색
-- 특정 성씨 검색
WHERE name LIKE '김%'
-- 두 글자 이름 검색
WHERE name LIKE '__'
-- 특정 문자를 포함하는 이름
WHERE name LIKE '%민%'
4. NOT LIKE 사용
-- gmail이 아닌 이메일
WHERE email NOT LIKE '%@gmail.com'
-- 특정 문자로 시작하지 않는 경우
WHERE name NOT LIKE 'A%'
5. LIKE와 ESCAPE 문자 사용
-- %나 _를 검색하고 싶을 때
WHERE column LIKE '%\\%%' ESCAPE '\\' -- % 문자를 포함하는 값
WHERE column LIKE '%\\_%' ESCAPE '\\'-- _ 문자를 포함하는 값
6. 여러 조건 조합하기
-- OR 조합
WHERE
column LIKE 'A%'
OR column LIKE 'B%'
-- AND 조합
WHERE
column LIKE 'A%'
AND column LIKE '%Z'
7. LIKE vs REGEXP 성능 비교
-- LIKE (더 빠름, 단순한 패턴)
WHERE email LIKE '%.com'
-- REGEXP (더 느림, 복잡한 패턴)
WHERE email REGEXP '\\\\.com$'
8. 실용적인 조합 예시
-- 이름이 '김'씨이고 이메일이 gmail인 사용자
SELECT * FROM users
WHERE
name LIKE '김%'
AND email LIKE '%@gmail.com';
-- 파일명이 'report'로 시작하고 pdf나 doc인 파일
SELECT * FROM files
WHERE
filename LIKE 'report%'
AND (
filename LIKE '%.pdf'
OR filename LIKE '%.doc'
);
-- 전화번호가 010으로 시작하지 않는 연락처
SELECT * FROM contacts
WHERE phone NOT LIKE '010-%';
-- 이름이 3글자이고 '김'씨인 사용자
SELECT * FROM users
WHERE name LIKE '김__';
LIKE는 정규표현식보다 기능은 제한적이지만:
- 더 빠른 성능
- 더 단순한 문법
- 더 쉬운 이해와 유지보수
이러한 장점이 있어 단순한 패턴 매칭에 자주 사용됩니다. 복잡한 패턴이 필요한 경우에는 REGEXP를 사용하는 것이 좋습니다.
'자격증 공부 > SQLD' 카테고리의 다른 글
[SQL] SUBSTRING (0) | 2024.11.02 |
---|---|
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 - MySQL (0) | 2024.11.02 |
[SQL] EXTRACT - 추출 (0) | 2024.11.02 |
[SQL] 정규표현식 (0) | 2024.11.02 |
[SQL] HAVING (0) | 2024.11.02 |