티스토리 뷰

키본 키

후보키 중 설계자에 의해 선택된 키로써, 데이터가 중복되지 않아 행(row)를 식별할 수 있으며 NULL 값을 가지지않는다. 테이블은 오직 하나의 기본키를 가질 수 있지만 기본키가 반드시 하나의 컬럼으로 이루어져야하는 것은 아니다. 즉, CONSTRAINT로 지정하는 기본키는 하나만 존재하지만, 기본키를 이루는 컬럼은 복수개일 수 있다.

 

테이블 생성시 PK 제약조건 추가 -  단일 컬럼

CREATE TABLE EMP (
    EMP_NO NUMBER(4),
    EMP_NM VARCHAR2(10),
    DEPT_NO VARCHAR(2),
    CONSTRAINT PK_EMP PRIMARY KEY(EMP_NO)
);
CREATE TABLE EMP (
    EMP_NO NUMBER(4) PRIMARY KEY,
    EMP_NM VARCHAR2(10),
    DEPT_NO VARCHAR(2)
);

 

테이블 생성시 PK 제약조건 추가 - 복수 컬럼

CREATE TABLE EMP (
    EMP_NO NUMBER(4),
    EMP_NM VARCHAR2(10),
    DEPT_NO VARCHAR(2),
    CONSTRAINT PK_EMP PRIMARY KEY(EMP_NO, EMP_NM)
);

 

EMP_NO와 EMP_NM 두 개의 컬럼으로도 으로 기본키를 구성할 수 있다. 하지만 아래구문기본키를 두 개 생성한다는 의미이므로 기본키 약조건을 생성할 수 없다.

--실행되지 않는다
CREATE TABLE EMP (
    EMP_NO NUMBER(4) PRIMARY KEY,
    EMP_NM VARCHAR2(10) PRIMARY KEY,
    DEPT_NO VARCHAR(2)
);

 

ALTER TABLE로 PK 제약조건 추가

CREATE TABLE EMP (
    EMP_NO NUMBER(4),
    EMP_NM VARCHAR2(10),
    DEPT_NO VARCHAR(2)
);
ALTER TABLE [테이블명] ADD CONSTRAINT [PK_이름] PRIMARY KEY (컬럼명)
ALTER TABLE EMP ADD CONSTRAINT PK_EMP PRIMARY KEY (EMP_NO)

 

PK 제약조건 삭제

--PRIMARY KEY로 추가했을 때
ALTER TABLE EMP DROP PRIMARY KEY;
--PK명을 지정해주었을 때
ALTER TABLE [테이블] DROP CONSTRAINT [PK명]
ALTER TABLE EMP DROP CONSTRAINT PK_EMP;

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함