MySQL 정리!
1. 기본키
- Primary Key
- 중복되지 않는 고유값만 허용
- NULL 값 허용하지 않음
💌 기본키 넣는 방법 1.
CREATE TABLE people(
first_name char(2) PRIMARY KEY,
last_name char(3),
nickname varchar (10)
)
💌 기본키 넣는 방법 2.
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(last_name);
💌 다중 기본키
CREATE TABLE people(
first_name char(2),
last_name char(3),
nickname varchar(10),
PRIMARY KEY(first_name, last_name)
);
: first name 과 last name 조합이 겹치지 않게!!
first name 이 같더라도 last name 이 다른 행이 존재 가능!
last name 이 같더라도 first name이 다른 행이 존재 가능!
2. 고유키
- 중복 제한, NULL 값 가능
💌 고유키 넣는 방법
1.
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)
);
3. 다중 고유키 가능
CREATE TABLE people(
person_id int AUTO_INCREMENT PRIMARY KEY,
first_name char(2),
last_name char(3),
UNIQUE(first_name, last_name)
);
3. 외래키
- 외래키 추가하기
ALTHER TABLE 자식테이블명
ADD CONSTRAINT 제약명
FOREIGN KEY(자식테이블 외래키)
REFERENCES 부모테이블명(부모테이블 기본 키)
* ON DELETE 삭제시 제약
* ON UPDATE 수정시 제약
- 외래키 삭제하기
ALTER TABLE 자식테이블명 DROP FOREIGN KEY 자식테이블외래키
* 외래키는 NULL 값이거나 부모테이블의 기본 키값과 같아야함!!
- 외래키 제약
* NO ACTION, RESTRICT : 자식 테이블에 해당 외래키가 있을 때 수정/ 삭제되지 않음
* CASCADE : 자식 테이블의 해당 행도 수정 / 삭제
* SET NULL : 자식 테이블의 외래키를 NULL 로... (자식 외래키가 NOT NULL 일 때 설정 불가)
* SET DEFAULT : 자식 테이블의 외래키를 기본값으로...(InnoDB엔진에서 사용 불가)
댓글
댓글 쓰기