1개의 column을 기본키로 설정할 경우
Create Table 시 Primary Key (데이터명) 으로 지정해주면 됩니다.

여러 개의 column을 기본키로 설정할 경우

여러 개를 설정한다고 해서 기본키가 여러 개인 것은 XXX !
여러 컬럼으로 하나의 기본키를 이루는 것입니다.
1개의 column이 기본키로 설정된 경우

여러 개의 column이 기본키로 설정된 경우

1개의 column을 기본키로 추가할 경우

여러 개의 column을 기본키로 추가할 경우

Create table 시 지정할 수 있으며, constraint는 생략 가능합니다.
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)
);
//person 테이블의 pid를 참조하는 외래키로 pid를 지정함
//CONSTRAINT 생략 시...
//FOREIGN KEY (pid) REFERENCES person(pid) 로 작성 가능
desc 사용 시, 외래키는 하단과 같이 표시됩니다.

Foreign Key(외래키)는 Primary Key와 다르게 여러 개 존재 가능합니다.
따라서, CONSTRAINT를 생략하면 외래키의 이름이 자동 생성됩니다.
이때, 키의 이름을 알아야 DROP 등을 할 수 있기 때문에, 이름을 확인하는 방법도 알 필요가 있습니다.
SHOW CREATE TABLE 테이블명;
아래 사진 빨간 박스처럼 자동 생성된 이름을 확인할 수 있습니다.

ALTER TABLE 테이블명
DROP FOREIGN KEY Constraint명;
실제로 코드를 실행하고 desc를 해보면, MUL 속성이 아직 남아있는 것을 확인할 수 있습니다.
다만 이는 외래키의 기능을 하는 것은 아닙니다.
show create table을 통해 자세히 확인해보면, 원래는 "FOREIGN KEY"라고 표시되던 게 "KEY"라고만 변경되어 있습니다.
즉, 외래키가 잘 삭제되어 레퍼런스 관계가 깨진 상태인 것을 알 수 있습니다.

ALTER TABLE 테이블명
ADD FOREIGN KEY (컬럼명) REFERENCES 참조할테이블명(참조할컬럼명);

🔵 흥미로웠던 점 :
외래키를 통해 여러 테이블을 관계 짓는 것이 흥미로웠다. 예를 들어, Order 테이블에서 Customer 테이블의 손님번호(id)를 외래키로 참조하면, Order 테이블의 각 주문은 특정 고객과 연결될 것이다. 이런 식으로 키들을 잘 활용하면 테이블 간 관계를 설정하는 데에 큰 도움이 될 듯 하다.
🔵 다음 학습 계획 :
집계 함수에 대해 학습할 예정입니다.