본문 바로가기

MS-SQL

4. 테이블 제약조건 (기본키,외래키)

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