SQL 응용

SQL 응용

1. SQL 응용

1) 절차형 SQL

특정 사용자가 실행 순서를 정해놓고 사용하는 SQL문

* 프로시저(서술형)

– 절차형 SQL문을 활용하여 사전에 정의해놓은 SQL문을 호출할 경우 특정 기능을 수행하는 트랜잭션 언어

DECLARE // 프로시저 선언부
BEGIN/END // 프로시저 시작
CONTROL // 제어부(조건/반복), 순차적 처리
SQL // DQL, DML
EXCEPTION // 예외사항 처리
TRANSCATION // DML 수행 취소 여부(ROLLBACK, COMMIT)

– CREATE OR REPLACE : 프로시저 생성 SQL문

* 사용자 정의 함수(서술형)

– 사용자가 정의하여 SQL문 처리 수행 후 단일 값으로 반환하는 절차형 SQL

DECLARE // 프로시저 선언부
BEGIN/END // 프로시저 시작
CONTROL // 제어부(조건/반복), 순차적 처리
SQL // DQL, DML
EXCEPTION // 예외사항 처리
RETURN // 단일 값 반환

* 트리거(서술형)

특정 테이블에 수정, 삭제, 삽입 등의 데이터 이벤트 발생 시 자동으로 DBMS에서 실행되도록 구현된 프로그램

– 종류

: 행 트리거 – 데이터 변환 시 실행

: 문장 트리거 – 트리거에 의해 한 번 실행

DECLARE // 프로시저 선언부
EVENT // 이벤트 부(FOR EACH ROW)
BEGIN/END // 프로시저 시작
CONTROL // 제어부(조건/반복), 순차적 처리
SQL // DQL, DML
EXCEPTION // 예외사항 처리

2) 응용 SQL 작성

* 집계 함수
– 여러 행과 테이블 전체로부터 하나의 결과값을 반환

– GROUP BY문 사용

– COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN 함수 사용

* 그룹 함수

– 소 그룹 간의 중간 합계, 소계를 계산하여 산출하는 함수

– ROLLUP : 소계, 중간 집계 값 산출

– CUBE : 다차원 집계 생성

– GROUPING SET : 컬럼에 대한 개별 집계

* 윈도 함수

– 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해 SQL에 추가한 함수

SELECT 함수명(파라미터) OVER PARTITION BY ORDER BY

순위함수

행 순서 함수

그룹 내 비율 함수

RANK()

FIRST_VALUE

RATIO_TO_REPORT

DENSE_RANK()

LAST_VALUE

PERENT_RANK

ROW_NUMBER()

* JDBC

– 자바 언어를 이용하여 DBMS에 질의하고 데이터를 조작하는 API 제공

* MyBatis

– DBMS에 질의하기 위해 SQL 쿼리를 별도의 파일에 분리하고 Mapping을 통해 SQL 실행

– 복잡한 JDBC 코드 단순화

– SQL문 거의 그대로 사용 가능

– 우수한 성능

* 동적 SQL : 조건에 따라 SQL문 구문 자체를 변경하고 조작이 가능

* DCL

– GRANT : 권한 부여 – ON TO WITH

– REVOKE : 권한 해제 – ON FROM CASCADE

Start typing and press Enter to search

Shopping Cart