반응형

안녕하세요. 오랜만에 SQL에 관련된 글을 적어보겠습니다. 사실 요즘에는 SQL을 공부하지 못하고 있지만 예전에 배웠던 내용을 복습하는 차원에서 내용을 공유해보겠습니다. 지난 글에서는 주석에 대한 내용을 공부했고 아래 링크에서 관련된 내용을 확인할 수 있습니다. 이번 글은 WHERE 절에 대해 공부해보겠습니다.

 

 

(4) SQL 공부 저장용 - 주석 (초보에게 특히 중요한 주석 사용)

안녕하세요. 오늘은 SQL에 대한 4번째 글입니다. 지난번에는 NULL에 대한 내용을 공부했었습니다. (3) SQL 공부 저장용 - NULL (0, 공백과 다른 값) 지난 글에서는 AS, 별칭(alias)에 대해 공부했습니다. (2)

mkt-kim.tistory.com

 


 

WHERE 절은 어떤 데이터를 뽑을지 조건을 제한하는 절이다. 내 데이터가 가야할 방향을 잘 설정해야 합니다.

 

WHERE 절이란 SELECT 문에 WHERE 절을 추가하여 조회되는 데이터(행)을 제한하여 특정 조건에 부합하는 데이터들만 조회하는 절입니다. WHERE 절은 SELECT 문과 FROM 절과 함께 기본적인 SQL의 구조를 구성한다고 할 수 있습니다.

 

SELECT *
FROM   테이블명
WHERE  조건

 

마케터에 입장에서 SQL을 사용한다고 해도 보통 특정 조건의 데이터를 조회하려는 경우가 많습니다. 예를 들어, 쿠폰을 사용한 기간이나 회원가입을 한 일자, 혹은 구매 횟수가 몇 회 이상인 유저를 추출하는 등 특정 조건의 데이터를 원하는 경우가 많은데 이 때 WHERE 절은 필수입니다.

 

 

WHERE 절에 사용하는 논리 연산자는 크게 4가지가 있습니다.

1) AND 연산자 : 조건을 모두 충족하는 행을 반환

WHERE   OS = AND -- 사용중인 OS
AND     order_item_date_paid_ymd = date('2022-08-25') -- 구매시점
AND     order_item_amount > '10000' -- 구매금액

 

위의 예시문은 AND 연산자를 사용하여 작성한 WHERE 절입니다. 3가지의 조건이 있는데 AND로 이어진 모든 조건을 충족하는 값을 추출하기 위해 사용합니다. 수학에서 집합의 개념으로 보면 교집합이라고 생각하면 이해하기 쉽습니다. 위의 예시문은 "안드로이드 사용자중에 2022년 8월 25일에 10,000원 이상 구매한 유저"를 조회하기 위해 작성했다고 볼 수 있습니다.

 

 

2) OR 연산자 : 조건 중 하나 이상을 충족하는 행을 반환

WHERE   OS = AND -- 사용중인 OS
AND     (order_item_date_paid_ymd = date('2022-08-25') OR order_item_date_paid_ymd = date('2022-08-26'))-- 구매시점
AND     order_item_amount > '10000' -- 구매금액

 

OR 연산자의 예시는 위의 예시문을 활용하여 설명해보겠습니다. 만약 위에서 추출하고자 한 조건에서 8월 26일에 구매한 유저까지 포함하고 싶다면 OR을 통해 조건 추가가 가능합니다. 즉, 위의 예시문은 "안드로이드 사용자중에 2022년 8월 25일 또는 2022년 8월 26에 10,000원 이상 구매한 유저"를 조회하기 위해 작성했다고 볼 수 있습니다. 이것도 수학에서 집합의 개념으로 보면 합집합이라고 생각하면 이해하기 쉽습니다. 

 

 

3) IN 연산자 : 특정 조건을 충족하는 행을 반환

WHERE   purchase_address in ('서울', '인천') -- 구매상품 배송지역

 

IN 연산자는 특정 행에 있는 값 중에서 내가 원하는 특정한 값을 반환하기 위해 사용합니다. 위의 예시문에서는 서울과 인천지역에서 구매한 상품이 배송된 내역만을 추출하기 위해 사용한다고 볼 수 있습니다. 위와 같이 IN 연산자를 통해 특정 조건을 지정할 수 있고 여러개 지정이 가능합니다.

 

 

4) NOT IN 연산자 : 특정 조건을 충족하는 행을 제외하고 반환

WHERE   purchase_address not in ('서울', '인천') -- 구매상품 배송지역

NOT IN 연산자는 IN 연산자와는 반대로 특정 행에 있는 값 중에서 내가 원하지 않는 값을 제외하고 반환하기 위해 사용합니다. 위의 예시문에서는 서울과 인천지역을 제외한 다른 모든 지역에서 구매한 상품이 배송된 내역만을 추출하기 위해 사용한다고 볼 수 있습니다.위와 같이 NOT IN 연산자를 통해 특정 조건을 제외할 수 있고 IN 연산자와 마찬가지로 여러개 제외가 가능합니다.

 


 

오늘은 간단히 WHERE 절에 사용하는 기본적인 논리 연산자에 대해 공부해봤습니다. 제가 SQL을 잘 알지 못하기 때문에 설명이 다소 틀린 부분이 있을 수 있는데 그런 부분이 있다면 댓글로 남겨주시면 수정해보겠습니다. 공부한 내용을 초보자에 입장에서 그리고 제가 이해한대로 작성해보았습니다. 이번 글도 읽어주셔서 감사합니다 :)

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기