NULL은 프로그램, 데이터베이스 에서도 공백과는 또 다른 의미입니다. NULL은 ‘아무것 도 없다’는 뜻입니다. 테이블에 데이터를 입력할 때 값을 지정하기 않거나 없을 경우에는 해당 컬럼을 NULL로 자동 설정됩니다.

물론, 제약사항 속성을 통하여 NULL이 지정되지 않게 할 수도 있습니다. 또는 초기값을 지정하여 설정할 수도 있습니다.

12.4.1 NULL 확인

NULL로 설정된 컬럼을 조건을 통하여 검색할 수 있습니다.

| 쿼리 문법 |

쿼리~ WHERE 컬럼명 IS NULL; 

컬럼의 상태가 NULL인지를 확인하기 위해서는 IS NULL 연산을 통하여 확인할 수 있습니다.

| 예제 쿼리 |

select * from members where address IS NULL; 

위의 쿼리 예제는 주소가 NULL로 설정된 데이터만 검색하여 출력합니다.

| 콘솔 실습 화면 |

mysql> select * from members where address IS NULL;
+----+----------+-----------+---------+------+---------+
| Id | LastName | FirstName | Address | City | Country |
+----+----------+-----------+---------+------+---------+
|  2 | jiny     | NULL      | NULL    | NULL | korea   |
+----+----------+-----------+---------+------+---------+
1 row in set (0.00 sec)

결과를 확인하면 주소 컬럼이 NULL로 설정된 것을 확인할 수 있습니다.

12.4.2 NOT NULL 확인

반대로 NULL이 아닌 값 검색은 IS NOT NULL 로 사용합니다.

| 쿼리 문법 |

~~ WHERE 컬럼명 IS NOT NULL; 

| 예제 쿼리 |

select * from members where address IS NOT NULL; 

위의 쿼리 예제는 주소 부분이 NULL이 아닌 회원 목록만을 출력합니다.

| 콘솔 실습 화면 |

mysql> select * from members where address IS NOT NULL;
+----+----------+-----------+-------------+-------+---------+
| Id | LastName | FirstName | Address     | City  | Country |
+----+----------+-----------+-------------+-------+---------+
|  1 | hojin    | lee       | shinchon    | seoul | korea   |
|  3 | james    | kim       | youngdun-po | seoul | korea   |
|  4 | eric     | jung      | seocho-gu   | seoul | korea   |
+----+----------+-----------+-------------+-------+---------+
3 rows in set (0.00 sec)

주소를 가지고 있는 회원만 출력했습니다.

12.4.3 PHP 실습

PHP 코드를 통하여 컬럼의 NULL을 확인해 봅니다.

예제 파일 | sql-.php

<?php

	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();

	$queryString = "select * from members WHERE address IS NOT NULL";
	if ($rowss = $db->selectRowss($queryString)) {
		echo "tables fields = ". count($rowss) . "<br>";
 
		for ($i=0;$i<count($rowss);$i++) {
			echo $i."=";            
			print_r($rowss[$i]);
			echo "<br>";
		}
	}

?>

화면 출력

mysql connected!
쿼리성공] select * from members WHERE address IS NOT NULL
tables fields = 2
0=stdClass Object ( [Id] => 1 [LastName] => hojin [FirstName] => lee [Address] => shinchon [City] => seoul [Country] => Korea [manager] => infohojin [email] => hojin@jinyphp.com )
1=stdClass Object ( [Id] => 3 [LastName] => james [FirstName] => kim [Address] => youngdun-po [City] => seoul [Country] => Korea [manager] => info [email] => james@jinyphp.com )