ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (정보처리기사 실기) SQL 응용
    정보처리기사/실기 2020. 7. 22. 20:58

    프로시저

    프로시저 : 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어, 데이터 조작어(DML)수행

    프로시저 구성 요소(순서)

    -선언부

    -시작/종료부

    -제어부

    -SQL

    -예외부

    -실행부

     

    제어부(CONTROL) 

    조건문

    IF문

    IF 조건 THEN
     문장;
    ELSIF 조건 THEN
     문장;
    ELSE
     문장;
    END IF;

     

    CASE문

    CASE 변수
      WHEN 값1 THEN
        SET 명령어;
      WHEN 값2 THEN
        SET 명령어;
      ELSE
        SET 명령어;
    END CASE;

     

    반복문

    LOOP문

    LOOP
        문장;
        EXIT WHEN 탈출조건
    END LOOP;

     

    WHILE문

    WHILE 반복 조건 LOOP
     LOOP
     문장;
    END LOOP;

     

    FOR LOOP문

    FOR 인덱스 IN 시작 값... 종료값
     LOOP
     문장;
    END LOOP;

     

    예외부(EXCEPTION)

    EXCEPTION
     WHEN 조건 THEN
       SET 명령어;

     

    실행부(TRANSACTION)

    COMMIT : 트랜잭션 성공

    ROLLBACK : 트랜잭션 비정상 종료로 연산을 다시 하거나 연산 취소

     

    사용자 정의 함수

    사용자 정의 함수 : 프로시저와동일하고 반환에서의 부분만 프로시저와 다르다, 종료시 단일값을 반환

     

    -선언부

    -시작/종료부

    -제어부

    -SQL

    -예외부

    -반환부

     

    트리거 : 삽입, 삭제, 수정등(DML)의 데이터변경 이벤트가 발생하면 DBMS에서 자동 실행 

    트리거 목적 : 무결성 유지, 로그 메시지 출력 등과 작업 자동 실행

    트리거 종류

    -행 트리거 : 변화가 생길때마다 실행

    -문장 트리거 : 단 한번 실행

     

    트리구 구성

    -선언부

    -이벤트부

    -시작/종료부

    -제어부

    -SQL

    -예외부

     

    트리거 인벤트 순서

    -BEFORE : DML 수행 전에 트리거 실행

    -AFTER  : DML 성공 실행 후 트리거 실행

     

    응용 SQL 작성

    데이터 분석 함수 : 총합, 평균 등 데이터 분석을 위해서는 복수행 기준 데이터를 모아 처리

    특성 

    -복수행을 그룹별로 모아놓고 그룹당 단일 계산 결과 반환

    -GROUP BY 구문을 활용하여 복수행 그룹핑

    -SELECT, HAVING, ORDER BY 구문에 활용

     

    데이터 분석 함수의 종류

    -집계 함수 : 전체 행으로부터 하나의 결과값 반환

    -그룹 함수 : 컬럼 값에 따라 그룹화하여 중간 합계 분석 데이터 산출

    -윈도 함수 : 데이터베이스를 사용한 온라인 분석 처리

     

    집계 함수

    -GROUP BY 구문

    -HAVING 구문

     

    집계 함수 종류

    -COUNT : 줄의 수

    -SUM : 컬럼 합계

    -AVG : 컬럼 평균

    -MAX : 컬럼 최대값

    -MIN : 컬럼 최솟값

    -STDDEV : 컬럼간 표준편차

    -VARIAN : 컬럼간의 분산

     

    그룹함수

    -ROLLUP 함수 : 지정 컬럼보다 하나 더 큰 레벨만큼 중간 집계, 소계 등 중간 집계 값을 산출

    -CUBE 함수 : 결합 가능한 모든 값에 다차원 집계

    -GROUPPING SET 함수 : 컬럼 순서와 무관한 결과를 얻을 수 있는 그룹 함수

     

    윈도 함수 = OLAP 함수

    -순위 함수

    -행순서 함수

    -그룸 내 비율 함수

     

    순위 함수

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

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

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

     

    행 순서 함수

    -FIRST_VALUE : 파티션별 윈도우에서 가장 먼저 나오는 값을 찾음

    -LAST_VALUE : 파티션별 윈도우에서 가장 늦게 나오는 값을 찾음

    -LAG : 파티션별 윈도우에서 이전 로우의 값 반환

    -LEAD : 파티션별 윈도우에서 이후 로우의 값 반환

     

    그룹 내 비율 함수

    -RATIO_TO_REPORT :  주어진 그룹에 대해 합을 기준으로 각 로우의 상대적 비율 반환

    -PERCENT_RANK :  : 주어진 그룹에 대해 제일 먼저 나오는것을 0, 제일 늦게 나오는 것을 1로 하면 순서별 백분율

     

    응용 시스템 DBMS 접속 기술

    자바 데이터베이스 연결(JDBC)

    -JDBC는 SQL을 사용하여 DBMS에 질의하고 데이터를 조작하는 API를 제공

     

    MyBatis 

    - SQL MAPPING 기반 오픈 소스 DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML파일로 분리하고 Mapping 을 통해서 SQL을 실행

    -MyBatis는 DBMS 의존도가 높고 SQL 질의언어를 사용하기 때문에 국내 실무 개발 환경에 맞아 많이 사용

    -#{파라미터명} 으로 사용

    장점

    - 복잡한 JDBC 코드 단순화

    -SQL을 거의 그대로 사용

    -Spring 기반 프레임워크와 통합 기능 제공

    -우수한 성능

    -조건에 따라 SQL 구문 자체 변경 가능

     

    데이터 제어어(DCL)

    -GRANT : 데이터 베이스 권한 부여

    -REVOKE : 데이터 베이스 권한 회수

    GRANT 권한 ON 테이블 TO 사용자
    [WITH 권한옵션];
    
    REVOKE 권한 ON 테이블 FROM 사용자
    [CASCADE CONSTRAINTS];

     

     

     

     

     

     

     

     

    댓글

Designed by Tistory.