DataBase/oracle
-
oracle 인덱스DataBase/oracle 2021. 1. 17. 16:24
인덱스 : 어떤 데이터가 어디에 있는지 그 주소를 가지고 있는 주소록과 같은 의미의 데이터베이스 객체 인덱스 = 데이터 + rowid(주소) 인덱스의 생성 원리 : table full scane -> 정렬 -> 블록에 기록 ** 정렬하는 메모리 공간 : pga (이후에 모자르면 : temporary tablespace) [1] unique 인덱스 create unique index 인덱스 명 on 테이블명(컬럼); [2] non unique 인덱스 create index 인덱스 명 on 테이블명(컬럼); 1) empno가 7369인 컬럼의 데이터를 찾는다 2) 이 때 rowid라고하는 위치값을 이용해서 캐시에 저장하고 3) 캐시에 있는 내용을 가져온다 인덱스의 종류 [1] B-tree 인덱스 : 데이터 ..
-
oracle 테이블스페이스DataBase/oracle 2020. 4. 26. 17:31
테이블 스페이스 : 데이터를 저장할 때 사용하는 논리적 저장공간 (하드디스크에서는 실제 여러 개의 물리적인 데이터 파일로 구성될 수 있음) 1) 시스템 테이블스페이스 (기본적으로 오라클에서 제공해주는 테이블스페이스) Data Dictionary 정보, 프로시저, 트리거, 패키지, 시스템 rollback segment, 사용자데이터 포함 ex) 데이터 변경 후 commit 을 하지 않았을 경우 오라클은 rollback을 위한 데이터도 가지고 있어야 하는데 이러한 공간이 시스템 rollback segment 2) Non-System 테이블스페이스 Temporary segment, applicationData segment degment, index, 사용자 데이터 segment ex) index를 사용하기위..
-
oracle PL/SQL_트리거DataBase/oracle 2020. 4. 26. 16:27
트리거 : 데이터베이스가 미리 정해 놓은 조건을 만족하거나, 특정 이벤트가 발생하면 자동적으로 수행되는 동작 개발자가 호출하여 사용할 수 없다.(오라클에서 자동적으로 실행되는 PL/SQL 블록을 의미) 가장 많이 사용되는 트리거의 유형 : insert, update, delete의 결과로 실행되는 DML트리거 ***구문형식 create [or replace] trigger 트리거이름 timming[before | after] event [insert | update | delete ] on 테이블명 begin 실행명령; end; 1-1) 테이블을 생성 후 테이블에 insert가 될 때마다 msg를 출력하는 트리거를 만든다 1 2 3 4 5 6 7 8 9 10 11 12 create table sample..
-
oracle PL/SQL_패키지DataBase/oracle 2020. 4. 20. 23:52
패키지 : 연관성있는 함수나 프로시저를 그룹으로 모아놓은 개념 패키지의 구성 : 선언부 + 몸체부 ( 선언부에서 선언되지않아도 몸체부에서 사용가능. but 권장x) ***구문형식 create [or replace] package 패키지명 is [as] procedure 프로시저1이름, procedure 프로시저2이름, .... end; create [or replace] package body 패키지명 is [as] procedure 프로시저이름 subprogram bodis : 실제 작동하게 될 서브프로그램(프로시저or함수) end; 패키지는 여러 환경하여 호출되어 실행 가능 패키지에대한 실행 권한을 가진 사용자만 실행시킬 수 있다 선언부와 몸채부 모두 삭제 or 몸체부만 삭제 가..
-
oracle PL/SQL_서브프로그램_함수DataBase/oracle 2020. 4. 20. 02:32
프로시저 : in, out, in out모드를 사용여 값을 반환 하기도 하고, 반환하지 않고 종료 할 수 있다. 함수 : 작업을 수행한 후에 결과를 반환한다 ***함수의 구문 형식 create [or replace ] function 함수명 파라미터1 데이터타입, 파라미터2 데이터타입, ... return datatype is [as] PL/SQL 블럭; 기본함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace function dept_max_sal ( dept_id employees.department_id%type) return number is max_sal employees.salary%type; begin selec..
-
oracle PL/SQL_서브프로그램_프로시저(procedure)DataBase/oracle 2020. 4. 19. 23:43
PL/SQL 서브프로그램: 데이터베이스에 저장된 PL/SQL - 서브프로그램: 내장된 함수, 프로시저 1) 이름이 없는 PL/SQL 블록 2) 사용할 때 마다 컴파일이 필요 3) 데이터베이스에 저장되어있지 않다 4) 다른 응용프로그램에서 사용할 수 없다 5) 값을 반환할 수 없다 6) 매개변수 사용할 수 없다 1) 이름이 있는 PL/SQL 블록 2) 최초 실행될 때 한번만 컴파일 한다 3) 데이터베이스에 저장되어 있다 4) 다른 응용프로그램에서 사용할 수 있다 5) 함수일 경우 값을 반환할 수 있다 6) 매개변수를 사용할 수 있다 1) 특정 처리를 위한 서브 프로그램의 한 유형 2) 단독으로 실행 가능하며 다른 응용프로그램에서 호출되어 ..
-
oracle PL/SQL_예외처리(Exception)DataBase/oracle 2020. 4. 19. 20:33
--에러 1. 컴파일 에러 : PL/SQL 블록이 parse되는 동안에 발생하는 에러(ex. 사용자 오타) 2. 런타임 에러 (=exception) : PL/SQL 블록이 실행되는 동안 발생하는 에러 a. 오라클 예외 오라클에서 제공되는 예외 ㄱ. paredefined ORACLE EXCEPTION 사전에 정해진 예외 ACCESS INTO NULL : 정의되지 않은 오브젝트 속성에 값을 할당하고자 했을 때 예외 CASE_NOT_FOUND : case문의 where절에 해당되는 조건이 없고 else절에도 없을경우에 발생 COLLECTION_IS_NULL : 선언되지 않은 컬렉션(nested table,varray)에 EXISTS 이외의 메소드를 사용했을 때 발생 CURSOR_ALREADY_OPEN : 이미..
-
oracle PL/SQL_ 커서(cursor)DataBase/oracle 2020. 3. 29. 15:24
커서 (cursor) : 쿼리문에의해 반환되는 결과값들을 저장하는 메모리 공간 패치 (Fatch) : 커서에서 원하는 결과값을 추출하는 것 1. 커서의 종류 1) 명시적(Explicit) 커서 : 사용자가 선언하여 생성 후 사용하는 sql커서. 주로 여러개의 행을 처리하고자 할 때 사용. 2) 묵시적(implicit) 커서 : 오라클에서 자동으로 선언해주는 sql커서. 사용자는 생성 유무를 알 수 없다. 2. 커서의 속성 1) %Found : 할당할 레코드가 있는경우 true값 반환 2) %isOpen : 커서가 오픈상태일 경우 true값 반환 3) %NotFound : 할당할 레코드가 없는 경우 true값 반환 4) %RowCount : 카운터역할을 한다. 오픈됐을경우 0, 패치 발 생 때마다 1씩 증..