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

MySQL에서 DEFAULT 키워드로 기본값이 설정된 새 테이블 생성하는 방법

MySQL에서 테이블을 생성할 때 특정 컬럼에 기본값을 지정하고 싶다면, 컬럼 데이터 타입 뒤에 DEFAULT 키워드를 사용하면 됩니다. 이렇게 하면 데이터 삽입 시 해당 컬럼의 값을 생략해도 자동으로 기본값이 저장됩니다.

테이블 생성하기

DEFAULT 키워드를 활용하여 다양한 유형의 기본값(현재 날짜, NULL, 열거형 값 등)을 설정한 테이블을 만들어 보겠습니다.

mysql> create table demo33
-> (
-> id int not null auto_increment primary key,
-> name varchar(20) not null,
-> start_date date default(current_date),
-> end_date date default NULL,
-> category enum('Good','Medium','Low') default 'Low'
-> );
Query OK, 0 rows affected (2.32 sec)

위 예제에서 각 컬럼에 적용된 DEFAULT 옵션은 다음과 같습니다.

  • start_date: 값을 입력하지 않으면 현재 날짜(current_date)가 자동으로 저장됩니다.
  • end_date: 값을 입력하지 않으면 NULL이 저장됩니다.
  • category: 값을 입력하지 않으면 'Low'가 기본값으로 저장됩니다.

데이터 삽입하기

이제 INSERT 명령어를 사용하여 테이블에 레코드를 추가해 보겠습니다. 일부 레코드는 특정 컬럼의 값을 의도적으로 생략하여 DEFAULT 값이 어떻게 적용되는지 확인할 수 있습니다.

mysql> insert into demo33(name) values('John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo33(name,end_date,category) values('David','2020-12-21','Medium');
Query OK, 1 row affected (0.09 sec)

mysql> insert into demo33(name,start_date,category) values('David','2020-04-01','Good');
Query OK, 1 row affected (0.14 sec)

mysql> insert into demo33(name,start_date,end_date,category) values('David','2020-03-10','2020-08-22','Good');
Query OK, 1 row affected (0.17 sec)

결과 확인하기

SELECT 문을 사용하여 테이블에 저장된 레코드를 조회합니다.

mysql> select *from demo33;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+-------+------------+------------+----------+
| id | name  | start_date | end_date   | category |
+----+-------+------------+------------+----------+
| 1  | John  | 2020-10-28 | NULL       | Low      |
| 2  | David | 2020-10-28 | 2020-12-21 | Medium   |
| 3  | David | 2020-04-01 | NULL       | Good     |
| 4  | David | 2020-03-10 | 2020-08-22 | Good     |
+----+-------+------------+------------+----------+
4 rows in set (0.00 sec)

결과 분석

출력 결과를 살펴보면 DEFAULT 옵션이 정상적으로 작동한 것을 확인할 수 있습니다.

  • 첫 번째 레코드(John)는 start_date와 end_date, category를 모두 생략했지만, start_date에는 현재 날짜(2020-10-28)가, category에는 'Low'가 자동으로 저장되었습니다.
  • 두 번째 레코드(David)는 start_date를 생략했는데, 역시 현재 날짜가 자동으로 입력된 것을 볼 수 있습니다.
  • end_date를 생략한 레코드에는 모두 NULL이 저장되었습니다.

이처럼 DEFAULT 키워드를 활용하면 데이터 입력 시 누락될 수 있는 값을 미리 정의해 두어 데이터의 일관성과 완전성을 유지하는 데 큰 도움이 됩니다.