Challenge & Study 데이터 분석

Postgre SQL - LIKE 연산자 본문

데이터 분석 - Postgre SQL/정리하자

Postgre SQL - LIKE 연산자

Factful_Day 2020. 7. 10. 15:57

# 구동 환경 : Postgre SQL 12.3 설치 -> pgAdmin4에서 아래 DB 연동 -> DBeaver 7.1.2 버전에서 코딩 진행

# 활용하는 DB = dvdrental.tar

(Link : http://www.postgresqltutorial.com/wp-content/uploads/2017/10/dvdrental.zip)

LIKE 연산자는 특정 집합에서 어떠한 컬럼의 값이 특정 값과 유사한 패턴을 갖는 집합을 출력하는 연산자 입니다.

 SELECT 
       FIRST_NAME
      ,LAST_NAME 
   FROM
       CUSTOMER
  WHERE
       FIRST_NAME LIKE 'Jen%';
       -- FIRST_NAME이 'Jen'으로 시작하는 집합을 출력합니다
       -- = 'Jen'이후의 문자 혹은 문자열은 모두 매칭하여 출력합니다

주석의 설명처럼 First_name 컬럼의 'Jen'으로 시작하는 값들을 모두 찾았습니다.

'%'에 대해서 설명을 드리자면 아래와 같습니다.

SELECT
       'FOO' LIKE 'FOO' -- TRUE = 'FOO'는 'FOO'이므로 참     
       'FOO' LIKE 'F%'  -- TRUE = 'F%'는 'F'로 시작하면 모두 참
       'FOO' LIKE '_O_' -- TRUE = '_O_'는 3자리 문자열이고 가운데 문자가 'O'라면 모두 참
       'BAR' LIKE 'B_'  -- FALSE = 'B_'는 2자리 문자열이고 'B'로 시작하기만 하면 두번째 문자는 무엇이든 참
                        --         하지만 'BAR'는 'B'로 시작하긴 했지만 3자리 이므로 거짓

다른 예시를 보고 LIKE 연산자에 대해서 이해도를 높여보겠습니다.

 SELECT 
       FIRST_NAME
      ,LAST_NAME 
   FROM
       CUSTOMER
  WHERE
       FIRST_NAME LIKE '%er%'; -- FIRST_NAME에서 'er'이 존재하는 모든 집합을 출력

주석 설명처럼 FIRST_NAME 컬럼에서 'ER'이 들어간 모든 내용들이 출력되었습니다.

 SELECT 
       FIRST_NAME
      ,LAST_NAME 
   FROM
       CUSTOMER
  WHERE
       FIRST_NAME LIKE '_her%';
       -- FIRST_NAME에서 첫번째 문자가 어떠한 문자로든 시작 가능하지만 그 다음이
       -- 'her'이어야 하고 그 다음에는 어떤 문자 혹은 문자열 이어도 상관없는 집합 출력

주석에서 설명드린바와 같으며 결과가 잘 출력 되었습니다.

 SELECT 
       FIRST_NAME
      ,LAST_NAME 
   FROM
       CUSTOMER
  WHERE
       FIRST_NAME NOT LIKE 'Jen%'; -- FIRST_NAME이 'Jen'으로 시작하지 않는 집합을 출력

주석의 설명처럼 FIRST_NAME 컬럼에서 'Jen'으로 시작하지 않는 집합이 출력 되었습니다.

 

다음에는 IS NULL연산자에 대해서 보도록 하겠습니다.

'데이터 분석 - Postgre SQL > 정리하자' 카테고리의 다른 글

Postgre SQL - IS NULL 연산자  (0) 2020.07.10
Postgre SQL - BETWEEN 연산자  (0) 2020.07.10
Postgre SQL - IN 연산자  (0) 2020.07.09
Postgre SQL - Fetch 절  (0) 2020.07.06
Postgre SQL - Limit 절  (0) 2020.07.06