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 |
댓글