Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL IS 및 IS NOT 연산자란? 용도와 사용법 완벽 정리

MySQL에서 ISIS NOT 연산자는 모두 특정 값을 불리언(Boolean) 값과 비교하여 검사하는 데 사용됩니다. 일반적인 비교 연산자(=, !=)와 달리, 이 연산자들은 NULL 값을 포함한 세 가지 논리 상태(TRUE, FALSE, UNKNOWN)를 안전하게 다룰 수 있다는 점이 큰 장점입니다.

IS 연산자의 구문

Val IS Boolean_val
  • Val: 불리언 값과 비교하여 검사하려는 값입니다.
  • Boolean_val: 비교 기준이 되는 불리언 값으로, TRUE, FALSE, UNKNOWN 중 하나를 사용할 수 있습니다.

IS NOT 연산자의 구문

Val IS NOT Boolean_val

IS NOTIS의 반대 개념으로, 값이 해당 불리언 값과 일치하지 않는지를 검사합니다. 구문 형식과 매개변수의 의미는 IS 연산자와 동일합니다.

실제 예제로 확인하기

다음 MySQL 문장들을 실행하면 두 연산자의 동작 방식을 명확하게 이해할 수 있습니다.

mysql> Select 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;
+-----------+------------+-----------------+
| 1 IS TRUE | 0 IS FALSE | NULL IS UNKNOWN |
+-----------+------------+-----------------+
|         1 |          1 |               1 |
+-----------+------------+-----------------+
1 row in set (0.00 sec)

위 결과에서 숫자 1은 TRUE로 간주되고, 0은 FALSE로 간주되며, NULL은 UNKNOWN에 해당하므로 세 조건 모두 참(1)을 반환합니다.

mysql> Select 1 IS NOT TRUE, 0 IS NOT FALSE, NULL IS NOT UNKNOWN;
+---------------+----------------+---------------------+
| 1 IS NOT TRUE | 0 IS NOT FALSE | NULL IS NOT UNKNOWN |
+---------------+----------------+---------------------+
|             0 |              0 |                   0 |
+---------------+----------------+---------------------+
1 row in set (0.00 sec)

각 값이 자신의 불리언 값과 일치하므로, IS NOT 연산자는 모두 거짓(0)을 반환합니다.

mysql> Select 0 IS NOT TRUE, 1 IS NOT FALSE, NULL IS NOT UNKNOWN;
+---------------+----------------+---------------------+
| 0 IS NOT TRUE | 1 IS NOT FALSE | NULL IS NOT UNKNOWN |
+---------------+----------------+---------------------+
|             1 |              1 |                   0 |
+---------------+----------------+---------------------+
1 row in set (0.00 sec)

숫자 0은 TRUE가 아니고, 숫자 1은 FALSE가 아니므로 앞의 두 조건은 참(1)을 반환합니다. 반면 NULL은 UNKNOWN에 해당하기 때문에 'NULL IS NOT UNKNOWN'은 거짓(0)을 반환합니다.

정리

ISIS NOT 연산자는 값이 TRUE, FALSE, UNKNOWN과 일치하는지 여부를 판별하는 데 유용하며, 특히 NULL 값을 비교해야 하는 상황에서 = NULL이나 != NULL 대신 IS NULL, IS NOT NULL 방식처럼 안전하고 명확한 로직을 작성할 수 있게 해줍니다.