데이터를 분석하거나 필터링할 때 SQL에서 조건문은 필수적이야. 그중에서도 가장 많이 쓰이는 LIKE와 IN 조건문에 대해 자세히 알아보자!
1. LIKE 조건문: 패턴 매칭으로 텍스트 필터링하기
LIKE 문법
LIKE는 문자열에서 특정 패턴과 일치하는 데이터를 조회할 때 사용해. 주로 와일드카드를 함께 사용하지!
와일드카드 | 설명 |
---|---|
% | 0개 이상의 문자와 일치 |
_ | 정확히 1개의 문자와 일치 |
기본 문법
SELECT *
FROM 테이블명
WHERE 컬럼명 LIKE '패턴';
예제
1) 이름이 ‘Kim’으로 시작하는 데이터 조회
SELECT *
FROM users
WHERE name LIKE 'Kim%';
2) 이름이 두 글자이고, ‘A’로 시작하는 데이터 조회
SELECT *
FROM users
WHERE name LIKE 'A_';
3) 이메일에 특정 문자열이 포함된 경우
SELECT *
FROM users
WHERE email LIKE '%@gmail.com';
2. IN 조건문: 여러 조건을 동시에 검사하기
IN 문법
IN은 여러 값 중에서 일치하는 데이터를 조회할 때 사용해. OR 조건을 간단히 표현할 수 있어서 가독성이 훨씬 좋아져.
기본 문법
SELECT *
FROM 테이블명
WHERE 컬럼명 IN (값1, 값2, 값3...);
예제
1) 특정 국가의 데이터를 조회
SELECT *
FROM users
WHERE country IN ('Korea', 'Japan', 'China');
2) 특정 ID 값들만 필터링
SELECT *
FROM orders
WHERE user_id IN (101, 102, 103);
3) 서브쿼리와 함께 사용하기
SELECT *
FROM products
WHERE category_id IN (SELECT id FROM categories WHERE name = 'Electronics');
3. LIKE vs IN: 언제 어떤 걸 써야 할까?
구분 | LIKE | IN |
---|---|---|
사용 대상 | 패턴 매칭 (문자열) | 여러 개의 고정된 값 비교 |
와일드카드 | 사용 가능 (% , _ ) | 사용 불가 |
비교 속도 | 데이터 양이 많을수록 느림 | 비교적 빠름 |
복잡한 조건 | 복잡한 패턴일 경우에 유리 | 다수의 값 비교 시 유리 |
4. 실전 활용: 두 조건문 함께 사용하기
LIKE와 IN을 함께 사용하면 더욱 강력해져!
예제: 이메일이 특정 도메인으로 끝나고, 특정 국가에 속한 사용자 조회
SELECT *
FROM users
WHERE email LIKE '%@example.com'
AND country IN ('Korea', 'Japan', 'China');
5. 주의사항과 성능 최적화
LIKE 사용 시 주의사항
- LIKE ‘%패턴’: 앞에
%
를 쓰면 인덱스가 비활성화되어 성능이 저하될 수 있어.- 해결 방법:
%
를 뒤에만 사용하거나 풀텍스트 검색 도입 고려.
- 해결 방법:
IN 사용 시 주의사항
- IN 절의 값이 많아지면 성능이 떨어질 수 있어.
- 해결 방법: 서브쿼리 최적화나 JOIN으로 대체할 수 있는지 확인.
마무리
SQL에서 LIKE와 IN은 데이터 필터링 시 정말 자주 사용되는 조건문이야. 패턴 매칭이 필요하면 LIKE를, 다수의 고정된 값 비교가 필요하면 IN을 사용하자.
이제 두 조건문을 잘 활용해서 더욱 깔끔하고 효율적인 SQL 쿼리를 작성해보자! 🚀
답글 남기기