논리/부울 연산자

논리 연산자는 한 개 또는 두 개의 입력 식에 대한 특정 부울 연산의 결과를 반환합니다.

이러한 연산자는 조건자로만 사용할 수 있습니다(예: WHERE 절에서). 입력 식은 조건자여야 합니다.

참고 항목:

BOOLAND , BOOLNOT , BOOLOR , BOOLXOR

이 항목의 내용:

논리/부울 연산자 목록

연산자

구문 예

설명

AND

a AND b

두 식(ab)과 모두 일치합니다.

NOT

NOT a

식과 일치하지 않습니다.

OR

a OR b

두 식 중 하나와 일치합니다.

이러한 연산자의 우선 순위(가장 높은 순위에서 가장 낮은 순위로)가 아래에 표시되어 있습니다.

  • NOT

  • AND

  • OR

첫 번째 예에서는 다음 테이블과 데이터를 사용합니다.

CREATE TABLE logical (t BOOLEAN, f BOOLEAN, n BOOLEAN);
INSERT INTO logical (t, f, n) VALUES (True, False, NULL);
Copy

논리 연산자는 일반적으로 WHERE 절에 사용됩니다.

SELECT t, f, n FROM logical WHERE t AND NOT f;
Copy

출력:

+------+-------+------+
| T    | F     | N    |
|------+-------+------|
| True | False | NULL |
+------+-------+------+
Copy

아래 예에서는 논리 연산자의 우선 순위를 보여줍니다.

첫 번째 예에서는 AND의 우선 순위가 OR의 우선 순위보다 높음을 보여줍니다. 첫 번째 식은 세 번째 식과 같은 방식이 아니라, 두 번째 식과 같은 방식으로 계산됩니다.

SELECT TRUE OR TRUE AND FALSE, TRUE OR (TRUE AND FALSE), (TRUE OR TRUE) AND FALSE;
Copy

출력:

+------------------------+--------------------------+--------------------------+
| TRUE OR TRUE AND FALSE | TRUE OR (TRUE AND FALSE) | (TRUE OR TRUE) AND FALSE |
|------------------------+--------------------------+--------------------------|
| True                   | True                     | False                    |
+------------------------+--------------------------+--------------------------+
Copy

다음 예에서는 NOT의 우선 순위가 AND의 우선 순위보다 높음을 보여줍니다. 첫 번째 식은 세 번째 식과 같은 방식이 아니라, 두 번째 식과 같은 방식으로 계산됩니다.

SELECT NOT FALSE AND FALSE, (NOT FALSE) AND FALSE, NOT (FALSE AND FALSE);
Copy

출력:

+---------------------+-----------------------+-----------------------+
| NOT FALSE AND FALSE | (NOT FALSE) AND FALSE | NOT (FALSE AND FALSE) |
|---------------------+-----------------------+-----------------------|
| False               | False                 | True                  |
+---------------------+-----------------------+-----------------------+
Copy

다음 예에서는 NOT의 우선 순위가 OR의 우선 순위보다 높음을 보여줍니다. 첫 번째 식은 세 번째 식과 같은 방식이 아니라, 두 번째 식과 같은 방식으로 계산됩니다.

SELECT NOT FALSE OR TRUE, (NOT FALSE) OR TRUE, NOT (FALSE OR TRUE);
Copy

출력:

+-------------------+---------------------+---------------------+
| NOT FALSE OR TRUE | (NOT FALSE) OR TRUE | NOT (FALSE OR TRUE) |
|-------------------+---------------------+---------------------|
| True              | True                | False               |
+-------------------+---------------------+---------------------+
Copy

다음 몇 가지 예에서는 논리 연산자에 대한 “진리표”를 보여줍니다.

새 테이블과 데이터를 만듭니다.

CREATE TABLE logical2 (x BOOLEAN);
INSERT INTO logical2 (x) VALUES 
    (False),
    (True),
    (NULL);
Copy

다음은 OR 연산자에 대한 진리표를 보여줍니다.

SELECT x AS "OR", x OR False AS "FALSE", x OR True AS "TRUE", x OR NULL AS "NULL"
  FROM logical2;
Copy

출력:

+-------+-------+------+------+
| OR    | FALSE | TRUE | NULL |
|-------+-------+------+------|
| False | False | True | NULL |
| True  | True  | True | True |
| NULL  | NULL  | True | NULL |
+-------+-------+------+------+
Copy

다음은 AND 연산자에 대한 진리표를 보여줍니다.

SELECT x AS "AND", x AND False AS "FALSE", x AND True AS "TRUE", x AND NULL AS "NULL"
  FROM logical2;
Copy

출력:

+-------+-------+-------+-------+
| AND   | FALSE | TRUE  | NULL  |
|-------+-------+-------+-------|
| False | False | False | False |
| True  | False | True  | NULL  |
| NULL  | False | NULL  | NULL  |
+-------+-------+-------+-------+
Copy