안녕하세요 차세대 IT리더가 되고픈 비공자입니다.
오늘은 부모테이블의 PRIMARY KEY를 자식테이블에서
참조를 해서 가져오는 방식에 대해서 공부를 해보도록
하겠습니다.
[ 오늘의 목차 ]
1. 부모 대상 테이블 생성하기
2. 자식 대상 테이블 생성과 FK설정
3. FK를 설정 했을 경우, 데이터 INSERT방법
[ 부모 대상 테이블 생성하기 ]
지난 번 시간에 부모 테이블을 생성했었죠?
부모의 대상 테이블은 TC_CUST_INFO_BAS
고객정보기본 테이블을 부모테이블로 지정합니다.
복습 : PK생성
CONSTRAINT PK제약조건명
PRIMARY KEY(PK컬럼명);
부모 테이블을 생성만 했고, 아직 데이터를 저장하지 않아
빈 테이블로 남아 있습니다.
[ 자식 대상 테이블 생성과 FK설정 방법 ]
[ 자식 대상 테이블 생성과 FK 적용 ]
자식 테이블인 고객상세정보 테이블은 부모테이블
TC_CUST_INFO_BAS 부모테이블의 PK컬럼 즉,
CUST_NO와 CUST_ID를 참조해서 생성을 합니다.
FK 생성 부분
CONSTRAINTS FK제약조건명 FOREIGN KEY(컬럼명)
REFERENCES 부모테이블(PK컬럼명)
[ 자식 테이블 COMMENT 지정 ]
자식테이블을 생성했으니 논리명을 적용하기 위해서
코멘트를 달아줍니다.
[ 자식 대상 테이블 생성과 FK설정 복습 ]
[ 자식 대상 테이블 코멘트 설정 ]
[ FK를 설정했을 경우, 데이터 INSERT방법 ]
테이블에 레코드를 저장할 시 에러가 발생한다.
이유 : 부모의 PK컬럼에 FK(외래키) 데이터가
존재하지 않다는 뜻입니다.
해결방법 :
부모 테이블에 먼저 데이터를 저장해 준다.
자식테이블에 해당하는 FK의 속성값을
자식테이블에서 저장을 해주면 됩니다.
[ 부모테이블 데이터 저장 ]
[ 부모테이블 출력 결과 ]
[ 자식테이블 데이터 저장 ]
[ 자식테이블 출력 결과 ]
이렇게 자식테이블이 부모테이블의
PK컬럼을 참조를 하고 있을 때는
자식 테이블의 FK컬럼의 값이 부모테이블이
가지고 있는지 확인을 후, 저장을 해야지만
INSERT문이 정상적으로 수행이 되는 것을
확인할 수 있습니다.
오늘은 부모 테이블의 컬럼(속성)을 참조하여
데이터를 저장하는 FK에 대해서 공부를 했습니다.
FK : Foreign key는 DDL은 아래와 같이
(Data Definition Language) 데이터 정의어
입니다. 많은 도움이 되셨으면 좋겠습니다.
감사합니다
'DBA가 되고 싶은 비공자 > SQLD 자격증' 카테고리의 다른 글
[ SQLD ] 오라클 캐시(Oracle Cache)에 대한 공부 (0) | 2024.06.30 |
---|---|
[ SQLD ] 오라클 시퀀스 조회, 생성, 수정, 삭제, 테이블 적용 (0) | 2024.06.29 |
[ SQLD ] DDL(Data Definition Language) 제약조건 조회, 추가, 삭제 (0) | 2024.06.26 |
[ SQLD ] DDL(Data Definition Language) RENAME 테이블 명, 컬럼 명 변경하기 (0) | 2024.06.23 |
[ SQLD ] DDL(Data Definition Language) 테이블 생성 및 PRIMARY KEY(기본키) 제약조건 추가 및 코멘트 적용 (0) | 2024.06.18 |