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)
);
위 예제에서 name
과 age
컬럼에 NOT NULL
제약 조건이 추가되어 있습니다. 따라서 name
과 age
컬럼에는 반드시 값이 있어야 하며, 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
테이블에 데이터를 삽입할 때, name
과 age
컬럼에 값을 입력하지 않으면 오류가 발생합니다.
INSERT INTO employees (name, age, department) VALUES ('Alice', 30, 'HR');
-- 정상적으로 삽입됨
INSERT INTO employees (age, department) VALUES (25, 'Finance');
-- 오류 발생: name 컬럼이 NOT NULL이기 때문에 값이 필요함
NOT NULL
제약 조건은 데이터 무결성을 보장하기 위해 필수 값이 필요한 컬럼에 주로 사용됩니다. 이를 통해 데이터가 입력될 때 특정 필드에 반드시 값이 존재하도록 보장할 수 있습니다.
'DB > PostgreSQL' 카테고리의 다른 글
[ PostgreSQL ] PRIMARY KEY - 식별자 Key 사용하기 (0) | 2024.11.14 |
---|---|
[ PostgreSQL ] UNIQUE - 중복값 제한하기 (0) | 2024.11.14 |
[ PostgreSQL ] CAST - query시 형변환 하기 (0) | 2024.11.12 |
[ PostgreSQL ] PostgreSQL의 데이터 타입 알아보기 (0) | 2024.10.25 |
[ PostgreSQL ] gp_dump - 백업 받기 (0) | 2024.10.18 |