(SQL) 와일드 카드 문자를 이용한 필터링

(SQL) 와일드 카드 문자를 이용한 필터링

(SQL) 와일드 카드 문자를 이용한 필터링

와일드카드 문자는 검색 패턴을 만들어
데이터를 필터링할 때 사용한다.

와일드카드 문자를 사용할 수 있다면,
데이터 필터링의 폭이 훨씬 넓어질 것이다.

문자열 데이터 필터링의 핵심인
와일드카드 문자에 대해 알아보자.

✋🏾 <손에 잡히는 10분 SQL _ 인사이트> 교재를 참고해 작성한 포스팅입니다.

✋🏾 샘플데이터 다운 링크 : https://forta.com/books/0135182794/



1. 와일드카드 문자란?


와일드카드 문자란

여러 데이터에서 부분적으로 일치하는 값이 있는지
확인할 때 사용되는 특수문자를 말한다.

앞서 언급했듯이,
와일드카드 문자는 검색패턴을 만들어
데이터를 필터링할 때 사용한다.


2. 와일드카드 문자의 특징.


와일드카드 문자는 다음과 같은 특징이 있다.

  • 검색절 (WHERE)절에서 와일드카드 문자를 이용하려면
    반드시 LIKE 연산자를 함께 사용해야 한다.

  • 와일드카드 문자를 이용한 검색은

    텍스트 열(문자열)에서만 사용할 수 있다.

3. 와일드카드 문자의 종류와 사용예시.

1) % 와일드카드


검색할 문자열에서 %는 임의의 수의 문자를 의미한다.

예를 들어, Fish라는 단어로 시작하는 제품을 찾고 싶다면,
다음과 같이 쿼리를 작성하면 된다.

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';


제품명이 Fish로 끝나는 제품을 찾고 싶다면,
Fish앞에 %를 써주면 된다.

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '%Fish';
-- 와일드카드는 검색 패턴 내 어디에서나 사용할 수 있고, 여러 개의 와일드카드를 같이 사용할 수도 있다.


와일드카드를 검색 패턴의 중간에 사용하는 경우가
많이는 없지만, 이메일 주소를 검색하는 경우 유용하다.

SELECT cust_email
FROM Customers
WHERE cust_email LIKE 'b%forta.com';


예시코드에서 알수 있듯이,
% 와일드카드는 검색패턴을 만들때, 글자 수 제한이 없어
범용성이 높고, 많이 이용되는 문자다.

또한, %와일드카드를 이용하면
필터링할 때 데이터의 앞 뒤 공백으로 인해 생기는
검색 오류를 방지할 수도 있다.

SELECT  prod_id,prod_name
FROM Products
WHERE prod_name LIKE '%bean bag%'; 
  -- bean bag 앞이나 뒤에 어떤 문자열(공백)이 와도 관계없다. 


2) 언더라인(_) 와일드카드


언더라인 와일드카드는 %와 비슷하게 사용되지만,
%와일드카드가 여러 문자열을 대신할 수 있는 것과는 달리
언더라인 와일드카드는 단 한 개의 문자를 대신한다.
(언더라인 와일드카드를 연달아쓰면 , 그 개수만큼 문자수를 매칭한다)


언더라인 와일드카드는
검색조건으로 글자수를 정해놓고 필터링 할 때 유용하다.

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '__ inch teddy bear';
  --두자리수 인치인 테디베어만 검색




4. 와일드카드 문자 사용시 주의해야 할 점!


1) NULL은 와일드카드로 매칭이 안됨!

2) 와일드카드를 이용한 검색 패턴은 다른 필터링 조건보다 처리가 오래 걸린다.
–> 와일드카드를 남용하지 말자


3) 와일드카드를 잘못된 곳에 사용한다면, 의도와 다른 데이터가 검색된다.

–> 와일드카드를 조심해서 사용하자


© 2024. All rights reserved.