SQL 기초 (12) - PRIMARY KEY, FOREIGN KEY

이휘연·2024년 2월 12일

SQL

목록 보기
12/12

PRIMARY KEY (기본 키)

  1. 테이블의 각 레코드를 식별합니다.
  2. 중복되지 않은 고유값을 포함합니다.
  3. NULL 값을 포함할 수 없습니다.
  4. 테이블 당 하나의 기본키를 가집니다.

PRIMARY KEY는 컬럼 하나로 지정할 수 있고,
여러개의 컬럼을 하나의 기본키로 지정할 수도 있습니다.

PRIMARY KEY 생성

테이블을 생성할 때 PRIMARY KEY를 지정할 수 있습니다.
그리고 PRIMARY KEY를 입력해 지정할 컬럼을 명시해줍니다.

또한, CONSTRAINT 를 이용해서 사용자가 원하는 이름을 생성할 수 있습니다.
CONSTRAINT는 만들어도 되고 생략도 가능합니다.

예제 1

'Person' 이라는 테이블을 생성하고 'pid' 컬럼에 PRIMARY KEY를 생성하세요.

예제 2

'animal' 이라는 테이블을 생성하고 'name'과 'type' 컬럼에 PRIMARY KEY를 생성하세요.
primary KEY 지정은 한 곳만 아니라 여러 컬럼에도 지정할 수 있습니다.

PRIMARY KEY 삭제

ALTER와 DROP을 사용해 삭제를 합니다.
PRIMARY KEY는 테이블 당 하나만 있기 때문에 특정 컬럼을 지정할 필요가 없습니다.

예제

'animal' 이라는 테이블에서 PRIMARY KEY를 삭제하세요.

ADD PRIMARY KEY

이미 생성된 테이블에 ADD PRIMARY KEY를 입력하여
키를 생성할 수 있습니다.

예제

'Person' 이라는 테이블이 있습니다. 'pid' 컬럼에 PRIMARY KEY를 생성하세요.

💡주의💡
새로 PRIMARY KEY를 생성하는데도 한 컬럼 혹은 여러 컬럼에도 지정할 수 있습니다.
중요한건, 여러 컬럼에 키를 생성했다고 해서 키가 여러개는 아닙니다.
PRIMARY KEY는 오직 한 테이블당 하나입니다.

FOREIGN KEY (외래 키)

  1. 한 테이블을 다른 테이블과 연결해주는 역할입니다.
  2. 참조되는 테이블의 항목은 그 테이블의 기본키 (혹은 단일값)입니다.

FOREIGN KEY 생성

CONSTRAINT 입력, 그 다음에 FOREIGN KEY 를 입력하고
현재 테이블에서 FOREIGN key를 등록할 컬럼을 입력합니다.

그리고 다른 테이블과 연결해야 하기 때문에 REFERENCES를 입력하고
레퍼런스가 되는 테이블과 컬럼을 입력합니다

💡주의💡
PRIMARY KEY와 달리 FOREIGN key는 작업을 하면서
참조하는 테이블이 여러개면 참조한 만큼의 키가 생성이 됩니다.

CREATE TABLE 에서 FOREIGN KEY를 지정하는 경우, CONSTRAINT 를 생략할 수 있지만.
만약 생략하고 FOREIGN KEY를 지정하는 경우에는 CONSTRAINT가 자동으로 생성됩니다.

예제 1

'order' 라는 테이블을 생성하고 'pid' 컬럼을
person 테이블의 'pid'컬럼과 연결된 FOREIGN KEY로 등록하세요.

예제 2

CONSTRAINT를 생략하고 'job' 테이블을 생성한 다음,
'pid' 컬럼을 person 테이블의 'pid'컬럼과 연결된 FOREIGN KEY로 등록하세요.

CONSTRAINT 확인

SHOW CREATE TABLE tablename;

CONSTRAINT 생략하고 자동으로 생성된 CONSTRAINT 를 확인할 수 있습니다.

FOREIGN KEY 삭제


ALTER와 DROP을 사용해 삭제를 합니다.
PRIMARY KEY와 달리 키가 여러개 있을 수 있으니 CONSTRAINT를 입력을 해줘야 삭제가 가능합니다.

profile
안녕하세요

0개의 댓글