데이터/MySQL

[MySQL] NOT NULL 제약조건

캣코딩 2023. 12. 6. 08:54

NOT NULL 제약조건

NOT NULL 제약조건은 특정 열에 NULL 값을 허용하지 않도록 강제합니다. 이는 해당 열에는 반드시 데이터가 존재해야 한다는 의미입니다.

 

NOT NULL 제약조건의 특징

1. NULL 값 허용 안 함

NOT NULL 제약을 가진 열에는 NULL 값이 들어갈 수 없습니다.

 

2. 기본적으로 NULL

특별한 제약이 없는 경우, 열은 기본적으로 NULL을 허용합니다.

 

3. 데이터 일관성 유지

NOT NULL 제약을 사용하면 데이터 일관성을 유지하고 누락된 데이터를 방지할 수 있습니다.

 

NOT NULL 제약조건의 적절한 사용 사례

1. 필수 정보 저장

사용자의 이름, 이메일 주소, 비밀번호 등 필수 정보를 저장할 때 사용됩니다.

 

2. 외래 키 정의 시

외래 키로 사용되는 열은 참조된 테이블에 반드시 일치하는 값이 있어야 하므로 NOT NULL 제약을 사용합니다.

 

NOT NULL 제약조건 예제

-- 테이블 생성 (NOT NULL 제약을 가진 사용자 테이블)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

-- 데이터 삽입 (NULL 값을 가지는 열에 데이터 삽입 시도 - 오류 발생)
INSERT INTO users (user_id, username, email)
VALUES (1, NULL, 'john@example.com');

-- 올바른 데이터 삽입
INSERT INTO users (user_id, username, email)
VALUES (2, 'john_doe', 'john@example.com');

위 예제에서 `username``email` 열에는 NOT NULL 제약이 걸려 있습니다. 따라서 NULL 값을 가지는 데이터를 삽입하려고 하면 오류가 발생합니다.