
- 기본키
- 테이블의 각 레코드를 식별
- 중복되지 않은 고유값을 포함
- NULL 값을 포함할 수 없음
(= primary key는 NOT NULL 설정해주는 경우가 다수)- 테이블 당 하나의 기본 키를 가짐
(= 동시에 여러 개의 칼럼을 기본키로 지정할 수도 있음)






- 외래키
- 한 테이블을 다른 테이블과 연결해주는 역할
단, 참조되는 테이블의 항목은 그 테이블의 기본키(혹은 단일값)

(예제 1) create table에서 foreign key 지정


# CONSTRAINT 확인 #




(예제 1) 
(예제 2) police_station과 crime_status 테이블 사이에 관계(Foriegn key)를 설정하기 (with AWS RDS)

- 분석 1 : police_station.name과 crime_status.police_station을 distinct 하여 count한 결과 동일한 개수임을 확인

- 분석 2 : 그러나 각 테이블마다 경찰서 이름을 표시하는 형식이 상이함

- 분석 3 : crime_status.police_station을 police_station.name과 같은 형식으로 변형 가능한지 검토
(3-1) 경찰서 명칭을 약식으로 표기한 crime_status 방식의 표기 앞뒤에 '서울'과 '경찰서'를 concat으로 묶어주기 / 동일한 형태가 되는지 확인
(3-2) group by로 묶어서 나란히 비교 
- 분석 4 : poice_station.name을 primary key로 설정

- 분석 5 : crime_status 테이블에 Foriegn key로 사용할 칼럼을 새로 추가

- 분석 6 : Foriegn key 생성
- 분석 7 : Foriegn key 값 update


- 분석 8 : Foriegn key 기준으로 두 테이블 JOIN하여 검색
[!! 중요 !!] 두 개의 테이블을 JOIN할 때 Foriegn key를 사용하는 것이 핵심
