본문 바로가기
728x90
반응형

교육/Oracle17

Oracle 개발자 수업 48일차 - 인덱스(INDEX) 1. 인덱스(INDEX) 1. 인덱스(INDEX) [ 정의 ] - 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 - 검색(SELECT)을 빠른 속도로 하기 위해서 사용하는 도구 - 특정 키워드(컬럼)만 모아놓은 별도의 테이블 - 인덱스 사용 1) SELECT 작업이 테이블 대상으로 실행 X 2) SELECT 작업이 인덱스 대상으로 실행 O - Oracle에서는 테이블 생성 시 인덱스를 명시적으로 생성하지 않아도 자동으로 생성한다. (PK, UNIQUE 제약이 붙은 컬럼은 자동으로 인덱스가 생성된다.) 1) PK를 WHERE절에 조건으로 SELECT ----> 속도 빠름 2) 일반컬럼을 WHERE절에 조건으로 SELECT ----> 속도 느림 SET .. 2021. 6. 5.
Oracle 개발자 수업 47일차 - 트리거(TRIGGER) 1. 트리거(TRIGGER) 1. 트리거(TRIGGER) [ 정의 ] - 프로시저의 한 종류이다. - 개발자의 호출이 아닌, 미리 지정한 특정 사건이 발생하면 자동으로 실행되는 프로시저 ( 예약 + 이벤트 ) - 특정 테이블 지정 -> 감시 -> (INSERT, UPDATE, DELETE) -> 미리 준비해놓은 프로시저가 자동 실행 - 트리거가 많아지면 시스템 속도가 느려진다. [ 구문 ] CREATE OR REPLACE TRIGGER 트리거명 - 트리거 옵션 BEFORE OR AFTER INSERT OR UPDATE OR DELETE ON 테이블명 [FOR EACH ROW] DECLARE 선언부; BEGIN 실행부; [INSERTING, UPDAING, DELETING] **** EXCEPTION 예외.. 2021. 6. 3.
Oracle 개발자 수업 46일차 - 함수(FUNCTION) 1. 함수 1. 함수 [ 함수와 프로시저 비교 ] 1) 함수 - 반드시 매개 변수가 있어야 한다. (갯수는 0개 이상, 일반적으로는 1개 이상) - 반드시 반환값이 있어야 한다. 2) 프로시저 - 반드시 매개 변수가 있어야 한다. (갯수는 0개 이상, 일반적으로는 1개 이상) - 반환값이 0개 이상 (OUT 파라미터 x N개 생성) [ 함수 작성 방법 ] --JAVA 방법 public int test(int num1, int num2) { return num1 } --DATABASE 방법 CREATE OR REPLACE FUNCTION test (num1 NUMBER, num2 NUMBER) RETURN NUMBER; -- 작성 예시) -- 함수 생성 CREATE OR REPLACE FUNCTION fn.. 2021. 6. 2.
Oracle 개발자 수업 45일차 - 프로시저의 매개변수 1. 프로시저의 매개변수 1. 프로시저의 매개변수 - 프로시저의 매개변수는 딱히 정의보다 예제로 어떤건지 파악하자. [ 기본 사용 예제 ] --매개변수 선언하기 예제 CREATE OR REPLACE PROCEDURE procTest( width NUMBER, -- 매개변수선언 height NUMBER DEFAULT -- 매개변수에 기본값 저장 가능 ) IS vresult NUMBER; BEGIN vresult := width * height; DBMS_OUTPUT.PUT_LINE(vresult); END procTest; -- 출력하기 (선언한 매개변수에 값 입력) BEGIN procTest(100, 200); END; --> 20000 [ 매개변수 모드 ] - 매개 변수의 값을 전달하는 방식 1) IN.. 2021. 6. 1.
Oracle 개발자 수업 44일차 - 커서(CURSOR), 프로시저(PROCEDURE) 1. CURSOR 2. PROCEDURE 1. CURSOR - SELECT INTO절과 유사한 부분이 많으므로 비교하면서 공부하자. [ SELECT INTO & CURSOR ] 1) SELECT INTO - 결과셋의 레코드가 1개일 때만 사용 가능하다. - 결과셋의 컬럼은 1개 이상이다. - 자바의 Iterator 구조와 유사하다. 2) CURSOR - 결과셋의 레코드가 0개 이상일 때 사용 가능하다.(N개) - 컬럼셋의 컬럼은 1개 이상이다. - 일반적으로 결과셋의 레코드가 2개 이상일 때 권장한다. - 기본 문법 DECLARE 커서 선언; BEGIN 커서 열기; LOOP 레코드 접근 -> 커서 사용 END LOOP; 커서 닫기; END; [ SELECT INTO & CURSOR 예제] - 두 쿼리를 .. 2021. 5. 31.
Oracle 개발자 수업 43일차 - 반복문(LOOP, FOR LOOP, WHILE LOOP), 예외처리(EXCEPTION) 1. 반복문(LOOP, FOR LOOP, WHILE LOOP) 2. 예외처리(EXCEPTION) 1. 반복문(LOOP, FOR LOOP, WHILE LOOP) [ LOOP ] - 무한 루프 - 탈출 조건 처리(안하면 무한 반복) - 예제 SET SERVEROUTPUT ON; -- 예제1 BEGIN LOOP DBMS_OUTPUT.PUT_LINE(TO_CHAR(SYSDATE, 'HH24:MI:SS')); END LOOP; END; ----> 현재시간이 무한반복.. -> 에러발생 -- 예제2 DECLARE VNUM NUMBER := 1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE(VNUM); VNUM := VNUM + 1; EXIT WHEN VNUM > 10; --> EXIT: Java의 if문.. 2021. 5. 28.
728x90
반응형