MySQL Default
MySQL DEFAULT: 열에 기본값 설정하기
DEFAULT 제약 조건은 MySQL에서 테이블의 열에 대해 기본값을 설정하는 데 사용됩니다. 이 제약 조건을 통해 데이터를 삽입할 때 특정 열에 값이 제공되지 않으면 자동으로 기본값이 사용되도록 할 수 있습니다. 이 가이드는 MySQL에서 DEFAULT 제약 조건을 사용하는 방법, 기본 문법 및 예제를 설명합니다.
1. 기본 개념
1.1. 정의
DEFAULT 제약 조건은 열에 대한 기본값을 정의하여, 데이터 삽입 시 해당 열에 값이 지정되지 않은 경우 이 기본값을 사용하도록 설정합니다. 이를 통해 데이터를 삽입할 때 누락된 값을 처리할 수 있습니다.
1.2. 기본 문법
DEFAULT 제약 조건은 테이블을 생성할 때 또는 ALTER TABLE 문을 사용하여 추가할 수 있습니다.
1.2.1. 테이블 생성 시 DEFAULT 설정
CREATE TABLE table_name (
column_name datatype DEFAULT default_value,
...
);
1.2.2. 기존 테이블에 DEFAULT 추가
ALTER TABLE table_name
ALTER COLUMN column_name SET DEFAULT default_value;
2. DEFAULT 사용 예제
2.1. 테이블 생성 시 DEFAULT 설정
아래 예제에서는 created_at
열에 기본값으로 현재 시간을 설정합니다.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
위 쿼리는 users
테이블을 생성하며, created_at
열에 기본값으로 현재 타임스탬프를 사용하도록 설정합니다. 이로 인해 사용자 레코드를 삽입할 때
created_at
열에 값을 지정하지 않으면 자동으로 현재 시간이 저장됩니다.
2.2. 기존 테이블에 DEFAULT 추가
기존 테이블에 DEFAULT 제약 조건을 추가하려면 다음과 같이 합니다.
ALTER TABLE users
ALTER COLUMN created_at SET DEFAULT '2024-01-01 00:00:00';
이 쿼리는 users
테이블의 created_at
열에 대해 기본값을 2024-01-01 00:00:00
으로 설정합니다.
3. DEFAULT 제약 조건의 유용성
- 데이터 입력 편의성: 기본값을 설정하면 데이터를 삽입할 때 모든 열에 대해 값을 명시할 필요가 없으므로 작업이 간편해집니다.
- 데이터 일관성 유지: 기본값을 통해 누락된 데이터를 처리함으로써 데이터의 일관성을 유지할 수 있습니다. 예를 들어, 주문 테이블에서 주문 상태의 기본값을 "처리 중"으로 설정할 수 있습니다.
- 코드 간결성: 애플리케이션 코드에서 기본값을 처리할 필요가 없어지므로, 코드가 더 간결해지고 유지 관리가 쉬워집니다.
4. DEFAULT 사용 시 주의사항
- 기본값의 데이터 타입: DEFAULT 제약 조건으로 설정하는 값은 열의 데이터 타입과 일치해야 합니다. 예를 들어, 문자열 열에는 문자열 값을, 숫자 열에는 숫자 값을 지정해야 합니다.
- NULL과의 관계: DEFAULT 제약 조건을 설정하더라도, 열에 NULL 값을 명시적으로 입력할 수 있습니다. 기본값은 NULL 값이 아닌 경우에만 사용됩니다.
- 기본값 변경: DEFAULT 제약 조건을 변경하려면 ALTER TABLE 문을 사용하여 새로운 기본값을 설정할 수 있습니다. 이전 기본값은 자동으로 삭제됩니다.
5. DEFAULT 제약 조건 수정 및 삭제
5.1. DEFAULT 제약 조건 변경
기존 열의 기본값을 변경하려면 다음과 같은 쿼리를 사용할 수 있습니다.
ALTER TABLE users
ALTER COLUMN created_at SET DEFAULT '2024-02-01 00:00:00';
이 쿼리는 users
테이블의 created_at
열에 대해 새로운 기본값으로 변경합니다.
5.2. DEFAULT 제약 조건 삭제
DEFAULT 제약 조건을 삭제하려면 다음과 같이 합니다.
ALTER TABLE users
ALTER COLUMN created_at DROP DEFAULT;
이 쿼리는 users
테이블의 created_at
열에 설정된 DEFAULT 제약 조건을 삭제합니다.
6. 요약
MySQL DEFAULT 제약 조건은 테이블의 열에 대해 기본값을 설정하여 데이터 삽입 시 누락된 값을 처리하는 데 유용합니다. 이를 통해 데이터의 일관성을 유지하고, 데이터 입력의 편리함을 제공합니다.
- 정의: 특정 열의 기본값 설정.
- 기본 문법: 테이블 생성 시 또는 ALTER TABLE로 추가 가능.
- 유용성: 데이터 입력 편의성, 데이터 일관성 유지, 코드 간결성 향상.
- 주의사항: 기본값의 데이터 타입 일치, NULL 처리.
MySQL의 DEFAULT 제약 조건을 활용하여 효율적이고 안정적인 데이터 관리를 수행할 수 있습니다.