본문 바로가기

DATA 분석 교육 과정 (2024.02~08)/SQL

SQL_FROM (스키마, INNER JOIN, OUTER JOIN, ANSI)

728x90

 

1. 테이블과 스키마 관계

 
- 스키마: 테이블 등의 저장소 객체를 저장하는 곳
- 각 계정마다 존재하며 이름이 계정명과 동일
 
 
 

 
 
 
 
 
- 쿼리 작성 시 스키마, 테이블, 컬럼  모두 작성해야함
   BUT  접속한 계정기준으로 스키마 생략,
            테이블 한개만 있다면 테이블도 생략

2. 여러 테이블 한번에 사용하기

   - FROM 뒤에 테이블을 두 개 이상 입력
   - 예시 
  SELECT *
       FROM TB_CUST
                 , TB_CUST BADGE

3. 테이블 명칭

    - FROM 뒤에 테이블이 두 개 이상이라면 테이블을 명시해서 컬럼을 입력
    - FROM 뒤 테이블에 별칭을 주면 작성이 더 쉬워짐
     (FROM 별칭은 실제 현업에서 많이 사용하며 , 이때는 SELECT 처럼 AS 를 따로 입력하지 않습니다. )
    - 주의!  FROM 뒤 테이블에 별칭을 주면 이후에는 별칭만 사용해야 합니다.
    - 예시 )
SELECT A. CUST_ID
    , A. CUST_NAME
    , B. CUST_ID
    , B. BADGE_ID
 FROM TB_CUST A  --별칭
           , TB_CUST_BADGE B  --별칭
 WHERE A. CUST_ID = B.CUST_ID ;
 

4. JOIN 의미, 원리

    - 여러 테이블에서 필요한 데이터를 한번에 가져오는 기술
    - 여러 테이블에서 필요한 컬럼들을 한번에 검색 할 수 있어 성능 증가
    - 실제 실무에서는 3개 이상의 테이블을 조인하는 경우 多
    - 카티션 조인 : 각각의 테이블에 대해 모든 경우의 수를 합쳐놓은 상태
      예시)  TB_CUST (튜플 7개) * TB_PRD (튜플 13개) = 출력된 튜플 개수 (91개)

    - 조인 조건: 테이블 간에 특정 컬럼으로 연결
     예시 1) 회원 테이블의 회원ID와 회원연락처 테이블의 회원ID가 똑같은 대상만 남겨놓는 조건
SELECT *
    FROM 회원 A, 회원연락처 B
   WHERE A. 회원ID = B.회원ID ;

      예시 2)  
SELECT * 
    FROM 회원 A , 회원연락처 B 
WHERE A.회원ID = B.회원ID 
      AND A.회원ID = 'A0001' 
      AND B.구분코드 = '휴대폰' ;

    - 일반 조건: 조인 조건이 아닌 경우

5. INNER JOIN, OUTER JOIN

   1) INNER JOIN : 두 테이블 간에 조건에 일치하는 대상만 출력
    - 예시)
SELECT  A.회원ID
      ,  A.이름
       , B.연락처
FROM 회원 A
         , 회원연락처 B
WHERE A.회원ID = B.회원ID ;

    2) OUTER JOIN : 두 테이블 간에 특정 테이블을 기준으로 조건에 일치한지 않는 대상도 출력
    - 예시
SELECT  *
FROM 회원 A
         , 회원연락처 B
WHERE A.회원ID = B.회원ID (+)-- (+) 기호는 OUTER JOIN을 의미, 없으면 INNER JOIN
                                                        --  (+) 기호가 붙어있는 쪽의 반대 테이블을 기준으로 함
                                                        --  (+) 기호는 오라클 데이터베이스에서만 사용하는 방식

 

6. ANSI

   - (+) 기호는 오라클 데이터베이스에서만 사용하는 방식, ANSI(미국국립표준협회) 조인모든 DBMS 에서 사용가능

   
   1) 오라클 조인과 ANSI의 차이점

오라클 조인   /  ANSI 

  - (+) 조건이 없다면 INNER JOIN 으로 연결하고  ON 추가에 조인조건을 입력 WHERE 에 일반조건을 입력합니다
  - (+) 이 붙은 반대쪽 테이블의 방향으로 LEFT 혹은 RIGHT 를 결정하고 OUTER JOIN 으로 작성을 합니다. ON 에 조인조건 , WHERE 에 일반조건을 입력합니다

728x90
반응형