웹이야기

MySQL에서 NULL에 관한 몇가지 본문

D/MySQL

MySQL에서 NULL에 관한 몇가지

yeon.Biju 2020. 3. 9. 11:14

MySQL에서 NULL에 관한 몇가지

 

 

1.  NULL means "a missing unknown value"

 

2. 연산자로 IS NULL, IS NOT NULL을 사용한다. 

 

mysql> SELECT 1 IS NULL, 1 IS NOT NULL ;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
|         0 |             1 |
+-----------+---------------+
1 row in set (0.00 sec)

 

3. 산술연산자를 사용할 수 없다. 

=, <, > , <> 같은 산술연산자를 사용할 수 없다.

산술연산자 arithmetic comparison operator 와의 비교는 항상 NULL 이기 때문에 사용할 수 없다.

 

mysql> SELECT 1 =NULL, 1 <>NULL, 1 <NULL, 1>NULL ;
+---------+----------+---------+--------+
| 1 =NULL | 1 <>NULL | 1 NULL |
+---------+----------+---------+--------+
|    NULL |     NULL |    NULL |   NULL |
+---------+----------+---------+--------+
1 row in set (0.00 sec)

 

 

4. In MYSQL, 0 or NULL means false and anything else means true. The default truth value from a boolean operation is 1.

 

5. GROUP BY 절에서 NULL 같은 값으로 취급된다.

 

6. ORDER BY 절에서 NULL

   - 오름차순에는 가장 첫번째로 나오고

   - 내림차순에서는 가장 마지막에 나온다

 

7. NOT NULL 칼럼에 0 또는 empty string 을 넣을려고 하면 잘 들어간다.

   - 생각해보면 NOT NULL 로 지정하는 이유는 데이타가 들어가지 않는 경우를 없게 할려고 하는 것인데...

   - NULL means "not having value" 인데, 0 또는 empty String 은 어쨎거나 값을 가진 것이니 말이다.

 

mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL ;
+-----------+---------------+------------+----------------+
| 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
+-----------+---------------+------------+----------------+
|         0 |             1 |          0 |              1 |
+-----------+---------------+------------+----------------+
1 row in set (0.00 sec)

 

'D > MySQL' 카테고리의 다른 글

MySQL 정규표현 함수  (0) 2020.03.09
MySQL 검색에 대한 몇가지  (0) 2020.03.09
MySQL 날짜 더하기, 빼기  (0) 2020.03.06
MySQL 연, 월, 일, 요일 구하는 함수  (0) 2020.03.06
MySQL 현재 시간/날짜  (0) 2020.03.06
Comments