데이터/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 값을 가지는 데이터를 삽입하려고 하면 오류가 발생합니다.