PRIMARY KEY (기본키)
- 테이블의 각 레코드를 식별
- 중복되지 않은 고유값을 포함
- NULL 값 포함 X
- 테이블 당 하나의 기본키를 가짐
PRIMARY KEY 생성 문법 (CREATE한 TABLE에 설정)
CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
...
CONSTRAINT constraint_name
PRIMARY KEY (column1, column2, ...)
);

PRIMARY KEY 삭제 문법 (단일 및 복수 column 동일)
ALTER TABLE tablename drop PRIMARY KEY;

PRIMARY KEY 생성 문법 (이미 만들어진 TABLE에 추가)
[단일]
ALTER TABLE tablename ADD PRIMARY KEY (column1, column2, ...);
[여러 개]
ALTER TABLE tablename ADD (CONSTRAINT) PK_tablename PRIMARY KEY (column1, column2, ...);
- CONSTRAINT를 생략하는 경우 자동생성됨

FOREIGN KEY (외래키)
- 한 테이블을 다른 테이블과 연결해주는 역할
- 참죄되는 테이블의 항목은 그 테이블의 기본키(혹은 단일값)
- 여러 개의 값을 가질 수 있음
FOREIGN KEY 생성 문법 (CREATE한 TABLE에 설정)
CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
column3 datatype,
column4 datatype,
...
CONSTRAINT constraint_name
PRIMARY KEY (column1, column2, ...),
CONSTRAINT constrain_name
FOREIGN KEY (column3, column4, ...) REFERENCES REF_tablename(REF_column)
);

자동생성된 생략가능한 CONSTRAINT 확인하는 방법
SHOW CREATE TABLE tablename;
FOREIGN KEY 삭제 문법
ALTER TABLE tablename DROP FOREIGN KEY FK_constraint;

FOREIGN KEY 생성 문법 (이미 생성된 TABLE에 설정)
ALTER TABLE tablename ADD FOREIGN KEY (column) REFERENCES REF_tablename(REF_column);

예제





실습


