[Oracle] Index의 종류
2020. 9. 21. 00:17
SQL
[ FBI Index ] 함수 기반 인덱스 CREATE INDEX idx_sal_fbi ON emp(sal); -- sal 인덱스를 사용하지 않은 조건 => index suppressing error SELECT ename FROM emp WHERE sal+200 = 1000; -- 속도 빠르다 ~~~ CREATE INDEX idx_sal_fbi1 ON emp(sal+200); SELECT 문을 통해 sal + 200 을 조건으로 검색하고자 할 때, idx_sal_fbi 인덱스와 같이 sal 을 기준으로 생성하면 해당 인덱스를 사용하지 않게 된다. => Index Suppressing Error => sal+200 을 기준으로 인덱스를 재생성 [ Descending Index ] 내림차순 인덱스 CREA..
[Oracle] Index 인덱스의 이해 1
2020. 8. 27. 23:11
SQL
Index An index is a database structure that provides quick lookup of data in a column or columns of a table. 어떤 데이터가 어디에 있는지 그 주소를 가지고 있는 주소록과 같은 의미의 데이터베이스 객체 [ 데이터베이스 시스템에서 데이터를 찾는 과정 ] 유저 A가 데이터베이스에서 '홍길동' 이라는 정보를 찾으려고 쿼리를 DB에 보낼 때, 데이터베이스 시스템에서는 자주 사용하는 정보를 캐시 메모리에 저장해두고 사용 '홍길동'이라는 정보가 캐시 메모리에 없을 때, HDD에서 정보를 가져와서 캐시에 저장 후 유저에게 제공 HDD에 정보가 너무 많을 때는 블록 형태로 저장 된 데이터를 전체 스캔하면 하나의 데이터를 찾는데 너무 많..
[Oracle] 트리거 Trigger, DML Trigger
2020. 8. 27. 21:34
SQL
Trigger 데이터베이스가 미리 정해놓은 조건들을 만족하거나, 특정 이벤트가 발생하면 자동으로 수행하는 동작 개발자가 호출하여 사용할 수 없다. ( 오라클에서 자동으로 실행되는 PL/SQL BLOCK ) [ 가장 많이 사용되는 트리거 유형 ] Insert, Update, Delete의 결과로 실행되는 DML Trigger [ 구문 형식 ] create [or replace] [ Trigger Name ] timming [ before | after ] event [ insert | update | delete ] on [ Table Name ] begin 실행 명령; end; 예제 1 - 부서가 추가되면 자동으로 출력되는 Trigger -- 샘플 테이블 생성 CREATE TABLE sample_dept..
[Oracle] PL/SQL Package 패키지의 이해
2020. 8. 7. 22:50
SQL
Package In PL/SQL, a package is a schema object that contains definitions for a group of related functionalities. A package includes variables, constants, cursors, exceptions, procedures, functions, and subprograms. It is compiled and stored in the Oracle Database. 연관성이 있는 함수나 프로시저를 그룹으로 모아놓은 개념 [ 구성 ] Specification(or Declaration) + Body 패키지 선언부에 선언되지 않아도 본문에서 사용 가능 ( 권장사항은 X ) Toad에서는 Spec이라고 ..
[Oracle] PL/SQL 함수 Function
2020. 7. 26. 21:57
SQL
Function Stored functions are very similar to procedures, except that a function returns a value to the environment in which it is called. 프로시저는 in, out, in out 모드를 사용하여 값을 반환 또는 반환하지 않을 수 있으나, 함수는 작업을 수행한 후에 결과를 반환한다. 함수의 구문 형식 create [or replace] function [ Function Name ] parameter1 parameter datatype1, parameter2parameter datatype2 ... return datatype -- 반환값 설정 is[as] pl/sql block; 예제 1 - 특정..
[Oracle] PL/SQL 서브 프로그램의 이해, 프로시저
2020. 7. 26. 20:59
SQL
PL/SQL SUB PROGRAM 데이터베이스에 저장 된 PL/SQL 프로시저, 함수 익명 블록의 특징 이름이 없는 PL/SQL BLOCK 사용할 때마다 컴파일 필요 다른 응용 프로그램에서 사용 불가 값을 반환할 수 없다 매개변수 사용 불가 서브 프로그램의 특징 이름이 있는 PL/SQL BLOCK 데이터베이스에 저장되어 있는 객체이므로, 최초 실행될 때만 컴파일 다른 응용 프로그램에서 사용 가능 값을 반환할 수 있다 (함수) 매개변수 사용 가능 Procedure 프로시저 특정 처리를 위한 서브 프로그램의 한 유형 단독으로 실행 가능하며, 다른 응용 프로그램에서 호출되어 실행 가능하다. 구문 형식 create procedure [ procedure name ] parameter 1 [in, out, in ..
[Oracle] PL/SQL 예외 처리의 개념, 종류, 사용법
2020. 7. 16. 21:29
SQL
1. Compile Error PL/SQL Block이 Parse 되는 동안 발생하는 오류 ( 오탈자 등의 이유로 ) 2. Runtime Error PL/SQL Block이 실행되는 동안 발생하는 오류 [ 오라클 예외 ] 오라클에서 제공되는 예외 1. Predefined ORACLE Exception: 사전에 정해진 예외 ACCESS_INTO_NULL ORA-06530 정의되지 않은 오브젝트 속성에 값을 할당하고자 했을 때 발생하는 예외 CASE_NOT_FOUND ORA-06592 CASE문의 WHEN절에 해당되는 조건이 없고 ELSE 절도 없을 경우에 발생되는 예외 COLLECTION_IS_NULL ORA-06531 선언되지 않은 컬렉션 (nested table, varray)에 EXISTS 이외의 메..
[Oracle] PL/SQL Cursor 의미 & 사용법
2020. 7. 11. 23:24
SQL
Cursor 커서 A Cursor is a pointer to this context area. 쿼리문에 의해 반환되는 결과값들을 저장하는 메모리 공간에 대한 포인터 - Fetch Cursor에서 원하는 결과값을 추출하는 것 - Cursor의 종류 Explicit Cursor 명시적 커서 사용자가 선언하여 생성 후 사용하는 SQL Cursor 주로 여러개의 행을 처리하고자 할 경우 사용 implicit Cursor 묵시적 커서 오라클에서 자동으로 선언해주는 SQL Cursor 사용자는 생성 유무를 알 수 없다. 주로 1개의 행을 처리 - Cursor의 속성 %Found Fetch가 발생하면 true 반환 -> 할당할 레코드가 있으면 true 반환 %isOpen 커서가 오픈 상태일 경우 true 반환 %N..