본문 바로가기
MySQL

Primary Key,(기본 키) Foreign Key(참조 키, 외래 키)

by KDW999 2023. 1. 24.

Primary Key [ 기본 키 ]

ㅡ 필드에 PRIMARY KEY를 적어주면 해당 필드는 NOT NULL과 UNIQUE 특성을 가지기에 NULL값을 가질 수 없고 유일한 값을 가지게 된다.

ㅡ UNIQUE는 한 테이블 여러 필드에 설정할 수 있지만 PRIMARY KEY는 테이블 당 오직 하나의 필드에만 설정 할 수 있다.

 

CREATE TABLE 테이블이름(
    필드이름 필드타입 PRIMARY KEY
);

CREATE TABLE Board(
 boardNumber PRIMARY KEY,
 boardTitle VARCHAR(200) NOT NULL
);

 

Foreign Key [ 참조 키, 외래 키 ]

ㅡ 필드에 FOREIGN KEY를 설정해주면 해당 필드는 한 테이블과 다른 테이블을 연결해주는 역할을 하게 된다.

ㅡ FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만든다.

ㅡ FOREIGN KEY 제약 조건을 설정할 때 참조되는 테이블의 필드는 UNIQUE나 PRIMARY KEY가 설정되어 있어야 한다.

 

CREATE TABLE Room( # 참조되는 테이블
  roomNumber INT PRIMARY KEY,
  roomSize INT NOT NULL,
  roomName VARCHAR(20) NOT NULL
  );

CREATE TABLE Reservation2( # 참조하는 테이블
  id INT AUTO_INCREMENT PRIMARY KEY,
  roomNumber INT,
  
  CONSTRAINT Reservation_RoomNumber_FK FOREIGN KEY(roomNumber) # 참조하는 테이블의 필드
  REFERENCES Room(roomNumber) # 참조되는 테이블의 필드
);

 Reservation2 테이블에서 Room 테이블에 있는 필드들에 접근할 수 있다.

 

ON UPDATE

ON DELETE

참조되는 테이블에서 데이터 삭제, 수정 시 참조하는 테이블에서도 삭제, 수정된 데이터가 적용되게 할 때 사용하는 구문

 

ㅡ CASCADE : 참조되는 테이블의 데이터가 삭제, 수정되면 참조하는 테이블의 데이터도 삭제, 수정

ㅡ SET NULL : 참조되는 테이블의 데이터가 삭제, 수정되면 참조하는 테이블의 데이터는 NULL로 변경

ㅡ NO ACTION : 참조되는 테이블의 데이터가 삭제, 수정해도 참조하는 테이블의 데이터는 변경되지 않는다.

'MySQL' 카테고리의 다른 글

View  (0) 2023.01.25
JOIN  (0) 2023.01.25
MySQL 연산  (0) 2023.01.20
MySQL 데이터 타입  (1) 2023.01.20
MySQL 구문 [삽입, 수정, 선택, 중복 제거, 정렬, 별칭]  (0) 2023.01.19

댓글