목록Language/Oracle (26)
생각하는 감쟈
Trigger - 특정 테이블에 입력/수정/삭제와 같은이벤트가 발생되명 그 이벤트로 인한 결과로 다른 테이블에 변경동작을 자동으로 수행하는 특수 프로시져 - 나머지 특징은 procedure의 특성과 동일 - **트리거 내부에서 DCL (Data Control Language : COMMIT, ROLLBACK, SAVEPOINT 등) 명령은 사용할 수 없다 - FOR EACH ROW : 행단위 트리거에서 한 트리거 동작이 완료 되기 전에 다른 트리거 호출이 금지 (위반하면 immutable error 발생) -- 트리거는 반환값이 없다 사용형식) CREATE [OR REPLACE] TRIGGER 트리거명 AFTER|BEFORE INSERT|UPDATE|DELETE ON 테이블명 [FOR EACH ROW] ..
Function - 반환 값이 존재 함 - 복잡한 서브쿼리나 자주 사영되는 계산식을 만들어 컴파일하여 일반 API 함수 처험 사용 - 반환 값을 자료 타입을 RETURN 문으로 선언해야하며, 실행영역에서 실제 자료를 반환하는 RETURN 문이 하나 이상 존재해야 함 - 기타 특징은 PROCEDURE와 동일 (사용형식) CREATE [OR REPLACE] FUNCTION 함수명 [{ 변수 [IN] | OUT | INOUT 데이터 타입 [,] : 변수 [IN] | OUT | INOUT 데이터 타입)] RETURN 데이터 타입 IS | AS 선언영역 BEGIN 실행영역 END; 사용예) 회원아이디를 입력 받아 주소를 출력하는 함수를 작성하여 회원번호, 회원명, 주소 마일리지를 출력하시오 CREATE OR RE..
PL/SQL - Procedure Language - SQL - 구조적 언어의 SQL의 제한적 성질( 분기문, 반복븜, 변수의 부재) - block 구조로 여러 ISQL문을 한번에 실행 가능 - 모듈화/캡슐화가 가능 - 서버에 저장디어 빠른 실행과 반복사용 가능 - 표준 문법이 없음( 각 DBMS에 종속적) - 익명블록(Anonymous Block), User Defined Function, Stored PRocedure, Trigger, Package 등 제공 1. 익명 블록 - 이름이 없는 블록 - PL/SQL의 기본 구조 제공 - 선언부/실행부로 구성 (구성요소) DECLARE 선언부 : 변수/상수/커서 선언 BEGIN 실행부 : 처리항 비지니스 로직을 구현한 SQL 문 : [EXCEPTION 예외..
INDEX 객체 - 자료 검색의 효율성을 증대 시키기 휘한 객체 - DB SERVER의 성능은 검색의 효율성에 가장 민감하게 반응 - 인덱스는 자료 검색시 전체를 비교하지 않고 각 행을 대표하는 컬럼 값과 해당 컬럼의 나머지 데이터가 저정된 주소로 구성된 인덱스파일을 별도로 구성하여 검색시 인덱스를 검사하고 일치하는 값의 주소를 참조하여 나머지 자료를 추출함 - DBMS의 부하를 줄여서 DB SERVER의 전체 성능을 향상 - [단점] . 별도의 공간 필요 (인덱스 파일) . 인덱스 파일 관리에 시간과 비용이 소요 . 자료의 지속적인 변경(수정.삭제.삽입)이 발생되는 경우 비효율적 - INDEX의 종류 . UNIQUE / NON-UNIQUE . SINGLE / COMPOSITE INDEX . NORMAL..
SYNONYM (동의어) 객체 - 오라클에 사용되는 객체에 또 다른 이름을 부여 - SELECT 문에 컬럼 별칠이나 테이블 별칠은 해당 쿼리의 해당 구역에서 유효하나 동의어 객체는 해당 객체는 DBMS가 실행 할 수 있는 모든 곳에서 적용 됨 - 다른 소유자의 객체를 접근할때 "스키마명.객체명"으로 접근할 여 긴 접근이름이 필요 : 이를 대신할 수 있는 기능이 동의어 사용예) CREATE [OR REPLACE] SYNONYM 동의어이름 FOR 객체명 CREATE OR REPLACE SYNONYM EMP FOR HR.EMPLOYEES; 사용예) 급여가 3000 미만 사원 조회 SELECT EMPLOYEE_ID AS 사원번호, EMP_NAME AS 사원명, SALARY AS 급여 FROM EMP --"HR"..
SEQUENCE 객체 - 자동으로 증가 또는 감소되는 번호를 생성하기 위한 객체 - 테이블에 독립적 - 주로 적당한 PK를 선정할 수 없는 경우 (ex. 게시판의 게시글 번호 등) 사용 - 지나간 시퀀스는 값은 재 사용할 수 없다. (사용형식) CREATE SEQUENCE 시퀀스명 [START WITH 값] - 시작 값, 기본값 MINVALUE [INCREMENT BY 값] - {+}증가/{-}감소 값 기본은 1 [MAXVALUE 값 | NOMAXVALUE] - 최대 값 NOMAXVALUE 가 DEFAULT 이며 10^27 [MINVALUE 값 | NOMINVALUE] - 최소 값 NOMINVALUE 가 DEFAULT 이며 1임 [CYCLE | NOCYCLE] - DEFAULT 는 NOCYCLE 이며 최..