
결측치(null) 데이터를 입력하지 못하게 막는 제약
create table emp_test2
( empno number(10),
ename varchar2(20) constraint emp_test2_ename_nn not null,
sal number(10) );
-- 에러발생: ename에 not null 제약 걸어뒀기 때문
insert into emp_test2(empno)
values(1234);
-- ORA-01400: NULL을 ("C##SCOTT"."EMP_TEST2"."ENAME") 안에 삽입할 수 없습니다
--> not null 제약은 테이블 레벨 문법으로 제약을 생성 x
-- 에러발생: 부적합한 식별자
create table emp_test3
( empno number(10),
ename varchar2(20),
sal number(10),
constraint emp_test3_ename_nn not null(ename) );
💡 not null 외에 다른 제약들은 전부 table level 로 제약 생성이 가능한데 not null 제약만 안됨
alter table 테이블명
modify 컬럼명 constraint 제약조건명 not null;
dept 테이블에 deptno에 not null을 걺
alter table dept
modify deptno constraint dept_deptno_nn not null;
alter table emp
modify sal constraint emp_sal_nn not null;
-- 에러발생
-- ORA-01407: NULL로 ("C##SCOTT"."EMP"."SAL")을 업데이트할 수 없습니다
update emp
set sal = null
where ename = 'KING';
테이블명: emp500
컬럼명: empno, ename, sal, deptno
create table emp500
(empno number(10) constraint emp500_empno_nn not null,
ename varchar2(20),
sal number(10),
deptno number(10) );
alter table emp21
modify telecom constraint emp21_telecom_nn not null;
alter table emp21
drop constraint emp21_telecom_nn;
alter table 테이블명
drop constraint 제약조건명;