1. PRIMARY KEY
1) PRIMARY KEY(기본키)
- 테이블의 각 레코드를 식별
- 중복되지 않은 고유 값을 포함
- NULL 값을 포함할 수 없음
- 테이블 당 하나의 기본키를 가짐
2) PRIMARY KEY 생성 문법
CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
...
CONSTRANINT constraint_name
PRIMARY KEY (column1, column2, ...)
);
(1) 예제1_하나의 컬럼을 기본키로
CREATE TABLE person
(
pid int NOT NULL,
name varchar(16),
age int,
sex char,
PRIMARY KEY (pid)
);
(2) 예제2_여러 개의 컬럼을 기본키로
CREATE TABLE animal
(
name varchar(16) NOT NULL,
type varchar(16) NOT NULL,
age int,
PRIMARY KEY (name, type)
);
3) PRIMARY KEY 삭제 문법
- 하나의 컬럼이든 여러 개의 컬럼이 기본키로 설정된 경우이든 삭제 문법은 동일
ALTER TABLE tablename
DROP PRIMARY KEY;
4) PRIMARY KEY 생성 방법2_이미 지정된 테이블에 기본키 추가 설정할 경우
ALTER TABLE tablename
ADD PRIMARY KEY (column1, column2,...);
5) PRIMARY KEY 생성3_여러 개의 컬럼을 기본키로 지정하는 경우
ALTER TABLE animal
ADD CONSTRAINT PK_animal PRIMARY KEY (name, type);
2. FOREIGN KEY (외래키)
1) FOREIGN KEY
- 한 테이블을 다른 테이븕과 연결해주는 역할이며, 참조되는 테이블의 항목은 그 테이블의 기본키(혹은 단일 값)
2) FOREIGN KEY 생성문법
CREATE TABLE tablename
(
column1 datatype NOT NULL,
column2 datatype NOT NULL,
column3 datatype,
column4 datatype,
...
CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ...)
CONSTRAINT constraint_name PRIMARY KEY (column3, column4, ...) REFERENCES REF_tablename(REF_column)
);
3) FOREIGN KEY 생성 예제
(1) CREATE TABLE 에서 FOREIGN KEY를 지정하는 경우
CREATE TABLE orders
(
oid int not null,
order_no varchar(16),
pid int,
PRIMARY KEY (oid),
CONSTRAINT FK_person FOREIGN KEY (pid) REFERENCES person(pid)
);
(2) CREATE TABLE 에서 FOREIGN KEY를 지정하는 경우, CONSTRAINT 생략 가능
CREATE TABLE job
(
jid int not null,
name varchar(16),
pid int,
PRIMARY KEY (jid),
FOREIGN KEY (pid) REFERENCES person(pid)
);
3) CONSTRAINT 확인 문법
(1) 자동 생성된 CONSTRAINT를 확인하는 방법
SHOW CREATE TABLE tablename;
4) FOREIGN KEY 삭제 문법
ALTER TABLE tablename
DROP FOREIGN KEY FK_constraint;
5) FOREIGN KEY 생성 문법2
(1) TABLE이 생성된 이후에도 ALTER TABLE을 통해 FOREIGN KEY를 지정할 수 있다.
ALTER TABLE tablename
ADD FOREIGN KEY (column) REFERENCES REF_tablename(REF_column);