-
세션 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 table1, table2
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