All :L
8장 SQL 응용 (DML - SELECT (2/2)) 본문
반응형
[DML - SELECT]
💡 SELECT 명령어란?
SELECT
: 테이블에서 튜플을 검색하는 명령
📌 일반 형식
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ]
[, 그룹함수(속성명) [AS 별칭]]
[, Window함수 OVER (PRAPRIRION BY 속성명1, 속성명2,
ORDER BY 속성명 3, 속성명4, )]
FROM 테이블명[, 테이블명, ]
[WHERE 조건]
[GROUP BY 속성명, 속성명, ]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
💡 그룹 지정 검색이란?
그룹 함수
: GRUOP BY절에 지정된 그룹별로 속성 값을 집계할 때 사용하는 것
함수 | 기능 |
---|---|
COUNT() | 그룹별 튜플 수를 구하는 함수 |
SUM() | 그룹별 합계를 구하는 함수 |
AVG() | 그룹별 평균를 구하는 함수 |
MAX() | 그룹별 최대값를 구하는 함수 |
MIN() | 그룹별 최소값을 구하는 함수 |
STDDEV() | 그룹별 표준편차를 구하는 함수 |
VARIANCE() | 그룹별 분산을 구하는 함수 |
ROLLUP( , , ) | - 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수 - 속성의 개수가 n개이면, n+1 레벨까지, 하위 레벨에서 상위 레벨 순으로 데이터 집계 |
CUBE( , , ) | - 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구하는 함수 - 속성의 개수가 n개이면, 2^n 레벨까지, 상위 레벨에서 하위 레벨 순으로 데이터 집계 |
그룹 지정 검색
: GRUOP BY절에 지정한 속성을 기준으로 자료를 그룹화하여 검색
- <상여금> 테이블에서 '부서'별 '상여금'의 평균 구하기
# 예시 1 👩🏻💻 SELECT 부서, AVG(상여금) AS 평균 FORM 상여금 GROUP BY 부서;
- <상여금> 테이블에서 '상여금'이 100 이상인 사원이 2명 이상인 '부서'의 튜플 수 구하기
# 예시 1 👩🏻💻 SELECT COUNT(부서) FORM 상여금 WHERE 상여금 >= 100 GROUP BY 부서 HAVING COUNT(*) >= 2;
- <상여금> 테이블의 '부서', '상여내역', 그리고 '상여금'에 대해 부서별 상여내역별 소계와 전체 합계 검색
# 예시 1 👩🏻💻 (ROLLUP 사용) SELECT 부서, 상여내역, SUM(상여금) AS 상여금합계 FORM 상여금 GROUP BY ROLLUP(부서, 상여내역);
# 예시 2 👩🏻💻 (CUBE 사용) SELECT 부서, 상여내역, SUM(상여금) AS 상여금합계 FORM 상여금 GROUP BY CUBE(부서, 상여내역);
💡 WINDOW 함수 이용 검색이란?
WINDOW 함수
: GROUP BY절을 이용하지 않고 함수의 인수로 지정한 속성의 값 집계
- 함수의 인수로 지정한 속성이 집계할 범위 -> 윈도우
[WINDOW 함수 종류]- ROW_NUMBER() : 윈도우별로 각 레코드에 대한 일련번호 반환
- RANK() : 윈도우별로 순위를 반환, 공동 순위 반영
- DENSE_RANK() : 윈도우별로 순위 반환, 공동 순위 반영 X
WINDOW 함수 이용 검색
- <상여금> 테이블에서 '상여내역'별로 '상여금'에 대한 일련 번호 구하기
# 예시 1 👩🏻💻 SELECT 상여내역, 상여금 ROW_NUMBER() OVER (PARTITION BY 상여내역 ORDER BY 상여금 DESC) AS NO FROM 상여금;
- <상여금> 테이블에서 '상여내역'별로 '상여금'에 대한 순위 구하기
# 예시 1 👩🏻💻 SELECT 상여내역, 상여금 RANK() OVER (PARTITION BY 상여내역 ORDER BY 상여금 DESC) AS 상여금순위 FROM 상여금;
💡 집합 연산자를 이용한 통합 질의란?
: 집합 연산자를 사용하여 2개 이상의 테이블의 데이터를 하나로 통합하는 것
📌 일반 형식
SELECT 속성명1, 속성명2,
FORM 테이블명
UNION | UNION ALL | INTERSECT | EXCEPT
SELECT 속성명1, 속성명2,
FROM 테이블명
[ORDER BY 속성명 [ASC | DESC]];
- 집합 연산자의 종류(통합 질의의 종류)
집합 연산자 설명 집합 종류 UNION - 두 SELECT문의 조회 결과를 통합해 모두 출력
-중복된 행은 한번만 출력합집합 UNION ALL - 두 SELECT문의 조회 결과를 통합해 모두 출력
-중복된 행 모두 출력합집합 INTERSECT - 두 SELECT문의 조회 결과 중 공통된 행만 출력 교집합 EXCEPT - 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행 출력 차집합 - <사원> 테이블과 <직원> 테이블을 통합하는 질의문 작성 (중복 X)
# 예시 1 👩🏻💻 SELECT * FROM 사원 UNION SELECT * FROM 사원
- <사원> 테이블과 <직원> 테이블에 공통으로 존재하는 레코드만 통합하는 질의문 작성
# 예시 1 👩🏻💻 SELECT * FROM 사원 INTERSECT SELECT * FORM 직원;
반응형
'STUDY > 정보처리기사' 카테고리의 다른 글
9장 소프트웨어 개발 보안 구축 (서비스 공격 유형 (1/3)) (0) | 2023.04.17 |
---|---|
9장 소프트웨어 개발 보안 구축 (암호 알고리즘) (0) | 2023.04.16 |
8장 SQL 정의어 (SQL - DML) (0) | 2023.04.15 |
8장 SQL 응용 (SQL - DCL) (0) | 2023.04.15 |
8장 SQL 응용 (SQL - DDL) (0) | 2023.04.15 |
Comments