MySQL에서 테이블을 생성할 때 특정 열에 기본값을 설정하려면 DEFAULT 키워드를 사용하면 됩니다. 기본값이 설정된 열에는 INSERT 문에서 해당 열의 값을 지정하지 않아도 자동으로 기본값이 입력됩니다.
테이블 생성 시 DEFAULT 값 설정하기
먼저 예제를 통해 테이블을 생성해 보겠습니다. 아래와 같이 테이블을 생성하는 과정에서 각 열에 DEFAULT 값을 지정할 수 있습니다.
mysql> create table DemoTable803 (
UserId int DEFAULT 101,
UserName varchar(100) DEFAULT 'Chris'
);
Query OK, 0 rows affected (1.18 sec)
위 예제에서 UserId 열의 기본값은 101, UserName 열의 기본값은 'Chris'로 설정되었습니다.
데이터 삽입 및 기본값 자동 적용 확인
INSERT 명령을 사용하여 테이블에 레코드를 삽입해 보겠습니다. 값을 지정하지 않은 열에는 자동으로 기본값이 설정됩니다.
mysql> insert into DemoTable803 values(102,'Chris');
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable803(UserName) values('Mike');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable803(UserId) values(103);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable803 values();
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable803 values(110,'Robert');
Query OK, 1 row affected (0.33 sec)
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable803;
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------+----------+
| UserId | UserName |
+--------+----------+
| 102 | Chris |
| 101 | Mike |
| 103 | Chris |
| 101 | Chris |
| 110 | Robert |
+--------+----------+
5 rows in set (0.00 sec)
결과를 살펴보면 UserName만 지정한 두 번째 레코드에는 UserId가 101로, UserId만 지정한 세 번째 레코드에는 UserName이 'Chris'로 자동 입력된 것을 확인할 수 있습니다. 또한 어떤 값도 지정하지 않은 네 번째 레코드에는 두 열 모두 기본값이 그대로 적용되었습니다.
DEFAULT() 함수로 기본값 조회하기
MySQL에서는 DEFAULT() 함수를 사용하여 열에 설정된 기본값만 별도로 조회할 수 있습니다. 다음은 기본값만 출력하는 쿼리입니다.
mysql> select default(UserId),default(UserName) from DemoTable803 limit 1;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------------+-------------------+
| default(UserId) | default(UserName) |
+-----------------+-------------------+
| 101 | Chris |
+-----------------+-------------------+
1 row in set (0.00 sec)