본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] NOT NULL - 빈값을 허용하지 않는 column 만들기

반응형

NOT NULL 제약 조건은 PostgreSQL에서 특정 컬럼이 NULL 값을 가질 수 없도록 설정하는 제약 조건입니다. 이 조건을 추가하면, 해당 컬럼에는 반드시 값이 있어야 하며, 데이터 입력 시 NULL을 허용하지 않습니다.

1. NOT NULL 사용법

NOT NULL은 테이블을 생성할 때, 컬럼 정의에 추가하여 사용합니다. 이미 생성된 테이블에도 ALTER TABLE 문을 통해 NOT NULL 제약 조건을 추가할 수 있습니다.

기본 사용 예제 (테이블 생성 시)

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INTEGER NOT NULL,
    department VARCHAR(50)
);

위 예제에서 nameage 컬럼에 NOT NULL 제약 조건이 추가되어 있습니다. 따라서 nameage 컬럼에는 반드시 값이 있어야 하며, NULL 값이 입력될 수 없습니다. 하지만 department 컬럼은 NULL을 허용하므로 값이 없을 경우 NULL을 저장할 수 있습니다.

2. NOT NULL 제약 조건 추가하기 (ALTER TABLE)

이미 생성된 테이블에 NOT NULL 제약 조건을 추가하려면 ALTER TABLE 문을 사용합니다.

ALTER TABLE employees
ALTER COLUMN department SET NOT NULL;

이 명령을 실행하면 employees 테이블의 department 컬럼에 NOT NULL 제약 조건이 추가됩니다. 이제 이 컬럼도 반드시 값이 필요하게 됩니다.

3. NOT NULL 제약 조건 삭제하기

컬럼에서 NOT NULL 제약 조건을 제거할 수도 있습니다. 이를 통해 해당 컬럼이 NULL 값을 허용하도록 설정할 수 있습니다.

ALTER TABLE employees
ALTER COLUMN department DROP NOT NULL;

이 명령을 실행하면 department 컬럼의 NOT NULL 제약 조건이 제거되어 NULL 값을 허용하게 됩니다.

4. NOT NULL 사용 시 유의점

  • NOT NULL 제약 조건이 있는 컬럼에 값을 입력하지 않으면 오류가 발생합니다.
  • NOT NULL을 추가할 때, 이미 컬럼에 NULL 값이 존재하는 경우 제약 조건을 추가할 수 없습니다. 먼저 NULL 값을 적절한 값으로 업데이트한 후 제약 조건을 추가해야 합니다.

5. 예제 - NOT NULL 제약 조건 적용 후 데이터 삽입

위에서 생성한 employees 테이블에 데이터를 삽입할 때, nameage 컬럼에 값을 입력하지 않으면 오류가 발생합니다.

INSERT INTO employees (name, age, department) VALUES ('Alice', 30, 'HR');
-- 정상적으로 삽입됨

INSERT INTO employees (age, department) VALUES (25, 'Finance');
-- 오류 발생: name 컬럼이 NOT NULL이기 때문에 값이 필요함

NOT NULL 제약 조건은 데이터 무결성을 보장하기 위해 필수 값이 필요한 컬럼에 주로 사용됩니다. 이를 통해 데이터가 입력될 때 특정 필드에 반드시 값이 존재하도록 보장할 수 있습니다.

반응형