테이블의 각 레코드를 식별, 중복되지 않은 고유값을 포함, NULL 값을 포함할 수 없음 ,테이블 당 하나의 기본키를 가짐
create table person
(
pid int NOT NULL,
name varchar(16),
age int,
sex char,
primary key(pid)
);
# 2개도 가능
create table animal
(
name varchar(16) NOT NULL,
type varchar(16) NOT NULL,
age int,
primary key (name, type)
);
# 삭제하기 : 1개던 2개던 모두 삭제
alter table person drop primary key;
# 기존 테이블에 키 지정하기
ALTER TABLE person ADD PRIMARY KEY(pid);
ALTER TABLE animal ADD PRIMARY KEY(name, type);
한 테이블을 다른 테이블과 연결해주는 역할이며, 참조되는 테이블의 항목은 그 테이블의 기본키 (혹은 단일값)
# FOREIGN KEY 지정
CREATE TABLE orders
(
oid int not null,
order_no varchar(16),
pid int,
primary key(oid),
constraint FK_person FOREIGN KEY (pid) REFERENCES person(pid)
);
# FOREIGN KEY 미지정
CREATE TABLE job
(
jid int not null,
name varchar(16),
pid int,
PRIMARY KEY (jid),
FOREIGN KEY (pid) REFERENCES person(pid)
);
# 미지정한 key 이름 보기
SHOW CREATE TABLE job;
# FOREIGN KEY 삭제
ALTER TABLE orders
DROP FOREIGN KEY FK_person;
# FOREIGN KEY 등록
ALTER TABLE orders
ADD FOREIGN KEY (pid) REFERENCES person(pid);
이글은 제로베이스 데이터 취업스쿨의 강의자료 일부를 발췌하여 작성되었습니다.