8과목 : SQL 응용
프로시저
■ 개념
절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜젝션 언어
■ 구성
선언부(DELCLARE) 시작/종료부(BEGIN/END) 제어부(CONTROL) SQL 예외부(EXCEPTION) 실행부(TRASACTION)
디비컨SET
사용자 정의함수 (User-Difined Function)
■ 개념
절차형 SQL을 활용하여 일련의 SQL처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
■ 구성
선언부(DELCLARE) 시작/종료부(BEGIN/END) 제어부(CONTROL) SQL 예외부(EXCEPTION) 반환부(RETURN)
디비컨SER
트리거 (Trigger)
■ 개념
특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에서 자동적으로 실행되도록 구현하는 프로그램
■ 구성
선언부(DELCLARE) 이벤트부(EVENT) 시작/종료부(BEGIN/END) 제어부(CONTROL) SQL 예외부(EXCEPTION)
디이비컨SE
프로시저 SQL
- SELECT (데이터조회) : 검색 명령
- INSERT (데이터생성) : 삽입
- UPDATE (데이터갱신) : 수정/변경
- DELETE (데이터삭제) : 삭제
프로시저 실행부
- COMMIT : 성공적으로 하나의 트랜젝션이 끝나고 DB가 일관적인 상태에 있을 때 하나의 트랜젝션이 끝났을 때 사용하는 연산
- ROLLBACK : 트랜젝션이 비정상적으로 종료되어 트랜젝션 원자성이 깨질 경우 처음부터 다시 시작하거나 부분적으로 연산을 취소하는 연산
트리거의 목적
- 이벤트와 관련된 테이블의 데이터 삽입, 추가, 삭제 작업을 DBMS가 자동적으로 실행시키는데 활용
- 데이터 무결성 유지 / 로그메세지 출력 등의 별도 처리를 위해 트리거 사용
트리거 이벤트 순서
BEFORE - 이벤트부의 테이블에 대한 INSERT/UPDATE/DELETE를 수행하기 전에 트리거가 실행하도록 저장하는 명령
AFTER - 이벤트부의 테이블에 대한 INSERT/UPDATE/DELETE가 성공적으로 실행되었을 때만 트리거가 실행하도록 지정하는 명령
TRUNCATE
데이터가 하나도 없이 테이블 구조만 남은 최초 테이블이 만들어진 상태로 되돌아가도록 하는 명령
집계함수
- 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수
- 집계함수 구문 : GROUP BY / HAVING 구문
■ COUNT : 줄 수
■ SUM : 합계
■ AVG : 평균
■ MAX : 최대값
■ MIN : 최소값
■ STDDEV: 표준 편차
■ VARIAN: 분산
그룹함수
- 테이블 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
- ROLLUP 함수 / CUBU / GROUPING SETS -> 8 ~ 29 (?)
MyBatis
- SQL Mapping 기반 오픈 소스 Access Framework로, DBMS에 질의하기 위한 SQL쿼리를 별도의 XML파일로 분리하고 Mapping을 통해서 SQL을 실행한다.
- 장점 : JDBC 코드 단순화 / SQL 그대로 사용 / Spring frame work랑 통합가능 / 우수성능
데이터 제어어 - DCL
데이터베이스 관리자가 데이터 보안, 무결성 유지, 회복을 위해 관리자가 사용하는 제어용 언어
GRANT(권한 부여) 명령문
- DBA가 사용자에게 DB에 대한 권한을 부여하는 명령어
- GRANT 권한 ON 테이블 TO 사용자 [WITH 권한 옵션];
REVOKE(권한 취소) 명령어
- DBA가 사용자에게 DB에 대한 권한을 회수하는 명령어
- REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTRAINTS];
CASCADE CONSTRAINTS
연쇄적인 권한 해제 명렁어