★ 트리거(Trigger) 프로시저의 한 종류 개발자가 호출하는게 아니라, 미리 지정한 특정 사건이 발생하면 자동으로 실행되는 프로시저 예약(사건) > 사건 발생 > 프로시저 호출 특정 테이블 지정 > 감시(insert or update or delete) > 미리 준비해 놓은 프로시저 호출 트리거 사용 양식 create or replace trigger 트리거명 before|after insert|update|delete on 테이블명 [for each row] declare 선언부; begitn 구현부; exception 예외처리부; end; ■ 사용 ex) ex 1) tblInsa > 직원 삭제 create or replace trigger trgInsa before --삭제하기직전에 프로시저를 실..
★ 저장 함수(Stored Function) 저장 프로시저와 동일 반환값이 반드시 존재 > out 파라미터 사용(X) > return 문 사용(O) out 파라미터 사용 안함 > out 동작 가능 in 파라미터 사용함 이 특성때문에 함수는 프로시저와 조금 다른 상황에서 사용 ■ 사용 ex) ex 1) 선언 create or replace function fnSum ( pnum1 in number, pnum2 in number ) return number is begin return pnum1 + pnum2; end fnSum; 호출 방법 1 declare vresult number; begin -- 프로시저 out > 개수 1개 이상 -- 함수 return > 개수 딱 1개 vresult := fnSum..
★ 프로시저(PROCEDURE) 1. 익명 프로시저 1회용 프로시저 2. 실명 프로시저 재사용 오라클에 저장 저장 프로시저(Stored Procedure) 매개변수 구성 / 반환값 구성 > 자유 저장 함수(Stored Function) 매개변수 필수/반환값 필수 > 고정 익명 프로시저 선언 방법 [declare 변수 선언; 커서 선언;] begin 구현부; [exception 처리부;] end; 저장 프로시저 선언 방법 create [or replace] procedure 프로시저명 is(as) [변수 선언; 커서 선언;] begin 구현부; [exception 처리부;] end; ■ 프로시저 ex) 1. 익명 프로시저 declare vnum number; begin vnum := 100; dbms_ou..
★ MOVIE RANK DATA https://movie.naver.com/movie/sdb/rank/rmovie.naver 랭킹 : 네이버 영화 영화, 영화인, 예매, 박스오피스 랭킹 정보 제공 movie.naver.com 현재 네이버 영화에 있는 순위 목록을 크롤링 하여, 1. 개념적 모델링 2. 논리적 모델링 3. 물리적 모델링 4. DDL 생성 5. DML 생성 6. SELECT 검증 순으로 진행하였다. ■ STEP 1. 데이터 크롤링 현재 랭킹에 있는 정보와 영화 상세 정보들을 크롤링 하여 excel에 종합하였다. 컬럼은 총 21 컬럼으로, 1위 ~ 50위에 위치하는 영화들을 가져왔다. 1. 순위 2. 제목 3. 개봉년도 4. 관람객 평점 5. 평론가 평점 6. 네티즌 평점 7. 개요 8. 장르..
★ 트랜잭션(Transaction) 데이터를 조작하는 업무의 시간적 단위 일련의 사건의 집합. ex) 은행에서 돈을 인출하는 행동(1~8번 행동) 1개 이상의 명령어로 구성된 작업 단위 트랜잭션 명령어 DCL, TCL 1. commit : 현재 작업한 내용을 저장 2. rollback : 현재 작업을 취소하고 되돌림 3. savepoint : 현재 작업한 내용을 현재 지점까지 save 지정해놓음 ■ 사용 ex) ex 1) commit; -- 이 시각부터 새로운 트랜잭션이 시작된다!! > insert, update, delete만 트랜잭션에 포함된다. delete from tblTran where name = '박문수'; select * from tblTran; -- 메모리 -- 우리가 하는 모든 inse..
★ Hierarchical Query 오라클 전용 레코드 관계과 서로 상하 수직구조일때 사용 서로 다른 테이블간의 관계가 수직 구조일 때 사용 자기 참조를 하는 테이블에서 사용 ex) 카테고리, 답변형 게시판, 조직도 등.. 트리 구조에 사용 사용 양식 /* 구문 - start with절 + connect by 절 계층형 쿼리 의사 컬럼 a. prior > 자기와 연관된 부모 레코드 참조 b. level > 세대수(depth) */ ■ 사용 테이블 생성 ex1) 컴퓨터 구조 create table tblComputer ( seq number primary key, -- 식별자 name varchar2(50) not null, -- 부품명 qty number not null, -- 수량 pseq numbe..
★ WITH 절 인라인뷰(from절 서브쿼리)에 이름을 붙이는 기술 with절 실행 방식 1. Materialize 방식 > 임시 테이블이 2번 이상 사용되면 내부에 임시 테이블 생성 + 반복 재사용 2. Inline 방식 > 임시 테이블 생성없이 매번 인라인 쿼리를 반복 실행 양식 - 양식 with 임시테이블명 as ( 결과셋 select ) select 문 [WITH ] - WITH 절 SELECT column_list - SELECT 절 FROM table_name - FROM 절 [WHERE search_condition] - WHERE 절 [GROUP BY group_by_expression] - GROUP BY 절 [HAVING search_condition] - HAVING 절 [ORDER ..
★ Rank 순위 함수 rownum의 사용을 여러가지 용도로 구현해 놓은 함수 1. rank() over() ranck() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값이 발생하면 동일한 순위를 부여하고, 중복값의 개수만큼 건너뛰기 한다. 2. dense_rank() over() dense_ranck() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값이 발생하면 동일한 순위를 부여하고, 그 뒤의 순위는 건너뛰기 없이 순차적으로 부여한다. 3. row_number() over() row_number() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값과 상관없이 순차적으로 부여 직접 rownum을 사용한 결과와 동일하다 ■ 사..