ALTER 명령문을 사용하면 기존 테이블에 새로운 열(컬럼)을 추가하면서 동시에 해당 열의 기본값(DEFAULT)까지 함께 지정할 수 있습니다. 이렇게 하면 이후 데이터를 삽입할 때 해당 열에 값이 명시되지 않아도 자동으로 기본값이 입력됩니다.
기본 문법
기본값이 있는 열을 추가하는 기본적인 문법은 다음과 같습니다.
ALTER TABLE table_name ADD (column_name datatype DEFAULT data);
- table_name : 열을 추가할 대상 테이블의 이름
- column_name : 새로 추가할 열의 이름
- datatype : 해당 열의 데이터 타입 (예: INT, VARCHAR 등)
- DEFAULT data : 값이 지정되지 않았을 때 자동으로 저장될 기본값
실제 예제
아래 예제에서는 ALTER 명령문을 사용하여 'Student' 테이블에 'City'라는 열을 추가하고, 기본값을 'DELHI'로 지정하는 과정을 보여줍니다.
mysql> ALTER TABLE Student ADD (City VARCHAR(10) DEFAULT 'DELHI'); Query OK, 5 rows affected (0.33 sec) Records: 5 Duplicates: 0 Warnings: 0
명령이 성공적으로 실행되면 'Student' 테이블에 'City' 열이 새롭게 추가됩니다.
DESCRIBE로 기본값 확인하기
DESCRIBE 명령문을 사용하면 테이블 구조와 함께 각 열의 기본값(Default)을 확인할 수 있습니다.
mysql> DESCRIBE Student; +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | RollNO | int(11) | YES | | NULL | | | Name | varchar(20) | YES | | NULL | | | Class | varchar(15) | YES | | NULL | | | Grade | varchar(10) | YES | | NULL | | | Address | varchar(25) | YES | | NULL | | | Phone | int(11) | YES | | NULL | | | Email | varchar(20) | YES | | NULL | | | City | varchar(10) | YES | | DELHI | | +---------+-------------+------+-----+---------+--------+ 8 rows in set (0.04 sec)
위 결과에서 확인할 수 있듯이, 새로 추가된 'City' 열의 Default 항목이 다른 열들과 달리 NULL이 아닌 'DELHI'로 설정된 것을 볼 수 있습니다. 즉, 앞으로 학생 정보를 삽입할 때 City 값을 따로 지정하지 않으면 자동으로 'DELHI'가 저장됩니다.