본문 바로가기

SQL/MS-SQL

이승호샘의 조인(Join)과 외래키(Foreign key)와의 관계정리

create table aaa (

        id varchar(10) not null primary key,
        f_id varchar(10) not null,
        content text

)

create table bbb (

aid varchar(10) not null primary key,
f_id varchar(10),
f_content text,
foreign key (aid) references bbb(aid) -- 만일 외래키를 등록하지않아도 참조하고자 하는 테이블에서 참조할 수 있다. 그러나

)

/*

참조무결성 : PK(기본키)가 지정된 테이블과 FK(외래키)가 지정된 테이블 사이에서, FK(외래키)로 지정된 칼럼의 데이터가 PK(기본키)로 지정된 테이블의 칼럼값 이외의 값을 가질 수 없다는 제약 조건입니다.

개체무결성 : PK(기본키로) 지정된 칼럼은 중복된 데이터를 가질 수 없다는 제약 조건 입니다.

즉, Key 라는 것은 튜플(레코드)를 유일하게 구분해 낼 수 있는 칼럼으로 지정해야 합니다.

만일 중복된 데이터가 발견 된다면, 기본키로 칼럼을 잘못 지정했다는 의미겠지요.

*/



select id, aid
from aaa a inner join bbb b
on a.id = b.aid
create table aaa (

        id varchar(10) not null primary key,
        f_id varchar(10) not null,
        content text

)

create table bbb (

aid varchar(10) not null primary key,
f_id varchar(10),
f_content text,
foreign key (aid) references bbb(aid) -- 만일 외래키를 등록하지않아도 참조하고자 하는 테이블에서 참조할 수 있다. 그러나

)

/*

참조무결성 : PK(기본키)가 지정된 테이블과 FK(외래키)가 지정된 테이블 사이에서, FK(외래키)로 지정된 칼럼의 데이터가 PK(기본키)로 지정된 테이블의 칼럼값 이외의 값을 가질 수 없다는 제약 조건입니다.

개체무결성 : PK(기본키로) 지정된 칼럼은 중복된 데이터를 가질 수 없다는 제약 조건 입니다.

즉, Key 라는 것은 튜플(레코드)를 유일하게 구분해 낼 수 있는 칼럼으로 지정해야 합니다.

만일 중복된 데이터가 발견 된다면, 기본키로 칼럼을 잘못 지정했다는 의미겠지요.

*/



select id, aid
from aaa a inner join bbb b
on a.id = b.aid