Simple is IT, 누구나 보고 누구나 깨닫는 IT

DataBase_기본키(Primary Key), 외래키(Foreign Key) 지정 본문

Simple is IT/Database

DataBase_기본키(Primary Key), 외래키(Foreign Key) 지정

currenjin 2020. 5. 5. 22:40

PRIMARY KEY, 기본키

CREATE를 이용해 PRIMARY KEY 지정

CREATE TABLE [테이블 명]

(

속성이름 타입 PRIMARY KEY,

...

)

CREATE TABLE [테이블 명]

(

속성이름 타입,

...,

[CONSTRAINT 제약조건이름] PRIMARY KEY (속성 이름)

)

이미 있는 테이블에 PRIMARY KEY 지정

ALTER TABLE [테이블 명] ADD [속성이름 타입] PRIMARY KEY

ALTER TABLE [테이블 명] ADD [CONSTRAINT 제약조건이름] PRIMARY KEY (속성 이름)

ALTER TABLE [테이블 명] MODIFY COLUMN [속성이름 속성타입] PRIMARY KEY

ALTER TABLE [테이블 명] MODIFY COLUMN [CONSTRAINT 제약조건이름] PRIMARY KEY (속성 이름)

EX)

ALTER TABLE Subject MODIFY COLUMN SuNum INT PRIMARY KEY; // Subject 테이블에 SuNum 칼럼을 PK로 지정

ALTER TABLE Student MODIFY COLUMN StNum INT PRIMARY KEY; // Stdent 테이블에 StNum 칼럼을 PK로 지정

FOREIGN KEY, 외래키

CREATE를 이용해 FOREIGN KEY 지정

CREATE TABLE [테이블 명]

(

속성이름 타입,

...,

[CONSTRAINT 제약조건이름]

FOREIGN KEY (속성 이름)

REFERENCES [테이블 명] (속성 이름)

);

이미 있는 테이블에 FOREIGN KEY 지정

ALTER TABLE [테이블 명] ADD [CONSTRAINT 제약조건이름]

FOREIGN KEY (속성 이름) REFERENCES [테이블 명] (속성 이름);

// 뒤에 ON UPDATE CASCADE/RESTRICT를 붙이게 되면 해당 정의를 갖는다.

EX)

ALTER TABLE Class ADD CONTRAINTS Stduent_StNum FOREIGN KEY (C_StNum) REFERENCES Student (StNum);

// Foreign key의 이름을 Student_StNum으로 하며, Class 테이블의 C_StNum을 Student 테이블의 StNum 칼럼을 참조

ALTER TABLE Class ADD FOREIGN KEY (C_SuNum) REFERENCES Subject (SuNum);

// Foreign key의 이름을 Subject_SuNum으로 하며, Class 테이블의 C_SuNum을 Subject 테이블의 SuNum 칼럼을 참조

ALTER TABLE Class DROP FOREIGN KEY Student_StNum;

// Student_StNum 이라는 Foreign key를 삭제


Comments