ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 세션 SQL - 3회차
    SQL 정리/세션 2024. 4. 24. 13:59

    UNION , JOIN

     

    결합 후 handling 하기 위해서 사용.

     

    수직 - UNION / 수평 - JOIN

     

    union은 테이블 사이에 넣는다? - 테이블 간의 연결

     

    union vs union all

    두 쿼리문을 하나로 수직결함

    열의 갯수가 모든 쿼리에서 동일해야 함

    데이터 형식이 일치해야 함

    (컬럼명도 동일해야함?)

     

    union 은 중복된 행을 하나로 표기하고(중복제거)

    union all은 모두 표현(중복 제거하지 않고 표기)

     


    JOIN

    공통 컬럼의 관계 PK, FK

    primary key foreign key

    PK - null 일 수 없는 유일한 값 - 기준되는 column

     

    my sql 에서는 FULL OUTER JOIN 이 제공되지 않아

    left union right join으로 계산해야 함!

     

    조건식은 2개 이상?

    더보기

    SELECT *
    FROM t1
    JOIN t2 ON t1.column1 = t2.column1 AND t1.column2 = t2.column2;
    와 같이  두개 이상의 키는 설정하는 것은 기본키 개념과는 다른것인가요?
    mysql 내에서만 못하는 것인가요?

    컬럼의 컨디션이 두개가 될 수 있다.

    join vs where

    더보기

    SELECT *
    FROM table1table2
    WHERE table1.공통컬럼 = table2.공통컬럼

    T-SQL 조인 방법이 처리 상 약간 빠른 부분은 있습니다. 다만, 조건이 where 절에서 사용되기 때문에 다른 조건과 함께 처리할 때 의도하지 않은 값이 나타날 수 있습니다.

     

     

     

     ANIS-SQL JOIN 
    SELECT *
    FROM table1 join table2
    on table1.공통컬럼 = table2.공통컬럼

    그래서 혼선을 방지하기 위해 보통 현재 설명 되고 있는 ANIS-SQL JOIN 방법을 표준으로 사용하고 가독성도 더 좋습니다.

     

    full outer join

    n:n 와 같이 null값 까지 모두 포함하여 표시.

     

     

     

    primary key 가 하나만 존재해야 한다는 것은

    JOIN t2 ON t1.column1(P) = t2.column1(F)

    AND t1.column2(P) = t2.column2(F);  와 같이

    join condition 내에서 하나만 존재한다는 뜻인가요?

    1개만 존재한다

    이 말은 하나의 PK에 대해 적용되는 테이블 내에서

    기준되는 컬럼의 값 내에서 row값이 하나로 고정이다.

     

    그리고 대응되는 Foreign key은 하나씩 1대1 대응이 원칙인가요?

    1:n - ex) 1, 2, 3번 고객은 레벨업 패키지를 구매하였다.

     

    pk 값이 바뀌면 fk 바뀌는가? - 프로그램 아니면 사용자 설정에 따라 다르다.

     

    내가 해보면 되는 것.

    t1 left join t2 on t2.a = t1.a 의 경우에도 left join의 왼쪽 테이블이

    t1인가요? 예

     

    방금 예시의 1~5 행과 5~9번까지의 테이블이 별개의 t1 ,t2 테이블이라면 union 사용할 수 없는 경우일까요?

     

     

     

     

    모두 distinct 로 작동

    같은 행 내 row값 겹치는 것을 삭제한다

    전처리 가능 

     

    'SQL 정리 > 세션' 카테고리의 다른 글

    데이터 리터리시  (2) 2024.04.24
    04.23 - 세션 2회차  (0) 2024.04.23
    SQL 세션 - 단축기  (0) 2024.04.22
    Session / 24-04-19 / 데이터 분석 기본 개념  (1) 2024.04.19
Designed by Tistory.