Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL INT 컬럼은 NULL 값을 가질 수 있을까? NULL 저장 방법과 예제

MySQL INT 컬럼에 NULL 저장이 가능한가?

네, 가능합니다. MySQL에서 INT 타입의 컬럼은 기본적으로 NULL 값을 허용(nullable)합니다. 별도의 제약 조건(NOT NULL)을 지정하지 않는 한, 해당 컬럼에는 숫자 대신 NULL을 자유롭게 저장할 수 있습니다.

INT 컬럼에 NULL을 삽입하는 기본 문법은 다음과 같습니다.

INSERT INTO yourTableName(yourIntColumnName) values(NULL);

예제 테이블 생성

실제 동작을 확인하기 위해 테스트용 테이블을 만들어 보겠습니다. 아래 쿼리는 Id를 기본 키로, Price를 일반 INT 컬럼으로 정의한 테이블입니다.

mysql> create table nullableIntDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> Price int,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.80 sec)

여기서 주목할 점은 Price 컬럼에 NOT NULL 제약이 없다는 것입니다. 따라서 이 컬럼에는 NULL 값이 들어갈 수 있습니다.

NULL 및 숫자 데이터 삽입

이제 Price 컬럼에 NULL과 실제 숫자 값을 번갈아 삽입해 보겠습니다.

mysql> insert into nullableIntDemo(Price) values(NULL);
Query OK, 1 row affected (0.11 sec)
mysql> insert into nullableIntDemo(Price) values(100);
Query OK, 1 row affected (0.15 sec)
mysql> insert into nullableIntDemo(Price) values(200);
Query OK, 1 row affected (0.12 sec)
mysql> insert into nullableIntDemo(Price) values(NULL);
Query OK, 1 row affected (0.13 sec)
mysql> insert into nullableIntDemo(Price) values(NULL);
Query OK, 1 row affected (0.10 sec)

모든 INSERT 문이 오류 없이 정상 실행된 것을 확인할 수 있습니다.

저장된 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> select *from nullableIntDemo;

실행 결과는 다음과 같습니다.

+----+-------+
| Id | Price |
+----+-------+
|  1 | NULL  |
|  2 | 100   |
|  3 | 200   |
|  4 | NULL  |
|  5 | NULL  |
+----+-------+
5 rows in set (0.00 sec)

결론

위 출력 결과에서 확인할 수 있듯이, MySQL의 INT 컬럼은 명시적으로 NOT NULL로 선언하지 않는 한 NULL 값을 저장할 수 있는 nullable 컬럼입니다. 즉, INT 타입이라고 해서 반드시 0이나 특정 숫자만 저장해야 하는 것은 아니며, '값이 없음'을 의미하는 NULL도 유효한 상태로 사용할 수 있습니다.