WeniVooks

검색

SQL 베이스캠프

비교 연산과 논리 연산

이번 장에서는 비교 연산과 논리 연산에 대해 살펴보겠습니다. 다만 이 2개의 연산자 말고도 WHERE를 사용하면 실제 어떤 SQL문이 작성되는지 볼 수 있기 때문에 이번 장에서는 부분 WHERE을 사용하도록 하겠습니다. WHERE는 다른 챕터에서 상세히 다룹니다.

1. 비교 연산자

비교 연산자는 두 값을 비교하고 그 결과로 1(참) 또는 0(거짓)를 반환합니다. 주요 비교 연산자는 다음과 같습니다.

  • =: 두 값이 같으면 참
  • !=, <>: 두 값이 다르면 참
  • >: 왼쪽 값이 더 크면 참
  • <: 왼쪽 값이 더 작으면 참
  • >=: 왼쪽 값이 크거나 같으면 참
  • <=: 왼쪽 값이 작거나 같으면 참
SELECT 1 = 1; -- 1
SELECT 1 != 1; -- 0
SELECT 1 > 1; -- 0
SELECT 1 < 1; -- 0
SELECT 1 = 1; -- 1
SELECT 1 != 1; -- 0
SELECT 1 > 1; -- 0
SELECT 1 < 1; -- 0
실습환경 바로가기

다음 예시는 WHERE를 사용하여 가격이 50,000원 이상인 상품을 조회하는 쿼리입니다.

SELECT 상품명, 가격
FROM 상품
WHERE 가격 >= 50000;
SELECT 상품명, 가격
FROM 상품
WHERE 가격 >= 50000;
실습환경 바로가기

<> 연산자는 두 값이 다르면 참을 반환합니다. 다음 쿼리는 카테고리가 '디지털'이 아닌 상품을 조회하는 예시입니다. 한 번 실행한 다음 WHERE를 주석처리하고 실행해보세요.

SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID <> 9;
SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID <> 9;
실습환경 바로가기

2. 논리 연산자

비교 연산자를 사용하여 조건을 정의한 후, 논리 연산자를 통해 여러 조건을 결합할 수 있습니다. 논리 연산자는 AND, OR, NOT이 있습니다.

여기서 참은 1 또는 TRUE, 거짓은 0 또는 FALSE로 표현합니다. 결과는 숫자로 반환되며, TRUE는 1, FALSE는 0으로 반환됩니다.

2.1 AND 연산자

AND 연산자는 두 조건이 모두 참일 때만 참을 반환합니다.

SELECT TRUE AND TRUE; -- 1, TRUE
SELECT TRUE AND FALSE; -- 0, FALSE
SELECT TRUE AND TRUE; -- 1, TRUE
SELECT TRUE AND FALSE; -- 0, FALSE

이것이 어떻게 쓰이는지 보도록 하겠습니다. 다음 쿼리는 카테고리가 '디지털'(카테고리ID = 9)이고, 가격이 100,000원 이상인 상품을 조회하는 예시입니다.

SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID = 9 AND 가격 >= 100000;
SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID = 9 AND 가격 >= 100000;
실습환경 바로가기
2.2 OR 연산자

OR 연산자는 두 조건 중 하나라도 참이면 참을 반환합니다.

SELECT TRUE OR FALSE; -- 1, TRUE
SELECT FALSE OR FALSE; -- 0, FALSE
SELECT TRUE OR FALSE; -- 1, TRUE
SELECT FALSE OR FALSE; -- 0, FALSE

다음 쿼리는 카테고리가 '디지털'이거나 가격이 100,000원 이상인 상품을 조회하는 예시입니다.

SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID = 9 OR 가격 >= 100000;
SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE 카테고리ID = 9 OR 가격 >= 100000;
실습환경 바로가기
2.3 NOT 연산자

NOT 연산자는 조건이 거짓일 때 참을 반환합니다.

SELECT NOT TRUE; -- 0, FALSE
SELECT NOT FALSE; -- 1, TRUE
SELECT NOT TRUE; -- 0, FALSE
SELECT NOT FALSE; -- 1, TRUE

다음 쿼리는 카테고리가 '디지털'이 아닌 상품을 조회하는 예시입니다.

SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE NOT 카테고리ID = 9;
SELECT 상품명, 가격, 카테고리ID
FROM 상품
WHERE NOT 카테고리ID = 9;
실습환경 바로가기
2.6 문자열 연결하기2.8 BETWEEN