MS-SQL 4번째 포스팅입니다!
사실 제약조건을 말하기 전에 앞에 설명해야될 것들이 많지만 다 건너뛰고 이 부분을 포스팅하기로 했습니다!!
제약 조건 : 데이터의 무결성을 지키기 위한 제한된 조건을 의미(특정 데이터를 입력할 때 무조건적으로 입력되는 것이 아니라 어떤 조건을 만족했을 때만 입력될 수 있게 해주는 역할)
제약조건 종류(6가지)
- PRIMARY KEY 제약조건
- FOREIGN KEY 제약조건
- UNIQUE 제약조건
- CHECK 제약조건
- DEFAULT 정의
- NULL 값 허용
1. PRIMARY KEY 제약조건
- 많은 행의 데이터를 구분할 수 있는 식별자를 '기본 키'라고 부른다.(EX. 회원 테이블의 회원 아이디, 학생 테이블의 학번)
- 기본 키에 입력되는 값은 중복 X, NULL X
- 자동으로 클러스터형 인덱스가 생성
- 테이블에는 기본 키를 하나 이상의 열에 설정할 수 있다.
- 두개의 열을 합쳐서 기본키로 설정가능(제품코드+제품일련번호 합친 것을 기본키로 설정 가능)
*기본키의 열이름을 지정하려면 "CONSTRAINT '사용하고 싶은 이름' PRIMARY KEY "를 넣어주면 된다.
만약에 CREATE 구문 제일 끝에 넣고 싶을 경우에는"CONSTRAINT '사용하고 싶은 이름' PRIMARY KEY (열이름)"
*이미 만들어진 테이블에 기본키를 추가하기 위한 코드
2. FOREIGN KEY 제약조건
- 두 테이블 사이의 관계를 선언함으로써, 데이터의 무결성을 보장해주는 역할
- 외래키를 정의하는 테이블 = 외래키 테이블(자식) / 외래키의 참고가 되는 테이블 =기준 테이블(부모)
- 기준 테이블(부모)는 반드시 PRIMARY KEY이거나, UNIQUE 제약조건이 설정되어 있어야 한다.
*외래키 설정 코드
userTbl=기준 테이블 / buyTbl= 외래키 테이블
*외래키의 열이름을 지정하려면 "CONSTRAINT '사용하고 싶은 이름' FOREIGN KEY REFERENCES userTbl(열이름) "을 넣어주면 된다. 만약에 CREATE 구문 제일 끝에 넣고 싶을 경우에는"CONSTRAINT '사용하고 싶은 이름' FOREIGN KEY REFERENCES(buyTbl의열이름) userTbl(열이름) " 기본키와 외래키의 이름을 확인하고 싶은 경우에는 "EXEC sp_help buyTbl"로 확인할 수 있다. |
- 외래키 옵션 중에 "ON DELETE CASCADE" 또는 "ON UPDATE CASCADE" 가 있는데 기준 테이블의 데이터가 변경되었을때
외래키 테이블에도 자동으로 적용될 수 있게 해주는 역할을 함
EX) 기본 테이블에 KBS라는 ID가 KIM으로 변경되었을때 ON UPDATE CASCADE가 있으면 외래키 테이블에도 KIM으로 자동 변경
오늘의 포스팅은 여기서 마무리하도록하겠습니다!!! 다들 고생하셨습니다^^
'MS-SQL' 카테고리의 다른 글
3. MS-SQL DCL 명령어 정리 (0) | 2021.10.07 |
---|---|
2. MS-SQL DDL 명령어 정리 (0) | 2021.10.07 |
1. MS-SQL DML 명령어 정리 (0) | 2021.10.06 |