MySQL에서 기본값을 NULL로 설정하기
MySQL에서는 DEFAULT 키워드를 사용하여 컬럼의 기본값을 NULL로 지정할 수 있습니다. 이렇게 하면 데이터 삽입 시 해당 컬럼에 값을 명시하지 않아도 자동으로 NULL이 저장됩니다.
1. 기본값이 NULL인 테이블 생성
먼저 StudentName과 StudentAge 컬럼에 DEFAULT NULL을 적용한 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1440
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20) DEFAULT NULL,
-> StudentAge int DEFAULT NULL
-> );
Query OK, 0 rows affected (0.55 sec)
2. 데이터 삽입 및 기본값 동작 확인
INSERT 명령을 사용하여 레코드를 삽입합니다. 이때 값을 지정하지 않은 컬럼에는 기본값인 NULL이 자동으로 입력됩니다.
mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)3. 결과 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable1440;
실행 결과는 다음과 같습니다.
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1 | Chris | 21 |
| 2 | NULL | NULL |
| 3 | David | NULL |
| 4 | NULL | 24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
위 결과를 보면, 값이 지정되지 않은 컬럼에는 모두 NULL이 저장된 것을 확인할 수 있습니다.
기존 테이블의 컬럼 기본값을 NULL로 변경하기
이미 생성된 테이블의 경우 ALTER TABLE 문과 MODIFY 절을 사용하여 기본값을 NULL로 변경할 수 있습니다.
mysql> alter table DemoTable1440 modify StudentAge int DEFAULT NULL;
단, 컬럼이 NOT NULL 제약 조건을 갖고 있다면 기본값을 NULL로 설정할 수 없으므로, 필요하다면 NOT NULL 조건도 함께 해제해야 합니다.