코딩 스쿨 MySQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

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 제약 조건의 유용성

  1. 데이터 입력 편의성: 기본값을 설정하면 데이터를 삽입할 때 모든 열에 대해 값을 명시할 필요가 없으므로 작업이 간편해집니다.
  2. 데이터 일관성 유지: 기본값을 통해 누락된 데이터를 처리함으로써 데이터의 일관성을 유지할 수 있습니다. 예를 들어, 주문 테이블에서 주문 상태의 기본값을 "처리 중"으로 설정할 수 있습니다.
  3. 코드 간결성: 애플리케이션 코드에서 기본값을 처리할 필요가 없어지므로, 코드가 더 간결해지고 유지 관리가 쉬워집니다.

4. DEFAULT 사용 시 주의사항

  1. 기본값의 데이터 타입: DEFAULT 제약 조건으로 설정하는 값은 열의 데이터 타입과 일치해야 합니다. 예를 들어, 문자열 열에는 문자열 값을, 숫자 열에는 숫자 값을 지정해야 합니다.
  2. NULL과의 관계: DEFAULT 제약 조건을 설정하더라도, 열에 NULL 값을 명시적으로 입력할 수 있습니다. 기본값은 NULL 값이 아닌 경우에만 사용됩니다.
  3. 기본값 변경: 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 제약 조건을 활용하여 효율적이고 안정적인 데이터 관리를 수행할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com