지난 글에는 SQL 기본 내용에 대해 포스팅 했었다.
오늘은 SQL 활용 내용에 관한 내용을 정리해볼까 한다.
SQL 활용
서브쿼리
서브쿼리는 하나의 쿼리 안에 존재하는 또 다른 쿼리이다.
서브쿼리는 위치에 따라 나눈다.
SELECT 절 | 스칼라 서브쿼리 |
FROM 절 | 인라인 뷰 |
WHERE절, HAVING 절 | 중첩 서브쿼리 |
뷰(View)
특정 SELECT 문에 이름이 붙여 재사용이 가능하도록 저장해놓은 것이다.
뷰는 가상테이블이라는 점을 기억하자.
실제 데이터는 저장하지 않고 데이터만 조회하는 것이다.
집합 연산자
각 쿼리의 결과 집합을 가지고 연산하는 명령어
UNION ALL | 중복 포함 결과 집합의 합집합 |
UNION | 중복 제거 결과 집합의 합집합 |
INTERSECT | 결과 집합의 교집합 |
MINUS / EXCEPT | 차집합 |
그룹 함수
- 집계 함수 : COUNT, SUM, AVG, MAX, MIN
- 소계(총계) 함수 : ROLLUP, CUBE, GROUPING SETS
ROLLUP은 인수 순서에 따라 결과가 달라진다.
각 함수들이 어떻게 사용되는지 알아야한다. 시험에 출제된다.
예시들을 꼼꼼히 보는 것을 추천한다..
GROUPING은 원하는 위치에 원하는 텍스트를 출력할 수 있다.
윈도우 함수
OVER 키워드와 함께 사용된다.
(1) 순위 함수
- RANK : 1, 2, 2, 3, 4, ...
같은 순위가 존재하면 존재하는 수 만큼 다음 순위를 건너뛴다.
- DENSE_RANK : 1, 2, 2, 3, 4, ...
같은 순위가 존재해도 다음 순위를 건너뛰지 않고 이어서 매긴다.
- ROW_NUMBER : 1 , 2, 3, 4, 5, ...
순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다.
(2) 집계 함수
- SUM : 데이터의 합계
- MAX : 데이터의 최대값
- MIN : 데이터의 최소값
- AVG : 데이터의 평균값
- COUNT : 데이터의 건수
(3) 행 순서 함수
- FIRST_VALUE : 파티션 별 가장 선두에 위치한 데이터를 구하는 함수
- LAST_VALUE : 파티션 별 가장 끝에 위치한 데이터를 구하는 함수
- LAG : 파티션 별로 특정 수 만큼 앞선 데이터를 구하는 함수
- LEAD : 파티션 별 특정 수만큼 뒤에 있는 데이터를 구하는 함수
(4) 비율 함수
- RATIO_TO_REPORT : 파티션 별 합계에서 차지하는 비율을 구하는 함수
- PERCENT_RANK : 현재 행이 위치하는 백분위 순위 값을 구하는 함수
- CUME_DIST : 해당 파티션에서의 누적 백분율을 구하는 함수
- NTILE : 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 등급을 구하는 함수
TOP-N 쿼리
ROWNUM : 가짜순번
< 조건이나 <= 조건으로 사용해야 한다.
셀프 조인(Self Join)
나 자신과의 조인
대분류, 중분류, 소분류 구분하기
계층 쿼리
별도의 JOIN 없이도 계층 구조 출력
여기까지 SQL 활용 내용을 정리해보았다.
오늘 내용은 어떻게 사용하는지 다 알아야하며 단답형 준비도 잘 해야한다.
다음에는 관리 구문에 대해 마지막으로 요약정리하고 후기에 관해 작성하려고 한다. 망망!
'학습' 카테고리의 다른 글
@RequestBody DTO에 Null 넘어오는 이슈 해결 (0) | 2023.09.07 |
---|---|
SQLD 자격증 따기5 - 관리 구문 및 후기 (0) | 2023.07.13 |
SQLD 자격증 따기3 - SQL 기본 (0) | 2023.07.10 |
SQLD 자격증 따기 2 - 데이터 모델링의 이해 (0) | 2023.07.06 |
SQLD 자격증 따기 1 - 책 소개 (0) | 2023.07.05 |