728x90
반응형
기사시험을 보면서 햇갈리는 부분이 생겨 다시금 정리해본다.
CREATE TABLE table_1 (
column1 char(1)
);
CREATE TABLE table_2(
column1 char(1)
FOREIGN KEY (column1) REFERENCES table_1(column1)
);
컬럼명을 선언해 준 뒤 FOREIGN KEY 키워드를 통해 새로운 구문을 선언해주는 방식이 있다.
CREATE TABLE table_2(
column1 char(1) REFERENCES table_1(column1)
);
위와 같이 컬럼을 선언함과 동시에 한번에 설정이 가능하다.
만약 참조하는 테이블의 컬럼명과 일치한다면 다음과 같이도 선언할 수 있다.
CREATE TABLE table_2(
column1 char(1) FOREIGN KEY REFERENCES table_1
);
만약 제약조건에 대한 이름을 지정하고 싶다면 CONSTRAINT 키워드를 선언하여 다음과같이 선언한다.
CREATE TABLE ex_table2(
column2 char(1)
CONSTRAINT fx_column1 FOREIGN KEY(column2) REFERENCES ex_table1(column1)
);
이로써 ex_table2 테이블의 column1 컬럼은 ex_table 테이블에 있는 column1 컬럼을 참조하는 외래키로 지정하며
지정된 외래키 제약조건 명칭은 fk_column1로 지정한다.
CREATE TABLE table_1(
column1 char(1)
);
-- 컬럼 선언과 동시에 외래키 제약조건 설정
CREATE TABLE table_2(
column1 char(1) REFERENCES table_1(column1)
);
-- 참조하려는 테이블의 컬럼명과 일치할때
-- 컬럼 선언과 동시에 외래키 제약조건 설정
CREATE TABLE table_3(
column2 char(1) FOREIGN KEY REFERENCES table_1
);
-- 컬럼 선언과 동시에 사용자정의 제약조건명 지정과 함께 외래키 제약조건 설정
CREATE TABLE table_2(
column1 char(1) CONSOTRAINT fk_column REFERENCES table_1(column1)
);
-- 참조하려는 테이블의 컬럼명과 일치할때
-- 컬럼 선언과 동시에 사용자정의 제약조건명 지정과 함께 외래키 제약조건 설정
CREATE TABLE table_2(
column1 char(1) CONSOTRAINT fk_column FOREIGN KEY REFERENCES table_1
);
-- 컬럼명 선언 이후 FOREIGN KEY 구문 선언을 통해 외래키 제약조건 설정
CREATE TABLE table_4(
column1 char(1)
FOREIGN KEY (column1) REFERENCES table_1(column1)
);
-- 컬럼명 선언 이후 사용자정의 제약조건명 지정과 함께 FOREIGN KEY 구문 선언으로 제약조건 설정
CREATE TABLE table_5(
column1 char(1)
CONSTRAINT fx_column1 FOREIGN KEY column1 REFERENCES table_1(column1)
);
-- 컬럼명 선언 이후 참조할 테이블의 컬럼명과 일치하는 경우
-- 사용자정의 제약조건명 지정과 함께 FOREIGN KEY 구문 선언으로 제약조건 설정
CREATE TABLE table_6(
column1 char(1)
CONSTRAINT fx_column1 FOREIGN KEY REFERENCES table_1
);
기억해 두자!
외래키는 컬럼을 선언함과 동시에 지정할 수 있으며,
컬럼을 선언한 후 FOREIGN KEY 구문을 통해 이미 선언된 컬럼에 외래키 제약조건을 걸 수 있고,
CONSTRAINT 구문을 함께 선언하면 제약조건의 명칭까지 선언할 수 있다는것을!
728x90
반응형
'DataBase' 카테고리의 다른 글
INNER JOIN / LEFT OUTER JOIN 차이와 활용 예시 (0) | 2022.04.28 |
---|