본문 바로가기
Database/엑셀로 배우는 SQL 실무 - 입문

[SQL] 엑셀로 배우는 SQL - WHERE (AND, OR, NOT)

by 따라쟁이개발자 2023. 1. 4.

앞서 다룬 연산자들로 데이터를 조회할 수 있게 되었습니다.

그런데, 만약 조건들을 하나가 아닌 여러 개 적용시켜야 할 경우엔 어떻게 처리할까요?

 

엑셀에서는 여러 개 항목에 동시에 필터를 적용시킬 수 있습니다.

가령, 음료종류는 '탄산음료'와 같으면서 가격은 1500원 이상인 제품을 필터링할 수 있죠

 

이처럼 여러 개의 조건을 동시에 적용 시킬 때 SQL에선 논리 연산자를 사용합니다.

 

 

엑셀로 먼저 살펴보기

이번에도 엑셀로 먼저 기능을 사용해보고, 동일 결과값이 나올 수 있게 SQL을 작성해볼게요

아래와 같은 엑셀이 있다고 가정하고, 필터를 걸어보겠습니다.

 

1. 음료종류가 '탄산음료'와 같고, 가격이 1500원 보다 크거나 같은 제품

 

2. 음료종류가 '탄산음료'와 같거나, 재고가 5개보다 작은 제품
(이건 아마도 고급필터나 사용자 지정 필터를 사용해야 할 것 같아요)

 

 

SQL로 살펴보기

WHERE절에서 조건을 여러 개 적용시키고자 할 때는 AND, OR 를 사용합니다.

논리 연산자라고도 불리기도 하는데요!

 

AND그리고 라는 의미를 담고 있습니다. 

AND로 묶여 있는 조건들은 모두 참(True)여야 전체가 참(True)이 됩니다

 

OR또는 이라는 의미를 담고 있습니다.

OR로 묶여 있는 조건들은 그 중 하나만 참(True)이어도 전체가 참(True)이 됩니다.

 

그 외 논리연산자로는 앞에서 자주 쓰였던 NOT이 있습니다.

NOT은 조건이 참(True)이면 거짓(False)로 바꾸고, 조건이 거짓(False)이면 참(True)으로 바꾸는 연산자 입니다.

 

 

논리 연산자 AND

논리 연산자는 조건들을 이어주는 느낌으로, 조건과 조건 사이에 넣어 표현합니다.

AND로 묶인 조건들은 조건 모두가 참이어야 하기 때문에, 아래 경우는 두 조건을 모두 만족하는 제품인 '콜라'만 출력되게 됩니다.

SELECT *
FROM beverage_stock
WHERE type = '탄산음료' 
AND price >= 1500;

 

논리 연산자 OR

OR는 묶인 조건들 중 하나만 참이어도 되기 때문에, 아래 경우는 두 조건을 중 하나만 만족하는 제품도 모두 출력되게 됩니다.

SELECT *
FROM beverage_stock
WHERE type = '탄산음료' 
OR stock < 5;

 

 

정리

논리 연산자까지, WHERE 절에서 사용되는 대표 연산자들을 살펴 봤습니다.

 

사실 앞서 다룬 기본적인 연산자들만 알아도 간단한 데이터 조회가 가능한데요

하지만, 그 과정에서 NULL이라는 방해물을 만나게 되실 수도 있어요.

 

NULL은 아무 형태도 아닌 빈 값을 말합니다.

 NULL이라는 녀석은 = 나 != 이 먹히지 않아요. 별도의 표현식으로 다뤄줘야 합니다.

 

다음 장에선 NULL과 NULL을 비교하는 방법에 대해 다뤄볼게요 🙂

 

 

[ 참고 ]

 MySQL로 배우는 데이터베이스 개론과 실습

 SQL 개발자 이론서 + 기출문제

 

댓글