..

Search

28) DEFAULT

DEFAULT


DEFAULT

DEFAULT 제약 조건은 해당 필드의 기본값을 설정할 수 있게 해줍니다.

만약 레코드를 입력할 때 해당 필드 값을 전달하지 않으면, 자동으로 설정된 기본값을 저장합니다.


CREATE 문으로 DEFAULT 설정

CREATE 문에서 테이블을 생성할 때 다음과 같이 제약 조건을 설정할 수 있습니다.

 

CREATE 문으로 테이블을 생성할 때 해당 필드의 타입 뒤에 DEFAULT를 명시하면, 해당 필드의 기본값을 설정할 수 있습니다.

문법

CREATE TABLE 테이블이름

(

    필드이름 필드타입 DEFAULT 기본값,

    ...

)

 

다음 예제는 CREATE TABLE 문을 사용하여 Test 테이블을 생성하면서 Name 필드에 DEFAULT 제약 조건을 이용하여 기본값을 설정하는 예제입니다.

이렇게 Name 필드에 기본값을 설정한 후에 DESCRIBE 문을 사용하여 Test 테이블의 상세 정보를 확인하면, 다음 실행 결과와 같이 나타납니다.

예제

CREATE TABLE Test

(

    ID INT,

    Name VARCHAR(30) DEFAULT 'Anonymous',

    ReserveDate DATE,

    RoomNum INT

);

코딩연습 ▶

실행 결과

 

그리고서 INSERT INTO 문을 사용하여 Name 필드의 값을 가지지 않는 새로운 레코드를 추가합니다.

이처럼 새로운 레코드를 추가할 때 Name 필드 값을 전달하지 않으면, 자동으로 기본값인 'Anonymous'가 저장됩니다.

 

MySQL 수업 예제에서 사용되는 Reservation 테이블과 Customer 테이블은 다음과 같습니다.


ALTER 문으로 DEFAULT 설정

ALTER 문으로 테이블에 새로운 필드를 추가하거나 수정할 때도 DEFAULT 제약 조건을 설정할 수 있습니다.

 

테이블에 새로운 필드를 추가할 때 DEFAULT 제약 조건을 설정하는 문법은 다음과 같습니다.

문법

ALTER TABLE 테이블이름

ADD 필드이름 필드타입 DEFAULT 기본값

 

기존 필드에 DEFAULT 제약 조건을 설정하는 문법은 다음과 같습니다.

문법

1. ALTER TABLE 테이블이름

   MODIFY COLUMN 필드이름 필드타입 DEFAULT 기본값

2. ALTER TABLE 테이블이름

   ALTER 필드이름 SET DEFAULT 기본값

 

위의 두 문법은 모두 해당 필드에 DEFAULT 제약 조건을 설정합니다.

 

다음 예제는 ALTER TABLE 문을 사용하여 Reservation 테이블의 Name 필드에 DEFAULT 제약 조건을 이용하여 기본값을 설정하는 예제입니다. 

이렇게 Name 필드에 DEFAULT 제약조건을 설정한 후에 DESCRIBE 문을 사용하여 Reservation 테이블의 상세 정보를 확인하면, 다음 실행 결과와 같이 나타납니다.

예제

 

ALTER TABLE Reservation

ALTER Name SET DEFAULT 'Anonymous';

 

코딩연습 ▶

실행 결과

 

그리고서 INSERT INTO 문을 사용하여 Name 필드의 값을 가지지 않는 새로운 레코드를 추가합니다.

이처럼 새로운 레코드를 추가할 때 Name 필드 값을 전달하지 않으면, 자동으로 기본값인 'Anonymous'가 저장됩니다.

 

다음과 같은 방법을 사용하여 DEFAULT 제약 조건을 삭제할 수 있습니다.

문법

ALTER TABLE 테이블이름

ALTER 필드이름 DROP DEFAULT

 

다음 예제는 Reservation 테이블의 Name 필드에 설정된 DEFAULT 제약 조건을 삭제하는 예제입니다.

예제

 

ALTER TABLE Reservation

ALTER Name DROP DEFAULT;

 

코딩연습 ▶


연습문제