DB(SQL)

조인(Join)

_주야 2012. 7. 27. 11:41

조인(Join)

: 사용자에게 의미있는 정보(information)을 제공하기 위해 분리(정규화)되어 있는 각각의 테이블에서 테이타들을 연결하거나 조합하는 일련의 작업

 

#. guest 테이블 생성

SQL> create table guest(
  2  ju         number(6) primary key,
  3  name    varchar2(10),
  4  rent      number(4)
  5  );

테이블이 생성되었습니다.

SQL> desc guest;
 이름                                      널?             유형
 ----------------------------------------- -------- 

 JU                                        NOT      NULL NUMBER(6)
 NAME                                                   VARCHAR2(10)
 RENT                                                        NUMBER(4)

 

#. dvd 테이블 생성
SQL> create table dvd(
  2  no           number(4) primary key,
  3  title      varchar2(20)
  4  );

테이블이 생성되었습니다.

SQL> desc dvd;
 이름                                      널?                유형
 --------------------------- -------------- --------
 NO                                        NOT     NULL NUMBER(4)
 TITLE                                                    VARCHAR2(20)

 

#. 각 테이블에 데이타 입력

SQL> insert into guest(ju,name,rent
  2  values(820614,'이효리',1002);

1 개의 행이 만들어졌습니다.

SQL> insert into guest(ju,name,rent
  2  values(720111,'한효주',2001);

1 개의 행이 만들어졌습니다.

SQL> insert into guest(ju,name,rent
  2  values(910324,'김민선',1001);

1 개의 행이 만들어졌습니다.

SQL> insert into dvd(no,title)
  2  values(1001,'터미네이터');

1 개의 행이 만들어졌습니다.

SQL> insert into dvd(no,title)
  2  values(1002,'반지의 제왕');

1 개의 행이 만들어졌습니다.

SQL> insert into dvd(no,title)
  2  values(1003,'황후화');

1 개의 행이 만들어졌습니다.

SQL> insert into dvd(no,title)
  2  values(2001,'청춘');

1 개의 행이 만들어졌습니다.
SQL> insert into dvd(no,title)
  2  values(2002,'김홍도');

1 개의 행이 만들어졌습니다.

 

[참고]

insert문 에서 데이터 순서대로 빠짐없이 입력할 때 컬럼명 작성 생략 가능!

예) insert into dvd values(1001,'터미네이터');

 

SQL> commit;

커밋이 완료되었습니다.


SQL> select guest.ju,guest.name,dvd.title from guest,dvd;

        JU           NAME                  TITLE
---------- -------------------- ----------------------------------------
    820614            이효리               터미네이터
    820614            이효리               반지의 제왕
    820614            이효리               황후화
    820614            이효리               청춘
    820614            이효리               김홍도
    720111            한효주               터미네이터
    720111            한효주               반지의 제왕
    720111            한효주               황후화
    720111            한효주               청춘
    720111            한효주               김홍도
    910324            김민선               터미네이터
    910324            김민선               반지의 제왕
    910324            김민선               황후화
    910324            김민선               청춘
    910324            김민선               김홍도

15 개의 행이 선택되었습니다.

 

[참고]

별칭 사용 가능!

SQL> select a.ju,a.name,b.title from guest a,dvd b;

 

SQL> select a.ju,a.name,b.title from guest a,dvd b
  2  where a.rent=b.no;

        JU            NAME                 TITLE
---------- ------------------------------
    910324        김민선               터미네이터
    820614        이효리               반지의 제왕
    720111        한효주               청춘


SQL> select a.ju,a.name,b.title from guest a,dvd b
  2  where a.rent=b.no and a.name='이효리';

        JU             NAME                 TITLE
---------- --------------------------------

    820614        이효리               반지의 제왕

 

 

'DB(SQL)' 카테고리의 다른 글

[MySQL] password 초기화  (0) 2013.07.08
[MySQL] MySQL 접속  (0) 2013.07.08
사용자 생성, 권한부여, 삭제  (0) 2012.07.27
SQL문의 종류 - DDL, DML, DCL  (0) 2012.07.27
테이터 입력, 수정, 삭제  (0) 2012.07.27