코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

SQL Default

SQL DEFAULT: 기본값 설정 제약 조건

SQL DEFAULT 제약 조건은 테이블의 특정 열에 값을 입력하지 않았을 경우, 기본값을 자동으로 삽입하는 제약 조건입니다. 즉, INSERT 문에서 해당 열의 값을 지정하지 않으면, DEFAULT로 지정된 값이 해당 열에 자동으로 입력됩니다. 이를 통해 특정 열에 일정한 기본값을 설정하여 데이터 입력을 단순화하고 일관성을 유지할 수 있습니다.


1. DEFAULT 제약 조건의 주요 특징

  1. 기본값 제공: 특정 열에 값이 입력되지 않으면 기본값이 자동으로 삽입됩니다.
  2. 데이터 일관성 유지: 모든 행에 일관된 기본값을 자동으로 설정할 수 있습니다.
  3. INSERT 명령의 간소화: 기본값이 설정된 열은 INSERT 문에서 제외해도 기본값이 자동으로 입력되므로, 데이터 입력이 간단해집니다.

2. DEFAULT 기본 문법

2.1 테이블 생성 시 DEFAULT 설정

CREATE TABLE 테이블_이름 (
    열_이름 데이터_타입 DEFAULT 기본값
);

  • 열_이름: 기본값을 설정할 열의 이름.
  • 데이터_타입: 해당 열의 데이터 타입.
  • DEFAULT 기본값: 값이 입력되지 않았을 때 자동으로 사용할 기본값.

2.2 테이블 생성 후 DEFAULT 추가 (ALTER TABLE)

ALTER TABLE 테이블_이름
ALTER COLUMN 열_이름 SET DEFAULT 기본값;

  • ALTER COLUMN: 기존 열에 대한 기본값을 설정.
  • SET DEFAULT 기본값: 열의 기본값을 설정.

3. DEFAULT 제약 조건 예제

3.1 테이블 생성 시 DEFAULT 값 설정

예제: employees 테이블에서 hire_date 열의 기본값을 현재 날짜로 설정

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    name VARCHAR(100),
    hire_date DATE DEFAULT CURRENT_DATE  -- 기본값으로 현재 날짜 설정
);

이 명령은 employees 테이블의 hire_date 열에 값이 입력되지 않으면, **현재 날짜(CURRENT_DATE)**가 자동으로 삽입되도록 설정합니다.

3.2 테이블 생성 후 DEFAULT 값 추가 (ALTER TABLE)

기존 테이블에 DEFAULT 제약 조건을 추가하려면 ALTER TABLE 명령을 사용합니다.

예제: employees 테이블의 department 열에 기본값 설정

ALTER TABLE employees
ALTER COLUMN department SET DEFAULT 'Unassigned';

이 명령은 employees 테이블에서 department 열의 기본값을 'Unassigned'로 설정하여, 부서가 지정되지 않은 경우 기본값으로 Unassigned가 자동으로 입력됩니다.


4. DEFAULT 값 제거

기존 테이블에서 DEFAULT 제약 조건을 제거할 수 있습니다.

문법

ALTER TABLE 테이블_이름
ALTER COLUMN 열_이름 DROP DEFAULT;

  • DROP DEFAULT: 열의 기본값을 제거.

예제: employees 테이블에서 department 열의 기본값 제거

ALTER TABLE employees
ALTER COLUMN department DROP DEFAULT;

이 명령은 employees 테이블에서 department 열의 DEFAULT 제약 조건을 제거하여, 이제 기본값이 설정되지 않습니다.


5. 다양한 DEFAULT 값 설정 예제

5.1 숫자 열에 기본값 설정

예제: products 테이블에서 quantity 열의 기본값을 0으로 설정

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(100),
    quantity INT DEFAULT 0  -- 기본값 0 설정
);

이 명령은 products 테이블에서 quantity 열의 기본값을 0으로 설정하여, 상품 수량이 입력되지 않으면 0이 자동으로 입력됩니다.

5.2 문자열 열에 기본값 설정

예제: employees 테이블에서 department 열에 기본값 설정

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50) DEFAULT 'Unassigned'  -- 기본값 'Unassigned' 설정
);

이 명령은 employees 테이블에서 department 열의 기본값을 **'Unassigned'**로 설정하여, 값이 입력되지 않으면 **'Unassigned'**가 자동으로 입력됩니다.

5.3 날짜 및 시간 열에 기본값 설정

예제: orders 테이블에서 order_date 열의 기본값을 현재 날짜로 설정

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    order_date DATETIME DEFAULT CURRENT_TIMESTAMP  -- 기본값으로 현재 시간 설정
);

이 명령은 orders 테이블에서 order_date 열의 기본값을 CURRENT_TIMESTAMP로 설정하여, 주문 날짜가 입력되지 않으면 현재 날짜와 시간이 자동으로 입력됩니다.


6. INSERT 문에서 기본값 사용

INSERT 문에서 특정 열에 값을 지정하지 않으면 DEFAULT 제약 조건에 설정된 값이 자동으로 사용됩니다. DEFAULT 제약 조건이 없는 열은 NULL 또는 정의된 기본값이 없는 상태로 처리됩니다.

예제: employees 테이블에 기본값을 사용한 데이터 삽입

INSERT INTO employees (employee_id, name)
VALUES (1, 'John Doe');

이 명령은 employee_idname만 입력하고, hire_datedepartment 열에는 값을 입력하지 않았습니다. 기본값이 설정된 열에는 기본값이 자동으로 입력됩니다.

  • hire_date: 현재 날짜가 삽입됩니다.
  • department: 'Unassigned'가 삽입됩니다.

7. 실전 예제

예제 1: 기본값을 사용한 테이블 생성

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    name VARCHAR(100),
    hire_date DATE DEFAULT CURRENT_DATE,  -- 현재 날짜가 기본값
    department VARCHAR(50) DEFAULT 'Unassigned'  -- 기본값 'Unassigned'
);

이 예제는 employees 테이블에서 hire_datedepartment 열에 각각 현재 날짜와 **'Unassigned'**를 기본값으로 설정합니다.

예제 2: 테이블 수정 후 기본값 설정

ALTER TABLE products
ALTER COLUMN price SET DEFAULT 0.0;

이 명령은 products 테이블에서 price 열의 기본값을 0.0으로 설정하여, 값이 입력되지 않으면 0.0이 자동으로 삽입되도록 설정합니다.


8. 요약

  • DEFAULT 제약 조건은 테이블 열에 기본값을 자동으로 삽입하는 제약 조건입니다.
  • 기본값이 설정된 열은 INSERT 시 값을 지정하지 않으면, 지정된 기본값이 자동으로 삽입됩니다.
  • ALTER TABLE 명령을 사용하여 기존 테이블에 DEFAULT 값을 추가하거나 제거할 수 있습니다.
  • 숫자, 문자열, 날짜 및 시간 등의 데이터 타입에 기본값을 설정할 수 있으며, 이를 통해 데이터 입력을 간소화하고 일관성을 유지할 수 있습니다.

DEFAULT 제약 조건은 테이블의 특정 열에 일관된 기본값을 자동으로 적용함으로써 데이터 입력 시 편리함데이터 무결성을 동시에 보장할 수 있습니다.


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