제약조건 (CONSTRAINTS)

tpids·2024년 6월 12일

DB

목록 보기
19/25

제약조건 (CONSTRAINTS)

  • 테이블에 입력 가능한 데이터를 조건으로 제약하는 것

NOT NULL

  • 컬럼이 비어 있거나 NULL 값이 들어오지 않도록 하는 조건
  • 정보가 꼭 필요한 컬럼에 사용
  • [문법1] ALTER TABLE 테이블명 MODIFY 컬럼명 + 자료형 + NOT NULL ;
  • [문법2] CREATE TABLE 테이블명 ( 컬럼명 + 자료형 + NOT NULL )

UNIQUE KEY(UK) : UNIQUE

  • 하나의 컬럼에 중복되는 튜플이 존재할 수 없도록 하는 조건
  • [문법1] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 UNIQUE ( 컬럼 ) ;
  • [문법2] CREATE TABLE 테이블명 ( 컬럼명 + 자료형 + UNIQUE )

CHECK

  • 특정 컬럼에 데이터를 입력할 때 조건에 해당하는 데이터만 입력할 수 있도록 제약
  • CHECK 조건에 만족하는 정보만 튜플에 입력 가능
  • [문법1] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 CHECK ( 조건 OR 범위 ) ;
  • [문법2] CONSTRAINT 제약조건이름 CHECK ( 조건 OR 범위 )

PRIMARY KEY (PK) : NOT NULL + UNIQUE

  • 식별자 규칙을 물리적 모데링 한 것.
  • 기본 키, 주 키, 프라이머리 키 라고도 부른다.
  • 보통 튜플이 지닌 유일하고 고유한 특징인 컬럼을 PK로 지정
  • NULL값 일력 불가, 중복 불가의 특징
  • 특정 컬럼을 식별자로 만들면 자동으로 NOT NULL + UNIQUE 성질을 가짐
  • [문법1] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY ( 컬럼 ) ;
  • [문법2] CREATE TABLE 테이블명 ( 컬럼명 + 자료형 + PRIMARY KEY )

FOREIGN KEY (FK)

  • 다른 테이블에 있는 기본 키(PRIMARY KEY)를 참조하는 컬럼을 FK로 지정
  • FOREIGN KEY는 외래 키라고 부르고 데이터 무결성을 지원
  • 참조하는 테이블의 기본 키 값과 반드시 동일한 값으로 구성되어야 함
  • [문법1] ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY ( 참조받을 컬럼 ) REFERENCES 참조할 테이블(참조할 컬럼) ;
  • [문법2] CREATE TABLE 테이블명 ( 생성할 컬럼 정보 , CONSTRAINT 제약조건명 FOREIGN KEY (참조받을 컬럼) REFERENCES 참조할 테이블(참조할 컬럼) ) ;
--실습문제1
CREATE TABLE 회원정보 (
회원ID VARCHAR2(10) NOT NULL,
이름 VARCHAR2(20) NOT NULL,
가입일자 DATE,
나이 NUMBER DEFAULT 0
);

CREATE TABLE 회원연락처 (
회원ID VARCHAR2(10) NOT NULL,
구분코드 VARCHAR2(10) NOT NULL,
연락처 VARCHAR2(15) NOT NULL
);

CREATE TABLE 회원주소 (
회원ID VARCHAR2(10) NOT NULL,
도로명주소 VARCHAR2(200) NOT NULL
);

--실습문제2
--1번에서 만든 3개의 테이블에 각각 주어진 조건에 맞춰 PK(PRIMARY KEY) 제약조건을 추가 
ALTER TABLE 회원정보 ADD CONSTRAINT PK_회원정보 PRIMARY KEY (회원ID);
ALTER TABLE 회원연락처 ADD CONSTRAINT PK_회원연락처 PRIMARY KEY (회원ID, 구분코드);
ALTER TABLE 회원주소 ADD CONSTRAINT PK_회원주소 PRIMARY KEY (회원ID);

--실습문제3
--1번에서 만든 3개의 테이블에 대해 테이블 간의 관계 연결을 위해 FK (FOREIGN KEY) 제약조건을 설정
ALTER TABLE 회원연락처 ADD CONSTRAINT FK_회원연락처 FOREIGN KEY (회원ID) REFERENCES 회원정보(회원ID);
ALTER TABLE 회원주소 ADD CONSTRAINT FK_회원주소 FOREIGN KEY (회원ID) REFERENCES 회원정보(회원ID);
profile
개발자 공부중

0개의 댓글