반응형
[참고 : 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이 한 개 들어갈 수 있다.)
반응형