MySQL NULL
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)