본문 바로가기
DBMS/ORACLE

[ORACLE]오라클_제약조건( NOT NULL )

by 썸머워즈 2019. 2. 10.
반응형

NOT NULL

테이블을 만들 때 컬럼을 정의하는데, 만약 그때 NOT NULL 제약조건을 명시하게 되면 해당 컬럼에는 반드시 데이터를 입력해야만 한다.

이러한 제약조건 특성상 해당 컬럼에는 반드시, 필수적으로 값이 들어가야 한다면 NOT NULL을 명시해서 사용해주는 것이 안전하다.

 

예를 하나 들어보자면,

게시글을 만든다고 했을때 무조건 들어가야 하는 값과 굳이 들어갈 필요가 없는 값은 뭐가 있을까?

(* 예시는 예시일뿐 따라 하지 말자.)

CREATE TABLE board(
    title VARCHAR(10),
    content VARCHAR(1000),
    hashtag VARCHAR(100)
);

이런 식으로 테이블을 구성한다면,

보통 게시글의 경우 제목과 내용은 반드시 들어가는 경우가 많지만, 해시태그 같은 경우에는 굳이 들어갈 필요가 없다.

물론 테이블 구조를 설계하는 상황과 사람마다 다르겠지만 이건 꼭 넣어야만 하는 컬럼에 NOT NULL 제약조건을 설정한다.

 

NOT NULL 제약조건 추가

NOT NULL 제약조건을 선언하는 방식에는 두가지가 존재한다.

[컬럼명] [타입] NOT NULL
[컬럼명] [타입] CONSTRAINT [제약조건 명] NOT NULL

일반적으로 NOT NULL은 제약조건명을 굳이 명시하지 않고 그냥 타입 옆에 NOT NULL을 명시하는 것만으로 끝내는 경우가 많다.

 

그리고 추가적으로 나중에 제약조건을 추가하는 방법은 다음과 같다.

ALTER TABLE [테이블명] MODIFY [컬럼명] NOT NULL

이는 이전에 작성한 게시글을 통해 제약조건을 한번 다뤘었는데, 그 게시글에 정리를 해두었다. (본문 하단 링크 참고)

 

NOT NULL 제약조건 삭제

ALTER TABLE board DROP CONSTRAINT content_notnull;
ALTER TABLE board MODIFY title NULL;

이런식으로 NOT NULL 제약조건을 삭제해 주면 된다.

NULL값 허용이라는 것은 굳이 명시하지 않기 때문에 NOT NULL 제약조건을 제거할 때만 NULL이라고 명시해서 제거 해주는 역할을 한다.



https://mine-it-record.tistory.com/39

 

[ORACLE]오라클_ 제약조건(CONSTRAINT) 종류 및 조회/추가/삭제

제약조건(CONSTRAINT) 제약 조건이란 데이터의 무결성을 지키기 위해 제한된 조건을 의미한다. 쉽게 말해 테이블이나 속성에 부적절한 데이터가 들어오는 것을 사전에 차단하도록 정해 놓은 것이

mine-it-record.tistory.com

 

반응형


댓글

TOP