본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

11강 SQL이 뭐지? PostgreSQL : LIKE, ILIKE operator

by DoitSQL 2022. 12. 16.
728x90

11강 SQL이 뭐지? PostgreSQL : LIKE, ILIKE operator

PostgreSQL

SQL이 뭐지? 11강 시작합니다.

 

이번 강의에서는

LIKE operator 

에 대해서 알아보겠습니다.


LIKE operator

당신이 고객을 찾고 싶지만 그녀의 이름을 정확히 기억하지 못한다고 가정해봅시다.

하지만, 여러분은 그녀의 이름이 젠(Jen)으로 시작한다는 것을 기억할 뿐입니다.

 

데이터베이스에서 정확한 고객을 어떻게 찾습니까? 고객 표에서 이름 열을 보고 Jen으로 시작하는 값이 있는지 확인할 수 있습니다. 고객 테이블에 행이 많으면 시간이 많이 걸립니다.

 

다행히도, 당신은 PostgreSQL을 사용할 수 있습니다. 고객의 이름을 다음 쿼리와 같은 문자열과 일치시키는 SQL LIKE 연산자를 사용해 찾을 수 있습니다.

 

SELECT first_name

     , last_name
  FROM customer
 WHERE first_name LIKE 'Jen%'

;

WHERE 절에는 first_name, LIKE 연산자 및 퍼센트 기호(%)가 포함된 문자열이라는 특수 표현식이 포함되어 있습니다. 'Jen%'라는 문자열을 패턴이라고 합니다.

 

쿼리는 first_name 열의 값이 Jen으로 시작하고 임의의 문자 시퀀스 뒤에 올 수 있는 행을 반환합니다.

이 기술을 패턴 매칭이라고 합니다.

 

리터럴 값을 와일드카드 문자와 결합하여 패턴을 구성하고 LIKE 또는 NOT LIKE 연산자를 사용하여 일치 항목을 찾습니다. PostgreSQL은 두 개의 와일드카드를 제공합니다.

백분율 기호(%)가 0 이상의 문자 시퀀스와 일치합니다.
밑줄 기호(_)는 단일 문자와 일치합니다.

 

PostgreSQL의  LIKE 연산자는 다음과 같습니다.

value LIKE pattern

값이 패턴과 일치하면 식이 true를 반환합니다.

 

LIKE 연산자를 부인하려면 다음과 같이 NOT 연산자를 사용합니다.

value NOT LIKE pattern

NOT LIKE 연산자는 값이 패턴과 일치하지 않으면 true를 반환합니다.

 

패턴에 와일드카드 문자가 없는 경우 LIKE 연산자는 등호(=) 연산자처럼 동작합니다.


 

LIKE examples

실습  1

다음 예를 참조하십시오.

SELECT 'foo' LIKE 'foo', -- true
       'foo' LIKE 'f%', -- true
       'foo' LIKE '_o_', -- true
       'bar' LIKE 'b_' -- false

;

어떻게 작동하는지. 살펴봅시다

foo 패턴에 와일드카드 문자가 포함되어 있지 않기 때문에 LIKE 연산자가 등호(=) 연산자처럼 작동하기 때문에 첫 번째 식을 true로 반환합니다.
두 번째 표현식은 문자 f로 시작하고 그 뒤에 오는 모든 문자열과 일치하므로 true를 반환합니다.
패턴(_o_)이 임의의 단일 문자로 시작하고 문자 o가 그 뒤를 따르고 임의의 단일 문자로 끝나는 문자열과 일치하기 때문에 세 번째 식을 true로 반환합니다.
패턴 b_가 문자 b로 시작하고 그 뒤에 오는 문자열과 일치하지 않기 때문에 네 번째 표현식은 false를 반환합니다.
패턴의 시작 또는 끝에 와일드카드를 사용할 수 있습니다.

 

실습  2

예를 들어, 다음 쿼리는 이름에 'er'이 포함된 Jenifer, Kimberly 등의 고객을 반환합니다.

SELECT first_name

     , last_name
  FROM customer
 WHERE first_name LIKE '%er%'
 ORDER BY first_name
 ;

 

실습  3

다음 예와 같이 %를  _과 결합하여 패턴을 구성할 수 있습니다.

SELECT first_name

     , last_name
  FROM customer
 WHERE first_name LIKE '_her%'
 ORDER BY first_name
;        

_her% 패턴은 다음 문자열과 일치합니다.

임의의 단일 문자로 시작합니다 ( _ ).
그리고 그 뒤에는 her라는 글자 그대로의 문자열이 따라온다.
그리고 숫자에 관계없이 끝납니다.
돌아온 이름들은 Cheryl, Sherri, Sherry, Therasa입니다.

 

NOT LIKE examples

다음 쿼리는 NOT LIKE 연산자를 사용하여 이름이 Jen으로 시작하지 않는 고객을 찾습니다.

SELECT first_name

     , last_name
  FROM customer
 WHERE first_name NOT LIKE 'Jen%'
 ORDER BY first_name
;

 

PostgreSQL extensions of LIKE operator

PostgreSQL은 LIKE 연산자처럼 작동하는 ILIKE 연산자를 지원합니다. 

또한 ILIKE 연산자는 대소문자를 구분하지 않고 값을 일치시킵니다. 

SELECT first_name

     , last_name
  FROM customer
 WHERE first_name ILIKE 'BAR%'
;

BAR% 패턴은 BAR, Bar, BaR 등으로 시작하는 문자열과 일치합니다. 

LIKE 연산자와 다른 부분은 대소문자를 구분하지 않는 것입니다.

 

PostgreSQL Equivalent Operator

PostgreSQL은 또한 아래와 같이 LIKE, NOT LIKE, ILIKE, NOT ILIKE 연산자와 동일하게 동작하는

일부 연산자를 제공합니다..

Operator Equivalent
~~ LIKE
!~~ NOT LIKE
~~* ILIKE
!~~* NOT ILIKE

이 강의에서는 PostgreSQL  LIKE 및 ILIKE 연산자를 사용, 패턴 일치를 사용하여 데이터를 쿼리 하는

방법에 대해 배웠습니다.

 

수고하셨습니다.

 

본 강의는 PostgreSQL Tutorial을 참조합니다. 

 

PostgreSQL Tutorial - Learn PostgreSQL from Scratch

Welcome to the PostgreSQLTutorial.com website! This PostgreSQL tutorial helps you understand PostgreSQL quickly. You’ll master PostgreSQL very fast through many practical examples and apply the knowledge in developing applications using PostgreSQL. If yo

www.postgresqltutorial.com

실습용 테이블에 대해서는 3강을 참조하세요.

 

3강 SQL이 뭐지? 도구들을 설치해보자. ( PostgreSQL, HeidiSQL )

지난 시간까지 SQL이 뭔지 대충 감을 잡는 시간을 가졌습니다. 이번 시간에는 본격적인 SQL을 공부하기 위해서 도구들을 설치해 보겠습니다. 1. PostgreSQL 설치 ( Windows10 64bit 기준) 2. HeidiSQL 설치 3.

doitsql.tistory.com


Do it! SQL을 찾아 주셔서 감사합니다. 여러분의 댓글이 큰 힘이 됩니다.

 

 

728x90

댓글