반응형

[참고 : http://www.sqler.com/bSQL2011/382152]


DB에서 꼭 나오는 '개체 무결성'에 대해서 알아보도록 하자.


그 중심에는 Primary Key(기본키) 그리고 유니크 제약조건이 있다.



개체무결성 : 기본키는 NULL or  중복값을 가질 수 없다.



즉, 1. 유니크 해야한다. 2.NULL을 허용할 수 없다.


개체무결성과 같다 !



현재까지 만든 테이블을 보면



1. 순차적으로 증가하는 회원번호(INT 4 bytes)

2. 회원 아이디(VARCHAR 10~15 bytes)

3. 주민등록번호(CHAR 형 13 bytes)


가 있다. But 2 혹은 3은 지워질수 있는 경우 (회원탈퇴)때문에 우선순위에서 밀려난다.

그래서 1.을 Primary key로 하고 
2와 3은 역시 Primary key가 될 수는 있지만 그러지 못한존재
즉, 대체할 수 있는 존재 ALternate Key(대체키)라고 정의한다.



테이블에 들어가서 기본키 설정을 해준다.

insert into member
values (10, 'aoa','최유정','NULL);

10에 1 혹은 NULL을 넣어보자.

설정한 키본키에는 NULL, 중복값은 들어가지 않는다. (오류발생)


그렇다면 어떻게해야할까???????

Unique 제약조건을 걸어보도록 하자.

ALTER TABLE member
ADD CONSTRAINT UNIQUE_MemberID UNIQUE(MemberID)
GO


// ALTER TABLE 테이블 명
// ADD CONSTRAINT 제약조건명칭 UNIQUE(컬럼명)이다.

이렇게 선언 후

insert into member
values  (12,NULL,'이하이',2018-01-01,NULL)
을 대입하면 성공할 것이다.

하지만
values  (13,NULL,'일하이',2018-01-01,NULL)
라고하면 실패할 것이다.



이것이 Primary Key와 Unique의 차이라고 한다.
(Unique일때 NULL이 한 개 들어갈 수 있다.)










반응형

+ Recent posts