기본키, 고유키, 외래키, NULL 허용

EunBi Na·2022년 5월 9일
0

링크텍스트

종류

Primary Key : 기본키. 중복을 허용하지 않는다. NULL을 허용하지 않는다. 예시) ID, 주민번호
Unique Key : 고유키. 중복을 허용하지 않는다. NULL을 허용한다. 예시) e-mail
Foreign Key : 외래키. JOIN(테이블과 테이블의 연결)이 목적. NULL을 허용한다.
외래키로 지정된 컬럼은 연결된 테이블에서 PK나 UK로 설정되어 있어야 한다.
CHECK : 범위를 지정. 지정된 값 외에 사용할 수 없다. 중복을 허용한다. NULL을 허용한다.
NOT NULL : 중복을 허용한다. NULL을 허용하지 않는다.

CASCADE CONSTRAINTS : 무결성 제약조건까지 모두 삭제

형식

DROP TABLE 테이블명
CASCADE CONSTRAINTS;

Primary Key(기본키) : 중복금지 + NOT NULL

형식

  1. CREATE TABLE 테이블명(
    컬럼명 데이터형식(크기) PRIMARY KEY
    );
  1. CREATE TABLE 테이블명(
    컬럼명 데이터형식(크기) CONSTRAINT Key ID PRIMARY KEY
    );
  1. CREATE TABLE 테이블명(
    컬럼명1 데이터형식(크기),
    컬럼명2 데이터형식(크기)
    CONSTRAINT Key ID PRIMARY KEY(컬럼명1, 컬럼명2)
    );

Unique(고유키) : 중복된 값은 입력 불가. NULL은 허용

형식

  1. CREATE TABLE 테이블명(
    컬럼명 데이터형식(크기) UNIQUE
    );
  1. CREATE TABLE 테이블명(
    컬럼명 데이터 형식(크기) CONSTRAINT Key ID UNIQUE
    );

참조

기본키와 마찬가지로 1 형식으로 만들 수 있지만, Key ID 지정하지 않았을 경우 지정한 UNIQUE KEY만 삭제를 하지 못하게 된다.

지정한 UNIQUE 삭제 시 Key ID 필요!

FOREIGN KEY(외래키) : 대상 테이블에서 pk, uk로 설정되어 있어야 한다. NULL 값을 허용. 중복 허용

형식

CREATE TABLE 테이블명(
DEPARTMENT_ID VARCHAR2(10),
CONSTRAINT Key ID FOREIGN KEY(컬럼명)
REFERENCES 대상테이블명(대상테이블의 기본키(OR 고유키) 컬럼명)
);

참조

외래키 테이블 생성 전 대상테이블이 생성되어 있어야 한다.
외래키에 데이터를 넣기 전 대상테이블의 기본키에 데이터가 들어가 있어야 한다.
외래키의 크기는 대상테이블의 기본키(OR 고유키)보다 크기가 같거나 커야 한다.
대상테이블의 기본키와 외래키의 컬럼명을 달라도 된다.
외래키 데이터는 아무 값이나 넣으면 안 된다.(대상 테이블의 기본키의 데이터와 같아야 한다.)

profile
This is a velog that freely records the process I learn.

0개의 댓글