2021-02-19
- 정의
기본키는 테이블을 구성하는 여러 후보 키들 중에서 선택되어 테이블의 각 튜플(행 / 데이터)을 식별하는 역할을 하게 된다. 여기서 기본키는 UNIQUE이기 때문에 유일성이라는 특징을 가지고 있으며, 또한 NOT NULL의 속성도 가지고 있어 NULL의 값도 허용하지 않는다. 오늘은 이러한 기본키를 선언하는 방법을 알아보자.
- 방법 1 CREATE
첫번째 방법은 테이블의 선언과 동시에 기본키를 부여 (설정) 하는 방법이다.
-- 컬럼선언과 함께 기본키 설정
CREATE TABLE INFO (
INFONO NUMBER PRIMARY KEY,
NAME VARCHAR2(10),
AGE NUMBER
);
-------------------------------
DROP TABLE INFO;
-- 다시 생성해보기 위한 테이블 삭제문
---------------------------------
-- 컬럼을 모두 선언한 후 마지막에
-- 기본키를 부여하는 방법
CREATE TABLE INFO (
INFONO NUMBER,
NAME VARCHAR2(10),
AGE NUMBER,
PRIMARY KEY(INFONO)
);
위와 같이 두 가지 방법으로 테이블 생성과 동시에 기본키를 선언할 수 있다. 코드 스타일에 따라 원하는 방법을 사용하면 된다. ( 개인적으로 가독성 면에서는 아무래도 두 번째 방법이 조금 더 눈에 들어오는 것 같다. )
- 방법 2 ALTER
테이블과 동시에 기본키를 선언하면 좋겠지만, 기본키로 정할 컬럼(속성)을 정하지 못했거나, 테이블 생성 후 기본키 컬럼(속성)이 새롭게 추가되면, 상황이 난감해질 수 도 있다.
이러한 경우를 대비해서 ALTER 구문을 사용해 테이블 생성 이후에도 기본키를 부여할 수 있다. 코드는 아래와 같다.
-- 기본키를 지정하지 않은 테이블
CREATE TABLE INFO (
INFONO NUMBER,
NAME VARCHAR2(10),
AGE NUMBER
);
-- ALTER를 이용한 기존테이블
-- 기본키 설정
ALTER TABLE INFO ADD PRIMARY KEY (INFINO);
방법 1 에서 사용한 테이블과 동일하며, 이번에는 기본키를 선언하지 않고 테이블을 만들어 주었다. 때문에 기본키를 설정해 주어야 하는데, 이때 바로 ALTER 구문을 사용해주면 된다.
코드는 ALTER TABLE INFO ADD PRIMARY KEY (INFINO); 이러하다. 코드를 풀이하면 이렇다.
ALTER TABLE INFO ADD PRIMARY KEY (INFINO);
바꿔라 / 테이블 중 'INFO' / 추가한다 / 기본키를 ( INFINO ) 에
-> " 테이블 중 INFO에 기본키를 (INFONO)로 추가하도록 바꿔라. " 정도로 해석하면 된다.
다음에는 이러한 기본키를 수정 삭제 하는 방법을 알아보도록 하자.
메인 이미지 출처: Photo by Esther Tuttle on Unsplash