본문 바로가기

전체 글

Oracle_16. TRIGGER 더보기 트리거 내가 트리거로 지정한 테이블에 DML문(INSERT, UPDATE, DELETE) 등에 의해 변경사항이 발생할 경우 "자동으로" 매번 실행할 내용을 정의해 둘 수 있는 객체 EX) 회원 탈퇴시 기존의 회원테이블에 데이터를 DELTE한 후 곧바로 탈퇴된 회원들만 따로 보관하는 테이블에 자동으로 INSERT 시킬때 신고 횟수가 일정수를 넘었을때 회원을 블랙리스트 처리 하고자 할때 입출고에 대한 데이터가 기록될 때마다 해당 상품에 대한 재고수량을 매번 수정해줘야 할때 * 트리거 종류 SQL문 시행시기에 따른 분류 > BEFORE TRIGGER : 내가 지정한 테이블에 DML(INSERT, UPDATE, DELETE)가 발생되기 전에 트리거 먼저 실행 > AFTER TRIGGER : 내가 지정한 .. 더보기
Oracle_15. PROCEDURE, FUNCTION ▶ PROCEDURE ▶ FUNCTION 더보기 프로시져 PL/SQL문을 저장해서 이용하는 객체 필요할 때마다 내가 작성한 PL/SQL문을 편하게 호출 가능하다. * 프로시져 생성방법 [표현식] CREATE [OR REPLACE] PROCEDURE 프로시저명1[(매개변수)] IS BEGIN 실행부분 END; * 프로시져 실행방법 EXEC 프로시져명; 더보기 * 프로시져 장점 1. 처리속도가 빠르다. 2. 대량 자료처리시 유리함. EX) DB에서 대용량의 데이터를 SELECT문으로 받아온 후 자바에서 처리하는 경우 VS DB에서 대용량의 데이터를 SELECT한 후 자바로 넘기지 않고 직접 DB에서 처리하는 경우 DB에서 처리하는 것이 성능이 좋음(데이터를 넘길때마다 네트워크 비용 발생) * 프로시져 단점 .. 더보기
Oracle_14. PL/SQL ▶ PL/SQL (Procedural Language extension to SQL) : SQL을 확장한 절차적 언어 1. DECLARE 선언부(생략가능) 1_1) 일반타입 변수 선언 및 초기화 1_2) 레퍼런스 타입 변수 선언 및 초기화 1_3) ROW타입 변수 타입 2. BEGIN 실행부 2_1) IF조건식 THEN 실행내용 2_2) IF 조건식 THEN 실행내용 ELSE 실행내용 2_3) IF 조건식1 THEN 실행내용 ELSIF 조건식2 THEN 실행내용 [ELSE 실행내용] END IF; 2_4) CASE 비교대상자 WHEN 동등비교값1 THEN 결과값1 WHEN 비교값2 THEN 결과값2 ELSE 결과값 END; 1) BASIC LOOP문 2) FOR LOOP문 3) WHILE LOOP문 3... 더보기
Oracle_13. Object<INDEX> 더보기 책에서 '목차'같은 역할을 하는 DBMS객체 데이터를 빠르게 검색하기 위한 구조로 데이터의 정렬과 탐색과 같은 DBMS 성능향상을 목적으로 사용 테이블에서 데이터를 조회(SELECT)할때 인덱스가 없다면 테이블의 모든 데이터를 하나하나 뒤져서(FULL-SCAN) 내가 원하는 데이터를 검색한다. 인덱스 설정을 해두면 테이블의 모든행을 뒤지지 않고 내가 원하는 조건만 빠르게 검색이 가능하다. 인덱스로 설정한 칼럼의 데이터들을 별도로 "오름차순으로 정렬"하여 특정 메모리 공간에 물리적 주소값과 실제 칼럼의 값을 함께 저장시킨다. 더보기 ▶ 인덱스의 장점 1) WHERE절에 인덱스 칼럼을 사용시 훨씬 빠르게 연산 가능 2) ORDER BY 연산을 사용할 필요가 없다. (이미 정렬되어 있다.) 3) MIN.. 더보기
Oracle_12. Object<SEQUENCE> SEQUENCE ? 시퀀스 생성 시퀀스 사용 구문 시퀀스 변경 시퀀스 삭제 시퀀스를 사용할 수 없는 구문 ▶ SEQUENCE ? : 자동으로 번호를 발생시켜주는 역할을 하는 객체(자동번호 부여기) 정수값을 자동으로 순차적으로 발생시켜준다(연속된 숫자) 순차적으로 "겹치지 않는" 숫자를 채번할 때 사용 ex) 사번, 회원번호, 게시글번호, 이미지번호 등등.. [표현법] CREATE SEQUENCE 시퀀스명 START WITH 시작숫자 -> 처음 발생시킬 시작값 설정(DEFALUT 1) INCREMENT BY 증가값 -> 증가시킬 다음값 (DEFALUT 1) MAXVALUE 최대값 -> 최대값 지정 MINVALUE 최소값 -> 최소값 지정 CYCLE/NOCYCLE -> 값의 순한여부(최대값 까지 증가 후 초.. 더보기
Oracle_11. Object<VIEW> VIEW 뷰 VIEW 생성방법 뷰 칼럼에 별칭 부여하기 생성된 뷰를 이용해서 DML 하기 DML이 불가능한 경우 VIEW에 사용 가능한 옵션들 ▶ Object ? : DB를 이루는 논리적인 구조물들 ex) TABLE, USER, VIEW, SEQUENCE, INDEX, PACKAGE, TRIGGER, FUNCTION, PROCEDURE... : SELECT문을 수행한 수행결과(RESULTSET)를 저장해 둘 수 있는 객체 (자주 쓰일 SELECT문을 VIEW에 저장해두면 매번 긴 SELECT문을 다시 기술할 필요가 없다) => 조회를 위한 임시테이블 같은 존재이며 실제 데이터가 담겨있는 것은 아니다. => 조회를 위한 서브쿼리문만 저장하며 VIEW 호출시 서브쿼리를 실행시킨다. 1. VIEW 생성방법 [.. 더보기
Oracle_10. TCL(COMMIT, ROLLBACK) TCL 트랜잭선(TRANSACTION) COMMIT ROLLBACK SAVEPOINT 포인트명; ROLLBACK TO 포인트명; * TCL (TRANSACTION CONTROL LANGUAGE) 트랜잭션을 제어하는 언어 * 트랜잭선(TRANSACTION) - DB의 논리적 작업 단위 - 데이터의 변경사항(DML에 의한)들을 하나의 트랜잭션으로 묶어서 처리 => COMMIT(확정)하기 전까지의 변경사항들을 하나의 트랜잭션으로 모아둔다. - 트랜잭션의 대상이 되는 SQL : INSERT, UPDATE, DELETE * 트랜잭션의 종류 - COMMIT : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영하겠다는 것을 의미 - ROLLBACK : 변경사항들을 실제 DB에 반영하지 않겠다는 것을 의미 트랜.. 더보기
Oracle_9. DCL(GRANT, REVOKE) 권한 부여(GRANT) 시스템권한 객체접근권한 권한 회수(REVOKE) ▶ DCL ? * DCL (DATA CONTROL LANGUAGE) : 데이터 제어 언어 계정에게 시스템권한 또는 객체접근권한을 부여(GRANT)하거나 회수(REVOKE)하는 언어 * 권한 부여(GRANT) 1. 시스템권한 : 특정 DB에 접근하는 권한 객체들을 생성할 수 있는 권한 2. 객체접근권한 : 특정 객체들에 접근해서 조작할 수 있는 권한 1. 시스템 권한 - 시스템 권한의 종류 CREATE SESSION : 계정에 접속할 수 있는 권한 CREATE TABLE : 테이블을 생성할 수 있는 권한 CREATE VIEW : 뷰를 생성할 수 있는 권한 [표현법] GRANT 권한1, 권한2, ... TO 계정명; ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 더보기