본문 바로가기
기획자가 알아야 할 IT지식/기획자가 알아야 할 SQL

11강. 논리 연산자 - AND, OR, NOT

by 일잘러로 살기 2025. 3. 22.

이번 강의에서는 논리 연산자AND, OR, NOT에 대해 배우겠습니다.
이 연산자들은 조건을 결합할 때 사용되며, 여러 조건을 조합하여 복잡한 쿼리를 작성할 수 있게 도와줍니다.


✅ 1. AND 연산자

AND는 두 개 이상의 조건이 모두 참일 때만 데이터를 반환하는 연산자입니다.
즉, 모든 조건이 만족해야만 결과에 포함됩니다.


1) 기본 사용법

📌 연봉이 5000 이상이고, 부서가 '개발팀'인 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE salary >= 5000 AND department = '개발팀';


📌 실행 결과

설명: AND는 두 조건이 모두 참일 때만 데이터를 반환합니다. 이 예제에서는 연봉이 5000 이상이고, 부서가 '개발팀'인 직원만 조회됩니다.
따라서 두 조건을 모두 만족하는 직원만 결과로 나오게 됩니다.


2) 다중 조건

📌 연봉이 5000 이상이고, 부서가 '개발팀' 또는 '영업팀'인 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE salary >= 5000 AND (department = '개발팀' OR department = '영업팀');


📌 실행 결과

설명: AND와 OR을 결합할 때는 괄호를 사용하여 연산자 우선순위를 명확히 해야 합니다.
위 예제에서는 연봉이 5000 이상인 직원 중 부서가 '개발팀' 또는 '영업팀'인 사람을 찾습니다.


✅ 2. OR 연산자

OR는 두 개 이상의 조건 중 하나라도 참이면 데이터를 반환하는 연산자입니다.
즉, 하나의 조건만 만족해도 결과에 포함됩니다.


1) 기본 사용법

📌 연봉이 5000 이상이거나 부서가 '개발팀'인 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE salary >= 5000 OR department = '개발팀';


📌 실행 결과

설명: OR는 두 조건 중 하나라도 참이면 결과에 포함됩니다.
위 예제에서는 연봉이 5000 이상이거나 부서가 '개발팀'인 직원을 모두 조회합니다.
따라서 두 조건 중 하나라도 만족하는 모든 직원들이 결과에 포함됩니다.


2) 다중 조건

📌 연봉이 5000 이상이거나 부서가 '개발팀' 또는 '영업팀'인 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE salary >= 5000 OR department IN ('개발팀', '영업팀');


📌 실행 결과

설명: OR는 여러 조건을 결합할 때 매우 유용합니다. 위 예제에서는 연봉이 5000 이상인 직원 또는 부서가 '개발팀' 또는 '영업팀'인 직원을 모두 찾습니다.
두 가지 조건 중 하나라도 만족하면 결과에 포함됩니다.


✅ 3. NOT 연산자

NOT은 조건의 부정을 표현하는 연산자입니다. 즉, 조건이 거짓인 경우를 찾을 때 사용됩니다.
NOT은 단독으로 사용되거나 IN, BETWEEN, LIKE와 함께 사용될 수 있습니다.


1) 기본 사용법

📌 연봉이 5000 미만인 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE NOT salary >= 5000;


📌 실행 결과

설명: NOT은 조건을 반대로 처리합니다. NOT salary >= 5000은 연봉이 5000 미만인 직원을 조회하는 조건입니다.


2) IN과 함께 사용

📌 부서가 '개발팀'이나 '영업팀'이 아닌 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE department NOT IN ('개발팀', '영업팀');


📌 실행 결과

설명: NOT IN은 지정된 값 목록에 포함되지 않는 값을 찾을 때 사용됩니다. 위 예제는 '개발팀'이나 '영업팀'이 아닌 부서에 속한 직원을 찾습니다.


✅ 4. AND, OR, NOT 결합 사용 예시

AND, OR, NOT을 결합하여 복잡한 조건을 만들 수 있습니다.
논리 연산자를 잘 활용하면 원하는 조건에 맞는 데이터를 정확하게 추출할 수 있습니다.

📌 연봉이 5000 이상이고, 부서가 '개발팀'이거나 부서가 '영업팀'이 아닌 직원 조회

SELECT name, department, salary
  FROM employees
 WHERE salary >= 5000 AND (department = '개발팀' OR department NOT IN ('영업팀'));


📌 실행 결과

설명: 괄호를 이용하여 연산자 우선순위를 지정할 수 있습니다.
위 예제에서는 연봉이 5000 이상인 직원 중 부서가 '개발팀'이거나 '영업팀'이 아닌 직원들을 조회합니다.


✅ 5. 정리