기본키(primary key)
pk
기본키 역시 기본적인 제약조건들은 테이블을 생성할 때 같이 정의한다.
테이블당 하나만 정의가 가능하다(두 개 이상의 pk는 조합키/복합키 라고 불린다. 묶어서 하나로 본다)
주키/기본키/식별자/pk등으로 불리고 있다.
pk는 not null + unique + index
자동 index가 생성되는데 이는 검색 키로서 검색 속도를 향상시킨다.
CREATE TABLE primary_test(
student_id number(10)PRIMARY KEY,
name varchar2(20)
);
SELECT * FROM PRIMARY_TEST
primary key 생성과정
CREATE TABLE daddy2(
idx number(10),
mID number(10) PRIMARY key
); 먼저 primary key를 만들어 주고
CREATE TABLE daughter2(
idx number(10)PRIMARY KEY,
mID number(10),
CONSTRAINTS fk_da FOREIGN key(mID)
REFERENCES daddy(mID) ON DELETE set null
); foreign key를 만들어 준다.
INSERT INTO daddy2 VALUES (1,10);
INSERT INTO daddy2 VALUES (2,15);
INSERT INTO daddy2 VALUES (3,19);
그 상태에서 이렇게 값을 집어 넣는다고 하자.
daddy2 테이블의 결과값이다.
INSERT INTO daughter2 values(500,10)
INSERT INTO daughter2 values(600,15)
INSERT INTO daughter2 values(90,19)
이것이 daughter의 데이터 삽입 과정
이 상태에서 DELETE FROM daddy2 WHERE idx = 1; 코드로 데이터 하나를 delete해보자.
그에 따라 null값을 취하는 것을 알 수 있다. 1->10->500으로 기억하자
삭제 옵션
on delete cascade
->참조되는 부모 테이블의 행에 대한 delete를 허용한다.
즉, 참조되는 부모 테이블의 값이 삭제되면 연쇄적으로 자식 테이블 값 역시 삭제된다.
->보통 많이 사용
on delete set null
->참조되는 부모 테이블의 행에 대한 delete를 허용한다.
즉, 부모 테이블 값이 삭제가 되면 해당 참조하는 자식 테이블의 값들은 null값으로 설정된다