LIKE 연산자와 와일드 카드 패턴에 대하여

2024. 12. 18. 09:58·Back End/DataBase

⭐️ LIKE 연산자는 무엇인가 ?

<LIKE>

- 비교하고자 하는 컬럼값이 내가 자세한 특정 패턴에 만족할 경우 조회

 

[표현법] - 비교할 대상컬럼 LIKE '특정패턴'  -> 특정패턴이 일치하는 것만 가져온다.

 

[예시 코드 ]

SELECT EMP_NAME , SALARY
FROM EMPLOYEE e 
WHERE EMP_NAME LIKE '전%';

 

위의 코드르 보면 LIKE 이후에 '전%' 라고 처음 보게 되는 문장이 있다.

 

 처음보는 '%' 와 '_' 라는 특정 패턴 (와일드 카드) 이 존재한다.

 

다음은 특정패턴, 즉 와일드 카드에 대하여 알아보자.

 


 

⭐️ 특정 패턴 ( 와일드 카드 )

1. '%' : 포함문자 검색 (0글자 이상 전부 조회)

 

EX) 비교할 대상 컬럼 LIKE '문자%' : 비교할대상 컬럼값 중에서 해당문자로 시작하는 값들을 전부 가져온다.
비교할 대상 컬럼 LIKE '%문자' : 비교할대상 컬럼값 중에서 해당문자로 끝는 값들을 전부 가져온다.
비교할 대상 컬럼 LIKE '%문자%' : 비교할대상 컬럼값 중에서 해당문자가 포함된 값을 전부 가져온다.

 


 

2. '_' : 1글자를 대체검색할 때 사용


EX) 비교할 대상 컬럼 LIKE '_문자' : 비교할대상컬럼값 문자앞에 아무글자나 딱 한글자가 있는 값을 조회.
비교할 대상 컬럼 LIKE '문자_' : 비교할대상컬럼값 문자뒤에 아무글자나 딱 한글자가 있는 값을 조회.
비교할 대상 컬럼 LIKE '_문자_' : 비교할대상컬럼값 문자앞에 아무글자나 딱 한글자씩 있는 값을 조회.

비교할 대상 컬럼 LIKE '__문자__' : 내가 원하는 형태로_를 통해서 문자수를 조절할 수 있다.

 

[예시 코드]

-- 사원들중에 이름 중간에 ''라는 글자가 포함된 사원의 이름, 전화번호 출력
SELECT EMP_NAME , PHONE
FROM EMPLOYEE e 
WHERE EMP_NAME LIKE '하__';

 

LIKE 연산자는 정말 좋은것 같다 👍

 

하지만 , 특정 문자 기준으로 문자열을 반환하는 SUBSTR도 존재하지만 LIKE 연산자로도 특정 문자 기준으로 문자열을 

반환하게 할 수 있다 ‼️

 

바로 와일드 카드의 옵션인 ESCAPE OPTION 이라는게 존재한다.

 

다음은 ESCAPE OPTION에 대하여 알아보자.


 

⭐️ ESCAPE OPTION

현재 이메일 중 _앞글자가 3글자인 사원들의 사번, 이름, 이메일을 조회할 일이 생겼다고 가정하자.

 

앞서 LIKE 절을 배웠으니 현재 알고 있는 능력으로 코드를 만들어 보자.

 

[코드]

SELECT EMP_ID, EMP_NAME , EMAIL
FROM EMPLOYEE e 
WHERE EMAIL LIKE '____%';

 

위와 같이 LIKE 연산자에 _ 앞글자가 3글자인 사원을 조회하게 되므로 LIKE '___'  후에 _ 앞글자까지 라고 했으니까 _ 를하나 더 작성해줘야 한다.

 

하지만 여기에는 문제가 있다 ‼️

 

_ 기준 3글자 이상인 사원 출력하는 모습

 

위와 같이 분명 LIKE '___' 를 사용하여 앞에 _ 앞 3글자를 출력하게 될줄 알았는데 , 생각과 다르게 _ 앞에 3글자 이상인 

사원들이 다 출력되게 된다.

 


위와 같은 문제를 해결하기 위해 ESCAPE OPTION을 사용해줘야 한다 ‼️

 

 

[코드]

SELECT EMP_ID, EMP_NAME , EMAIL
FROM EMPLOYEE e 
WHERE EMAIL LIKE '___/_%' ESCAPE '/';

 

_ 앞 3글자인 사원만 출력되는 모습

 

위와 같이 LIKE '___(탈출문자 아무거나)_%' ESCAPE '/'  라고 작성을 하게 되면 위에서 발생한 문제를 해결 할 수 있다.

 

-> 탈출문자 아무거나 란 , 본인이 설정한 ( @ , / , \  .... ) ESCAPE OPTION을 등록 할 수 있다.

 

사용 방법

WHERE EMAIL LIKE '___/_%' ESCAPE '/';

 

 

-> LIKE ' __ ' 안에 본인이 설정한 ESCAPE OPTION 을 작성해주고 ' ' 가 끝난 후 ESCAPE '설정한 OPTION' 을 

작성해주면 된다 ‼️

 


 

LIKE 연산자와 ESCAPE OPTION은 자주 사용되고 정말 유용한 옵션이다 👍

'Back End > DataBase' 카테고리의 다른 글

JOIN에 대하여  (4) 2024.12.18
WHERE 절과 HAVING 절의 순서에 대하여  (1) 2024.12.18
SQL 구문 순서에 대하여  (0) 2024.12.18
SELECT에 대하여  (0) 2024.12.17
DataBase를 배우며  (2) 2024.12.17
'Back End/DataBase' 카테고리의 다른 글
  • JOIN에 대하여
  • WHERE 절과 HAVING 절의 순서에 대하여
  • SQL 구문 순서에 대하여
  • SELECT에 대하여
KoesJin
KoesJin
hEELo
  • KoesJin
    Seok DevLog
    KoesJin
  • 전체
    오늘
    어제
    • 분류 전체보기 (109)
      • Back End (31)
        • DataBase (15)
        • JAVA (12)
        • JDBC (4)
      • Front End (9)
        • HTML5 & CSS (3)
        • Java Script (6)
        • REACT (0)
      • Server (9)
        • JSP - TomCat - Servlet (7)
        • Spring Boot (2)
      • GitHub (1)
      • IT 지식 (기술면접 대비) (20)
      • Weekly TIL (39)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    select
    DAO
    weekly til - day 43
    weekly til - day 41
    MVC 패턴
    order by
    commit
    weekly til - day 38
    where
    View
    from
    INNER JOIN
    GC
    dml
    순서에 대하여
    weekly til - day 40
    weekly til - day 39
    css
    DDL
    exception
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
KoesJin
LIKE 연산자와 와일드 카드 패턴에 대하여
상단으로

티스토리툴바