03.12 학습&숙제

한강섭·2025년 3월 12일
0

학습 & 숙제

목록 보기
42/103

03.12 학습! 서브쿼리! 🟥🟧🟨🟩🟦🟪🟫⬜⬛🫢🔔😎😊🤔😭⭐

Sub Query🟥

서브 쿼리🟧

하나의 쿼리가 다른 SQL문에 포함되는 구조

🔔 주의사항
괄호로 감싸서 표현!
쿼리 끝에 세미콜론을 붙이지 않음!
ORDER BY절 사용에 제한이 있거나 의미 없는 경우가 있을 수 있음! (LIMIT,OFFSET 사용)

단일 행 서브쿼리 VS 다중 행 서브쿼리

비교 하기 위해서는
=, >, <, <> VS IN, ANY, ALL, EXISTS

스칼라 서브쿼리 VS 단일 행 서브쿼리
갑 하나 VS 하나의 행 (여러개의 컬럼)

🔔주의사항
WHERE EMPNO NOT IN(
SELECT DISTINCT mgr
FROM emp
(WHERE mgr is not null
);
이런 식으로 조건문을 적을 때 is not null을 표시 안해준다면
NOT IN 비교에서 NULL 때문에 모든 연산이 막혀서 아무것도 표시가 되지 않는다

다중 행 서브 쿼리 연산자 🟨

IN 조건이 결과 중에서 하나라도 만족하면 참
ANY 는 = > < 이렇게 하나라도 만족하면 참 (= IN과 똑같다)
ALL 도 = > < 로 비교 후 결과 모든 값이 만족해야 참

EXISTS
서브쿼리(상관 관계 서브쿼리)에서 검색된 결과가 하나라도 존재하면 메인 쿼리 조건절이 참
조건에 맞는 행이 있는지의 판단 결과만 이용하고 SELECT절에서 따로 컬럼데이터를 가져오지 않는 형태로 대부분 작성 (SELECT 1)
만족하는 행이 존재하면 바로 참 반환 😎 탐색 시간 줄임!
SEMI JOIN이라고도 불림

서브 쿼리 활용🟩

인라인 뷰

FROM절 또는 JOIN절 뒤에 위치하는 서브 쿼리 -> 파생 테이블
서브 쿼리의 실행 결과 집합을 마치 테이블 처럼 사용하기 위한 방법
FROM절 반드시 별칭 사용! ⭐⭐⭐
일회성 뷰

인라인 뷰를 활용해서 피봇 테이블 형태로 조회 가능하다!

집합 연산🟦

UNION ALL
UNION
INTERSECT
EXCEPT

주의사항!
쿼리 실행 결과를 하나의 집합으로 보고, 집합 간의 연산을 수행 할 수 있음
두 쿼리에서 조회하는 컬럼의 개수는 같아야 함
컬럼 헤더는 앞쪽에 기술된 쿼리 기준으로 결정

강사님 수업🟪

LIS 알고리즘 🟫

최장 증가 부분 수열 알고리즘 LIS
DP 풀이 => O(n^2)
이분탐색풀이 => O(nlogn)

TreeDP⬜

트리의 성질을 이해하자!

지름!
백트래킹!

숙제 ⬛

트리 dp 문제 더 풀고
세그먼트 트리 외우고
이력서 정리해서 제출

profile
기록하고 공유하는 개발자

0개의 댓글