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 )