티스토리 뷰
📌 SQL LIKE 연산자
LIKE 연산자는 특정 패턴과 일치하는 데이터를 검색하는 데 사용됩니다.
주로 문자열 데이터에서 부분 일치를 찾을 때 사용됩니다.
LIKE 연산자는 WHERE 절에서 사용되며, 와일드카드 문자인 %와 _를 함께 사용하여 패턴을 정의할 수 있습니다
- %: 0개 이상의 문자를 대체합니다.
- _: 단일 문자를 대체합니다.
📌 기본 사용법
SELECT column_name
FROM table_name
WHERE column_name LIKE pattern;
-
- column_name: 비교할 열의 이름.
- pattern: 찾고자 하는 패턴을 포함하는 문자열.
📌 사용 예제
1. 문자열 시작 패턴 검색
SELECT * FROM employees
WHERE name LIKE 'A%';
-
- 위 쿼리는 name이 'A'로 시작하는 모든 직원들을 선택합니다.
- 예를 들어, 'Alice', 'Adam' 등이 포함됩니다.
2. 문자열 끝 패턴 검색
SELECT * FROM products
WHERE product_name LIKE '%phone';
-
- 위 쿼리는 product_name이 'phone'으로 끝나는 모든 제품을 선택합니다.
- 예를 들어, 'Smartphone', 'Headphone' 등이 포함됩니다.
3. 중간에 특정 문자가 포함된 패턴 검색
SELECT * FROM orders
WHERE customer_name LIKE '%son%';
-
- 위 쿼리는 customer_name에 'son'이 포함된 모든 고객의 주문을 선택합니다.
- 예를 들어, 'Jackson', 'Mason' 등이 포함됩니다.
4. 단일 문자 대체 검색
SELECT * FROM items
WHERE item_code LIKE 'A_1';
-
- 위 쿼리는 item_code가 'A'로 시작하고, 두 번째 자리에 아무 문자나 오며, '1'로 끝나는 항목을 선택합니다.
- 예를 들어, 'AB1', 'AC1' 등이 포함될 수 있습니다.
📌 GOOD 사용법
1. 부분 문자열 검색
-
- 제품명, 사용자 이름, 이메일 등에서 특정 단어나 패턴을 검색할 때 유용합니다.
- 예: 특정 도메인의 이메일 주소를 가진 사용자를 검색할 때.
SELECT * FROM users
WHERE email LIKE '%@example.com';
2. 와일드카드 사용을 통한 유연한 검색
-
- 와일드카드를 적절히 사용하면 보다 유연한 검색이 가능합니다.
- 예: '2024'로 끝나는 주문 코드를 찾을 때.
SELECT * FROM orders
WHERE order_code LIKE '%2024';
📌 BAD 사용법
1. 첫 문자에 % 사용
-
- %를 문자열의 시작 부분에 사용하면 인덱스를 사용하지 못해 성능이 저하될 수 있습니다.
-- 잘못된 예시
SELECT * FROM products
WHERE product_name LIKE '%laptop';
2. 불필요한 와일드카드 사용
-
- 정확한 값을 알고 있는 경우 LIKE 대신 =를 사용하는 것이 좋습니다.
-- 잘못된 예시
SELECT * FROM employees
WHERE name LIKE 'Alice';
-- 더 나은 방법
SELECT * FROM employees
WHERE name = 'Alice';
LIKE 연산자는 데이터베이스에서 패턴 검색을 할 때 매우 유용하지만, 와일드카드 사용에 주의해야 합니다.
성능 문제를 피하기 위해 불필요한 % 사용을 자제하고, 필요에 따라 =나 다른 조건문과 병행해서 사용하는 것이
좋습니다.
반응형