SQL/SQLD

[SQLD] 2-2. SQL 활용 (2)

유달잇 2021. 5. 26. 21:48
728x90

 

5. 그룹 함수


 

5-1. 그룹 함수의 종류


  • ROLLUP
  • CUBE
  • GROUPING SETS
표현식 출력값
  GROUP BY ROLLUP (E1,E2)   E1E2별 소계 / E1별 소계 / 총합계
  GROUP BY CUBE (E1,E2)   E1 E2별 소계 / E1별 소계 / E2별 소계 / 총합계
  GROUP BY GROUPING SETS (E1,E2)   E1별 소계 / E2별 소계

 

 

5-2. ROLLUP


  • GROUP BY의 확장 형태로 병렬로 수행 가능하기 때문에 매우 효과적이다.
  • 시간 및 계층적 분류를 포함하고 있는 데이터의 집계에 적합하다.
  • 인자로 넣어준 맨 앞 칼럼을 기준으로 전체 데이터의 그룹 함수 결과를 반환한다.
  • 계층 구조임으로 GROUP BY의 칼럼 순서가 바뀌면 결과 값도 바뀐다.

 

 

5-3. CUBE


  • 결합 가능한 모든 값에 대하여 다차원적인 집계를 생성할 수 있다.
  • ROLLUP에 비해 다양한 데이터를 얻을 수 있다.
  • 시스템에 부하를 많이 준다.

 

 

5-4. GROUPING SETS


  • 원하는 부분의 소계만 손쉽게 추출할 수 있다.
  • 인수들의 순서가 바뀌어도 결과는 같다.
  • GROUP BY 칼럼 순서와 무관하게 개별적으로 처리한다.

 

 

6. 윈도우 함수


 

6-1. 순위 함수


  • RANK : 중복 순위 포함 ex) 1 2 2 2 5 6,,
  • DENSE_RANK : 중복 순위 무시 ex) 1 2 2 3 4 5,,
  • ROW_NUMBER : 단순히 행 번호 표시, 값에 무관하게 고유한 순위 부여 ex)1 2 3 4 5 6,,

 

 

6-2. 집계 함수


  • SUM : 합
  • MAX : 최댓값
  • MIN : 최솟값
  • AVG : 평균값
  • COUNT : 개수

 

 

6-3. 행 순서 함수


  • FIRST_VALUE : 최초의 첫 값(=MIN)
  • LAST_VALUE : 마지막 값(=MAX)
  • LAG : 이전 행
  • LEAD : 이후 행

 

 

6-4. 비율 함수


  • PERCENT_RANK : 백분율 순서
  • CUME_DIST : 현재 행 이하 값을 포함한 누적 백분율
  • NTILE : 전체 데이터를 N등분
  • RATIO_TO_REPORT : 총 합계에 대한 값의 백분율

 

 

7. DCL


 

7-1. DCL 이란?


유저를 생성하고 권한(Privileges)을 제어할 수 있는 명령어를 말하며 보안을 위해 필요하다.

 

 

7-2. GRANT


  • 권한을 부여할 때 사용한다.
  
  GRANT 권한 ON 오브젝트 TO 유저명;
    

 

 

7-3. REVOKE


  • 권한을 회수, 제거할 때 사용한다.
  
  REVOKE 권한 ON 오브젝트 TO 유저명;
    

 

 

7-4. ROLE


  • 권한의 집합으로 권한을 일일이 부여하지 않고 ROLE으로 편하게 여러 권한을 부여할 수 있다.
  
  [Oracle] 
  CONN SYSTEM/MANAGER
  CREATE ROLE 롤이름; 
  GRANT 부여권한, 부여권한, ..... TO 롤이름; 
  GRANT 롤이름 TO 유저명;
    

 

 

8. 절자형 SQL


 

8-1. 절자형 SQL 이란?


일반적인 개발 언어처럼 절차지향적인 프로그램을 작성할 수 있도록 제공하는 기능이다.

SQL문의 연속적인 실행이나 조건에 따른 분기 처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다.

ex) Procedure, User Defined Function, Trigger 저장 모듈 생성 가능

 

 

8-2. PL/SQL 구조


  1. DECLARE
    • 선언부 (변수, 상수) : BEGIN ~ END 에서 사용할 변수나 인수 정의 및 타입 선언
  2. BEGIN
    • 실행부 : 개발자가 처리하고자 하는 SQL문, 필요한 로직 정의
  3. EXCEPTION
    • 예외 처리부 : BEGIN ~ END에서 실행되는 SQL문에 발생된 에러 처리
  4. END 

 

 

8-3. 프로시저와 트리거


프로시저 (PROCEDURE) 트리거 (TRIGGER)
CREATE Procedure 문법사용 CREATE Trigger 문법 사용
EXECUTE 명령어로 실행 생성 후 자동으로 실행
COMMIT, ROLLBACK 실행 가능 COMMIT, ROLLBACK 실행 안됨

 

 

 

 

 

728x90

'SQL > SQLD' 카테고리의 다른 글

[SQLD] SQLD 시험 대비 꼭 알아야할 것들  (0) 2021.05.28
[SQLD] 2-3. SQL 최적화 기본 원리  (2) 2021.05.27
[SQLD] 2-2. SQL 활용  (2) 2021.05.25
[SQLD] 2-1. SQL 기본 (2)  (0) 2021.05.24
[SQLD] 2-1. SQL 기본  (1) 2021.05.23
댓글
250x250
최근에 올라온 글
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Total
Today
Yesterday