-
(정보처리기사 실기) 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];
'정보처리기사 > 실기' 카테고리의 다른 글
(정보처리기사 실기) 소프트웨어 개발 보안 구축 (0) 2020.07.22 (정보처리기사 실기) 애플리케이션 테스트 관리 (0) 2020.07.22 (정보처리기사 실기) 화면 설계 (0) 2020.07.21 (정보처리기사 실기) 인터페이스 구현 (0) 2020.07.21 (정보처리기사 실기) 서버 프로그램 구현 (0) 2020.07.20