NOT NULL 제약조건은 특정 컬럼이 NULL 값을 가질 수 없도록 설정하는 제약조건입니다.
즉, 해당 컬럼에는 반드시 값이 입력되어야 하며, NULL 값을 허용하지 않습니다.
CREATE TABLE students (
student_id NUMBER PRIMARY KEY,
name VARCHAR2(100) NOT NULL, -- 반드시 값이 있어야 함
age NUMBER
);
✅ name 컬럼에 NOT NULL 제약조건이 적용되어 NULL 입력이 불가능합니다.
ALTER TABLE students MODIFY name VARCHAR2(100) NOT NULL;
✅ 기존 테이블에서 특정 컬럼을 NOT NULL로 변경할 수 있습니다.
기본적으로 이름이 없는 제약조건
NOT NULL 제약조건은 기본적으로 이름을 지정하지 않아도 적용됩니다.PRIMARY KEY, UNIQUE, FOREIGN KEY) 과는 다르게 NOT NULL은 암묵적으로 컬럼 속성의 일부로 처리됩니다.이름 지정 가능하지만 잘 사용하지 않는 이유
NOT NULL 제약조건에도 이름을 부여할 수 있지만, 일반적으로 잘 사용하지 않습니다.
ALTER TABLE students MODIFY name CONSTRAINT name_not_null NOT NULL;
✅ name 컬럼의 NOT NULL 제약조건에 name_not_null이라는 이름을 부여할 수 있습니다.
NOT NULL은 단순한 컬럼 속성으로 인식되므로, 굳이 별도의 이름을 지정할 필요가 없습니다.CHECK 제약조건처럼 특정 조건을 따지는 것이 아니라, 단순히 NULL 입력을 막는 역할만 합니다.✅ NOT NULL과 다른 제약조건을 함께 사용하는 예제
CREATE TABLE courses (
course_id NUMBER PRIMARY KEY,
course_name VARCHAR2(200) CONSTRAINT course_name_not_null NOT NULL,
duration NUMBER CHECK (duration > 0)
);