중복x, NULL값x
테이블당 하나의 PK만 설정 가능
PK설정 방법
-- PK 넣는 방법 1
CREATE TABLE 테이블명 (
COLUMN_이름 자료형 PRIMARY KEY,
);
-- PK 넣는 방법 2
CREATE TABLE 테이블명 (
A CHAR(2),
PRIMARY KEY (A)
);
PK변경
ALTER TABLE 테이블명 DROP PRIMARY KEY; -- PK삭제
ALTER TABLE 테이블명 ADD PRIMARY KEY (COLUMN_이름); -- PK추가
다중PK : PK가 여러개인 것이 아니고, 여러 COLUMN의 조합이 PK로 동작하는 것
PRIMARY KEY (COL_A, COL_B, ...)
UNIQUE (COL_A, COL_B, ...)
-- UNIQUE 넣는 방법 1
CREATE TABLE 테이블명 (
COLUMN_이름 자료형 UNIQUE,
);
-- UNIQUE 넣는 방법 2
CREATE TABLE 테이블명 (
A CHAR(2),
UNIQUE (A)
);
NO ACTION, RESTRICT
: 자식이 있으면 부모를 못지움(DELETE, UPDATE)CASCADE
: 부모를 지우면 자식도 지워짐(DELETE, UPDATE)SET NULL
: 자식 테이블의 FK를 NULL로 설정SET DEFAULT
: 자식 테이블의 FK를 DEFAULT값으로 설정-- FK생성
ALTER TABLE 자식테이블명
ADD CONSTRAINT 제약조건
FOREIGN KEY (FK로_설정할_COLUMN명)
REFERENCES 부모테이블명 (부모테이블_PK_COLUMN명)
-- ON DELETE _삭제시제약
-- ON UPDATE _수정시제약
-- FK삭제
ALTER TABLE 자식테이블명 DROP FOREIGN KEY FK로_설정된_COLUMN명
-- 인덱스 생성
ADD INDEX 인덱스명(COLUMN_이름);
-- 다중 컬럼 인덱스
ADD INDEX 인덱스명 (COL1, COL2, ...);
-- 인덱스 조회
SHOW INDEX FROM 테이블명;
-- 인덱스 삭제
DROP INDEX 인덱스명;
ADD FULLTEXT INDEX 인덱스명 (COLUMN명);