Database/Oracle 3

[Oracle] 프로시저, 사용자 정의 함수, 트리거

1. 절차형 SQL이란? I) 개념 SQL도 일반 프로그램 언어와 유사하게 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어이다. II) 종류 1) 프로시저 일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 2) 사용자 정의함수 일련의 SQL 처리를 수행하고 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL 3) 트리거 데이터베이스 시스템에서 CURD 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL III) 특징 - 단일 SQL 문장으로 실행하기 어려운 연속적인 작업을 처리하는데 적합하다. - DBMS 내부에서 직접 처리하기 때문에 일반적으로 입출력 데이터가 적다. IV) 필수 구성 요소 - DECLARE(선언) : 대상의 이름 및 변수등을 선언 - BEGIN(시작..

Database/Oracle 2023.01.16

[Oracle] 페이지 처리(Offset-based, Cursor-based)

페이지네이션(Pagination)? 서버에서 데이터를 가져올 때 모든 데이터를 한번에 가져올 수 없다. 따라서 특정한 정렬 기준에 따라 지정된 갯수의 데이터를 가져오는 것이 필요한데 이를 "페이지네이션"이라 한다. 예를들어 만개의 데이터가 저장되어 있을 때 한번에 만개를 전달하는 대신 0번~50번을 먼저 전달 후 다음 요청에서 50번 부터 100번까지 제공하는 것이다. 이렇게 하면 네트워크의 낭비를 막고 빠른 응답을 기대할 수 있기 때문에 널리 사용해왔다. 페이지네이션은 두 가지 방식으로 처리가 가능하다. 1. 오프셋 기반 페이지 네이션 (Offset-based Pagination) 2. 커서 기반 페이지 네이션(Cursor-based Pagination) 1. 오프셋 기반 페이지네이션 (Offset-b..

Database/Oracle 2021.01.06

[Oracle] 중복 제거 distinct와 group by 비교

아래의 예제는 동일한 결과를 반환한다. DISTINCT사용 SELECT DISTINCT DEPTNO FROM EMP; GROUP BY사용 SELECT DEPTNO FROM EMP GROUP BY DEPTNO; 그러면 GROUP BY와 DISTINCT의 기능은 무슨 차이가 날까? 집계함수를 사용하여 특정 그룹으로 구분할 때는 GROUP BY절을 사용하고, 특정 그룹 그분없이 중복된 데이터를 제거할 경우에는 DISTINCT절을 사용한다. 기능면에서 차이가 있으니 성능면에서도 DISTINCT가 더 빠르다고 볼 수 있다. 따라서 정렬기능이 필요없는 작업에서는 DISTINCT를 사용해주는 것이 좋다.

Database/Oracle 2020.12.30