09/28

채언·2022년 9월 28일
0

SQL / 데이터 분석

목록 보기
1/16

Primary key & Foreign key 사용

1. Primary key

1) primary key 지정

  • 테이블의 각 레코드를 식별하는 키(컬럼)으로, 중복되지 않은 고유값을 포함한다. null값일수 없고, 테이블 당 하나의 기본키를 가진다.
  • 테이블을 만들면서 primary key (컬럼명) 으로 어떤 컬럼을 기본키로 할 지 만들 때 바로 지정할 수 있다. 기본키를 여러 개의 컬럼으로 할 수 도 있다. primary key (컬럼명1,컬럼명2..)
  • description 을 보면 key 자리에 pri 라고 되어있다.

2) primary key 삭제

  • 테이블 컬럼값을 변경할 때와 같이, alter table 테이블명 drop primary key 라고 하면, 기본키가 삭제된다. 여러개의 기본키일때도 마찬가지 방법으로 삭제한다.

3) 추후에 primary key 추가

  • alter table 테이블명 add primary key (컬럼명) 으로 추가한다. 기본키 없이 테이블을 만들었지만 나중에 기본키를 지정하고 싶을때 이렇게 지정할 수 있고, 여러개의 키를 정할때 역시 같은 방법이다.

2. foreign key

1) foreign key 지정

  • 한 테이블과 다른 테이블을 연결해주는 역할에 사용, 참조되는 테이블의 항목은 그 테이블의 기본키 또는 단일값이다. 즉, 다른 테이블의 기본키를 참조하기 위해 foreign key 가 사용된다.

  • constraint 부분은 작성해도 되고 생략해도 괜찮다. create table을 할때, 제약사항들을 체크하는 부분인데 pk(primary key),fk(foreign key) 작성시에 foreign key에 해당하는 명을 지정할 수 있는 부분이다. 굳이 지정하지 않으면 알아서 생성된다. key 에서 mul 으로 나타나는 부분이 foreign key 이다.

  • foriegn key에 constraint 제약을 따로 적지 않으면 , show create table 테이블명 명령어를 통해, 자동으로 생성된 constraint 명을 확인 할 수 있다.

2) foreign key 삭제

  • alter table 테이블명 drop foreign key fk_constraint; 으로 삭제할 수 있다. 테이블을 보면 key에 mul 은 여전히 있다. 확인 시에는, show create table 테이블명 으로 조회하여, constraint가 없는것을 확인해야한다.

3) 추후에 foreign key 추가

  • 테이블 생성 이후에 foreign key 를 추가할 때에는 pk와 같이 alter table orders add foreign key (pid) references person(pid); 추가하고 show create table 로 constraint까지 확인하면 생성된것을 볼 수 있다.
profile
화이팅!

0개의 댓글