티스토리 뷰

 

 

 

📌 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 연산자는 데이터베이스에서 패턴 검색을 할 때 매우 유용하지만, 와일드카드 사용에 주의해야 합니다.

성능 문제를 피하기 위해 불필요한 % 사용을 자제하고, 필요에 따라 =나 다른 조건문과 병행해서 사용하는 것이

좋습니다.

 

반응형