💡Today I Learned
- 데이터 웨어하우스와 SQL, 데이터분석에 대한 네 번째 수업을 진행했습니다.
- Join을 이용한 실습
1. JOIN
: 두 개 이상의 테이블들을 공통 필드로 merge, 합쳐진 새로운 레코드들이 만들어짐
1) INNER JOIN - 두 테이블의 교집합 레코드
2) FULL JOIN - 합집합 레코드
3) LEFT/RIGHT JOIN - JOIN 연산자 기준 왼/오 테이블은 모두 포함 (매칭되지 않는 필드는 null)
4) SELF JOIN - 자기 자신 테이블을 merge
5) CROSS JOIN - 가능한 모든 레코드 들의 조합
*) JOIN시 고려할 점
: 중복 레코드 x
: 기본키의 유일성이 보장됨
2. BOOLEAN
- flag is True != flag is not False
: 플래그가 null값을 가질 수도 있음 (항상 같은 결과는 x..)
3. NULL
: IS / IS NOT 으로 비교 수행
: NULLIF(값1, 값2) - 값1과 값2가 같으면 NULL을 return, 다르면 값1을 return
: 사칙연산에 NULL이 포함되면 결과는 모두 NULL
- COALESCE(exp1, exp2, exp3, ...) : exp1부터 인자 하나씩 살펴서 NULL이 아닌 값이 나오면 그걸 리턴, 끝까지 갔는데도 모두 NULL이면 최종적으로 NULL을 리턴
4. 예약 키워드 or 공백
: " "로 감싸서 사용하기
5. 3일차 숙제 - CTAS
- CREATE TABLE AS 시 ORDER BY는 의미 x (테이블 정의해서 데이터베이스에 저장될 때 알아서 ordering 됨)
💡Furthermore
- SQL day_4 숙제 (JOIN, ROW_NUMBER() 이용)
- (SELECT 문 안에) ROW_NUMBER() OVER (PARTITION BY 필드1 ORDER BY 필드2) nn - 필드1로 파티션을 나누고, 필드2를 기준으로 정렬한 후 파티션 내에서 row(레코드) 번호를 붙임, 번호를 붙인 필드 이름은 'nn'
반응형
'데브코스 > TIL' 카테고리의 다른 글
[TIL] 7주차_Day26: AWS 클라우드 실습 (1) (1) | 2023.11.20 |
---|---|
[TIL] 6주차_Day25: 데이터 웨어하우스와 SQL과 데이터분석 (5) (1) | 2023.11.20 |
[TIL] 6주차_Day23: 데이터 웨어하우스와 SQL과 데이터분석 (3) (2) | 2023.11.19 |
[TIL] 6주차_Day22: 데이터 웨어하우스와 SQL과 데이터분석 (2) (1) | 2023.11.14 |
[TIL] 6주차_Day21: 데이터 웨어하우스와 SQL과 데이터분석 (1) (1) | 2023.11.13 |