개인적인 정리

MySQL NULL 본문

DB/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)

 

'DB > MYSQL' 카테고리의 다른 글

LEAST()함수  (0) 2020.03.18
GREATEST() 함수  (0) 2020.03.18
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
MySQL 날짜 차이 TIMESTAMPDIFF()  (0) 2020.03.06
Comments