- 프로시저:
개념: 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어
구성: 선언부[Declare] 시작/종료부[Begin/End] 예외부[Exception] 실행부[Transaction]
암기: 디비컨 set
- 사용자 정의 함수 User-Difined Function
개념: 절차형 SQL을 활용하여 일련의 SQL 처리를 수행하고 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
구성: 선언부[Declare] 시작/종료부[Begin/End] 예외부[Exception] 반환부[Return]
암기: 디비컨 ser
- 트리거 Trigger
개념: 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에 자동적으로 실행되도록 구현하는 프로그램
구성: 선언부[Declare] 이벤트부[Event] 시작/종료부[Begin/End] 예외부[Exception]
암기: 디이비컨 se
* 프로시저 SQL
- SELECT : 데이터 조회: 검색 명령
- INSERT : 데이터 생성: 삽입
- UPDATE : 데이터 변경: 수정/변경
- DELETE : 데이터 삭제: 삭제
* 프로시저 실행부
- COMMIT: 성공적으로 하나의 트랜잭션이 끝나고 DB가 일관적인 상태에 있을 때 하나의 트랜잭션이 끝났을 때 사용하는 연산
- ROLLBACK: 트랜잭션이 비정상적으로 종료되어 트랜잭션 원자성이 깨질 경우 처음부터 다시 시작하거나 부분적으로 연산을 취소하는 연산
* 트리거의 목적
- 이벤트와 관련된 테이블의 데이터 삽입, 추가, 삭제 작업을 DBMS가 자동적으로 실행시키는데 활용
- 데이터 무결성 유지/ 로그메세지 출력 등의 별도 처리를 위해 트리거 사용
* 트리거 이벤트 순서
BEFORE - 이벤트부의 테이블에 대한 INSERT/UPDATE/DELETE 를 수행하기 전에 트리거가 실행하도록 지정하는 명령
AFTER - 이벤트부의 테이블에 대한 INSERT/UPDATE/DELETE가 성공적으로 실행되었을 때만 트리거가 실행하도록 지정하는 명령
* TRUNCATE
- 데이터가 하나도 없이 테이블 구조만 남은 최초 테이블이 만들어진 상태로 되돌아가도록 하는 명령
* 집계함수
- 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
- 집계함수 구문: GROUP BY/ HAVING 구문

* 그룹함수
- 테이블 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
- ROLLUP 함수/ CUBU/ GROUPING SETS
* MyBatis
- SQL Mapping 기반 오픈 소스 Access Framework로 DBMS에 질의하기 위한 SQL 쿼리를 별로의 XML파일로 분리하고 Mapping 을 통해서 SQL 을 실행한다.
- 장점: JDBC 코드 단순화/ SQL 그대로 사용/ Spring frame work랑 통합가능/ 우수한 성능
* 데이터 제어어 DCL
- 데이터베이스 관리자가 데이터 보안, 무결성 유지, 회복을 위한 관리자(DBA)가 사용하는 제어용 언어
* GRANT(권한 부여) 명령문
- DBA가 사용자에게 DB에 대한 권한을 부여하는 명령어
- GRANT 권한 ON 테이블 TO 사용자 [WITH 권한 옵션];
* REVOKE(권한 취소) 명령어
- DBA가 사용자에게 DB에 대한 권한을 회수하는 명령어
- REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTAINTS];
* CASCADE CONSTAINTS : 연쇄적인 권한 해제 명령어