SQL에서 특정 조건의 데이터를 더 유연하게 필터링하고 싶을 때 사용하는 연산자들이 있습니다.
이번 글에서는 LIKE, IN, BETWEEN, IS NULL의 용도와 사용 예시를 정리하도록 하겠습니다.
1. LIKE
LIKE는 문자열 안에 특정 패턴이 포함되어 있는지 확인할 때 사용합니다.
와일드카드와 함께 사용됩니다.
- % : 0개 이상의 문자
- _ : 정확히 1개의 문자
예시 | 의미 |
WHERE name LIKE 'A%' | A로 시작하는 이름 |
WHERE email LIKE '%@gmail.com' | @gmail.com으로 끝나는 이메일 |
WHERE code LIKE 'A_3' | A로 시작하고 중간에 아무 문자 1개, 3으로 끝나는 문자열 |
SELECT name
FROM users
WHERE name LIKE '%son';
→ 이름이 ‘son’으로 끝나는 사용자 조회
만약 %나 _ 자체를 문자로 검색하고 싶다면 역슬래시(\) 이스케이프 문자를 사용합니다.
SELECT name
FROM users
WHERE name LIKE '%\%%';
→ 이름에 % 문자가 포함된 행을 조회합니다.
SELECT code
FROM products
WHERE code LIKE '%\_%';
→ code 컬럼에 _ 문자가 어디든 포함된 행을 조회합니다.
2. IN
IN은 컬럼의 값이 특정 목록에 포함되는지를 판단할 때 사용합니다.
SELECT name
FROM users
WHERE city IN ('Seoul', 'Busan', 'Incheon');
→ 거주지가 서울, 부산, 인천 중 하나인 사용자만 조회
※ NOT IN을 사용하면 해당 목록에 포함되지 않은 값만 조회합니다.
3. BETWEEN
BETWEEN A AND B는 값이 A 이상 B 이하인지를 판단합니다.
숫자, 날짜 등 범위가 있는 데이터에 자주 사용됩니다.
SELECT *
FROM orders
WHERE price BETWEEN 10000 AND 20000;
→ 가격이 1만 원 이상, 2만 원 이하인 주문 조회
※ NOT BETWEEN을 사용하면 해당 범위를 벗어난 값을 조회합니다.
4. IS NULL
IS NULL은 특정 컬럼의 값이 NULL(없음) 인지를 확인합니다.
SELECT name
FROM users
WHERE email IS NULL;
→ 이메일이 입력되지 않은 사용자만 조회
※ NULL이 아닌 값을 조회하려면 IS NOT NULL을 사용합니다.
'SQL' 카테고리의 다른 글
[SQL#5] ORDER BY (0) | 2025.04.16 |
---|---|
[SQL#4] DISTINCT (0) | 2025.04.16 |
[SQL#2] 비교연산자와 논리연산자 (0) | 2025.04.16 |
[SQL#1] SELECT / FROM / LIMIT (0) | 2025.04.16 |
[Database Modeling#4] 테이블 분리 규칙 (0) | 2025.04.15 |