정보처리기사

[정처기] 실기요약 - 7-2. 응용 SQL 작성하기

검이 2023. 12. 29. 18:00

목차

5. 인터페이스 구현

Chapter 01  인터페이스 설계 확인
Chapter 02  인터페이스 기능 구현
Chapter 03  인터페이스 구현 검증

6. 프로그래밍 언어 활용

Chapter 01  프로그래밍을 위한 기본 사항
Chapter 02  C언어
Chapter 03  자바
Chapter 04  파이썬

7. SQL 응용

Chapter 01  데이터베이스 기본
Chapter 02  응용 SQL 작성하기
Chapter 03  SQL 활용 및 최적화

8. 서버 프로그램 구현

Chapter 01  개발환경 구축
Chapter 02  공통 모듈 구현
Chapter 03  배치 프로그램 구현

9. 소프트웨어 개발 보안 구축

Chapter 01  소프트웨어 개발 보안 설계
Chapter 02  소프트웨어 개발 보안 구현


다중 행 연산자

- 서브 쿼리의 결과가 여러 개의 튜플을 반환하는 다중 행 서브쿼리에서 사용되는 연산자
- IN, ANY, SOME, ALL, EXISTS를 사용
- 비교 연산자는 단일 행 비교 연산자와 결합하여 사용

연산자 설명
IN 리턴되는 값 중에서 조건에 해당하는 값이 있으면 참
ANY 서브쿼리에 의해 리턴되는 각각의 값과 조건을 비교하여 하나 이상을 만족하면 참
ALL 값을 서브쿼리에 의해 리턴되는 모든 값과 조건 값을 비교하여 모든 값을 만족해야만 참
EXISTS 메인 쿼리의 비교 조건이 서브쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면  참

 


데이터 분석 함수의 종류

함수 설명
집계 함수 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
그룹 함수 소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수
윈도 함수 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능

 


집계 함수 구문

1. GROUP BY 구문
- SQL에서는 WHERE 구문을 활용하여 조건별 대상 ROW를 선택
- 복수 ROW 대상의 데이터 분석 시 그룹핑 대상이 되는 부분을 선별할 필요가 있다
- 실제 구체적 데이터 분석값을 보고자 하는 컬럼 단위를 선정할 때 사용되는 기준. 사용자가 원하는 분석 데이터를 볼 수 있게 함.

GROUP BY 특성
- NULL 값을 가지는 ROW는 제외한 후 산출
- SELECT에서 사용하는 것과 같은 ALIAS 사용이 불가
- WHERE 구문 안에 포함되지 않음
- GROUP BY 보다 먼저 실행되고, 대상이 되는 단일 행을 사전에 선별하는 역할

 

2. HAVING 구문
- WHERE 구문 내에는 사용할 수 없는 집계 함수의 구문을 적용하여 복수 행의 계산 결과를 조건 별로 적용하는데 사용
- GROUP BY 뒤에 기재하며, GROUP BY 구문의 기준 항목이나 소그룹 집계 함수를 활용한 조건을 적용하는데 사용
- GROUP BY 및 집계 함수에 대한 WHERE 구문


집계 함수 종류

집계 함수 내용
COUNT 줄 수 반환
SUM 합계 계산
AVG 평균 계산
MAX 최댓값 계산
MIN 최솟값 계산
STDDEV 표준편차 계산
VARIANCE 분산 계산

그룹 함수 유형

1. ROLLUP 함수
- ROLLUP에 의해 지정된 컬럼은 소계 등 중간 집계 값을 산출하기 위한 그룹함수
- 지정 컬럼의 수보다 하나 더 큰 레벨만큼의 중간 집계 값이 생성
- 지정 컬럼은 계층별로 구성되기 때문에 순서가 바귀면 수행 결과가 바뀜을 유의

SELECT 컬럼1, 컬럼2, ..., 집계 함수
	FROM 테이블명
[WHERE ... ]
GROUP BY [컬럼 ...] ROLLUP (컬럼1, 컬럼2, ...)
[HAVING ...]
[ORDER BY ...]

 

2. CUBE 함수
- 결합 가능한 모든 값에 다차원 집계를 생성하는 그룹 함수

SELECT 컬럼명1, ..., 집계 함수
	FROM 테이블명
[WHERE ...]
GROUP BY [컬럼명1, ...] CUBE(컬럼명A, ...)
[HAVING ...]
[ORDER BY ...]

 

3. GROUPING SETS 함수
- 집계 대상 컬럼들에 대한 개별 집계를 구할 수 있으며, ROLLUP 이나 CUBE 와는 달리 컬럼 간 순서와 무관한 결과를 얻을 수 있음.

SELECT 컬럼명1, ..., 집계 함수
	FROM 테이블명
[WHERE ...]
GROUP BY [컬럼명1, ...]
			GROUPING SETS(컬럼명1, ...)
[HAVING]
[ORDER BY ...]

 


윈도 함수

- 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 함수
- OLAP라고도 부른다.

SELECT 함수명(파라미터)
	OVER
   	([PARTITION BY 컬럼1, ...]
    [ORDER BY 컬럼A, ...])
    FROM 테이블명

순위 함수

RANK / DENSE_RANK / ROW_NUMBER

1. RANK
- 특정 항목에 대한 순위를 구하는 함수
- 동일 순위의 레코드 존재 시 후순위는 넘어감

2. DENSE_RANK
- 레코드의 순위를 계산
- 동일 순위의 레코드 존재 시에도 후순위를 넘어가지 않음

3. ROW_NUMBER
- 레코드의 순위를 계산
- 동일 순위의 값이 존재해도 이와 무관하게 연속 번호를 부여