CREATE TABLE people (
first_name CHAR(2) PRIMARY KEY, # 기본키 설정 하는 방법
last_name CHAR(3),
nickname VARCHAR(10)
);
CREATE TABLE people (
first_name CHAR(2),
last_name CHAR(3),
nickname VARCHAR(10),
PRIMARY KEY (first_name) # 기본키 설정 하는 방법
);
두가지 방법중 한가지 선택하여 적용 가능
ALTER TABLE people DROP PRIMARY KEY;
ALTER TABLE people ADD PRIMARY KEY (last_name);
여러개의 컬럼을 기본키로 지정하는 것
두개 이상의 컬럼의 조합이 겹치지 않으면 data 입력이 가능하다.
CREATE TABLE people (
first_name CHAR(2),
last_name CHAR(3),
nickname VARCHAR(10),
PRIMARY KEY (first_name, last_name)
);
중복 값이 제한되지만, NULL 값을 넣을 수 있다.
CREATE TABLE people (
person_id INT AUTO_INCREMENT PRIMARY KEY,
first_name CHAR(2) UNIQUE, # 고유키 생성
last_name CHAR(3)
);
-- 고유키 넣는 방법 2
CREATE TABLE people (
person_id INT AUTO_INCREMENT PRIMARY KEY,
first_name CHAR(2),
last_name CHAR(3),
UNIQUE (first_name) # 고유키 생성
);
PRIMARY KEY와 마찬가지로 다중 고유키를 적용할 수 있다.
두개 이상의 테이블의 JOIN을 위해 사용함
ALTER TABLE _자식테이블명 # 자식 테이블이 먼저 설정된다
ADD CONSTRAINT _제약명
FOREIGN KEY ( _자식테이블외래키 )
REFERENCES 부모테이블명 ( _부모테이블기본키 ) # 부모 테이블이 나중에 설정
# ON DELETE _삭제시제약
# ON UPDATE _수정시제약
ALTER TABLE _자식테이블명 DROP FOREIGN KEY _자식테이블외래키
제약 | 설명 | 비고 |
---|---|---|
NO ACTION, RESTRICT | 자식 테이블에 해당 외래키가 있을 때 수정/삭제되지 않음 | |
CASCADE | 자식 테이블의 해당 행도 수정/삭제 | |
SET NULL | 자식 테이블의 외래키를 NULL로 지정 | 자식 외래키가 NOT NULL일 시 설정 불가 |
SET DEFAULT | 자식 테이블의 외래키를 기본값으로 사용 | InnoDB 엔진에서 사용 불가 |