목록Database/Oracle (40)
고래씌
1. 트리거(Trigger) : 내가 트리거로 지정한 테이블에 INSERT, UPDATE, DELETE 등의 DML문에 의해 변경사항이 발생할 경우 "자동으로" 매번 실행할 내용을 정의해둘 수 있는 객체 EX) - 회원탈퇴시 기존의 회원테이블에 데이터를 DELETE한 후 곧바로 탈퇴된 회원들만 따로 보관하는 테이블에 자동으로 INSERT 시킬때 - 신고횟수가 일정수를 넘었을 때 회원을 블랙리스트 처리하고자 할때 - 입출고에 대한 데이터가 기록될때마다 해당 상품에 대한 재고수량을 매번 수정해줘야할 때 등등... ▶ 트리거의 종류 - SQL문의 시행시기에 따른 분류 ☞ BEFORE TRIGGER : 내가 지정한 테이블에 DML(INSERT, UPDATE, DELETE)가 발생되기 전에 트리거 먼저 실행 ☞ ..
1. FUNCTION : 프로시져와 마찬가지로 내부에 PL/SQL을 작성할 수 있고, 실행결과를 반환받을 수 있음 ▶ FUNCTION 생성방법 [표현식] CREATE FUNCTION 펑션명[(매개변수)] RETURN 자료형 IS BEGIN 실행부분 END; ▶ 예제 ▶ 사원의 사번을 전달받아서 연봉을 계산해서 반환해주는 함수 만들기
1. PROCEDURE - PL/SQL문을 저장해서 이용하는 객체. - 필요할때마다 내가 작성한 PL/SQL문을 편하게 호출 가능하다. ▶ 프로시저 생성방법 [표현식] CREATE [OR REPLACE] PROCEDURE 프로시저명[(매개변수)] IS BEGIN 실행부분 END; 프로시져 실행방법 EXEC 프로시져명; ▶ 예제 ☞ 지역변수 안에 DELETE FROM PRO_TEST; 문이 실행된 것을 알 수 있다. 1) 프로시저에 매개변수 추가 - IN : 프로시저를 실행시 필요한 값을 "입력받는"변수 (자바의 매개변수와 동일하게 사용) - OUT : 프로시저를 호출한 곳을 값을 "되돌려주는" 변수(결과값) ▶ 예제 - ① 프로시저 생성 - ② 실행 후 결과값을 저장할 변수 선언 - ③ 매개변수가 있는 ..
1. PL/SQL(Procedure Language Extension To SQL) - 오라클 자체에 내장되어있는 절차적 언어 - SQL문장 내에서 변수의 정의, 조건처리, 반복처리, 예외처리등을 지원하여 SQL의 단점을 보완. - 한번에 다수의 SQL문을 실행할 수 있다. 1) PL/SQL의 문법 - [선언부 (DECLARE SECTION)] : DECLARE로 시작, 변수나 상수를 선언 및 초기화한다. - 실행부 (EXECUTABLE SECTION) : BEGIN으로 시작, SQL문 또는 제어문등의 로직을 기술하는 부분 - [예외처리부(EXECTPION SECTION)] : EXCEPTION으로 시작, 예외발생시 해결하기 위한 구문을 미리 기술해둘 수 있는 부분 ▶ ① 서버 아웃풋 옵션을 ON (콘솔..
1. INDEX : 데이터를 빠르게 검색하기 위한 구조로 데이터의 정렬과 탐색과 같은 DBMS성능향상을 목적으로 사용 - 책에서 '목차'같은 역할을 하는 DBMS 객체 - 테이블에서 데이터를 조회(SELECT)할 때 인덱스가 없다면 테이블의 모든 데이터를 하나하나 뒤져서(FULL_SCAN) 내가 원하는 데이터를 검색한다 - 인덱스 설정을 해두면 테이블의 모든 행을 뒤지지 않고 내가 원하는 조건만 빠르게 검색이 가능하다. - 인덱스로 설정한 칼럼의 데이터들을 별도로 "오름차순으로 정렬"하여 특정메모리 공간에 물리적 주소값과, 실제 칼럼의 값을 함께 저장시킨다. ▶ 현재 계정에 생성된 인덱스들 SELECT * FROM USER_INDEXES; SELECT * FROM USER_IND_COLUMNS; ▶ ① ..
1. 시퀀스(SEQUENCE) - 자동으로 번호를 발생시켜주는 역할을 하는 객체(자동번호 부여기) - 정수값을 자동으로 순차적으로 발생시켜줌(연속된 숫자) - 순차적으로 "겹치지않는"숫자를 채번할 때 사용 => 사번, 회원번호, 게시글번호, 이미지번호 등등... [표현법] CREATE SEQUENCE 시퀀스명 [ START WITH 시작숫자 => 처음 발생시킬 시작값 설정(DEFAULT 1) INCREMENT BY 증가값 => 한번 시퀀스를 증가시킬때마다 증가시킬 다음값(DEFAULT 1) MAXVALUE 최대값 => 최대값 지정 MINVALUE 최소값 => 최소값 지정 CYCLE/NOCYCLE => 값의 순환(최대값까지 증가후 초기화) CACHE 바이트 크기/NOCACHE ] => 캐시메모리 사용여부 ..
1.Object : 데이터베이스를 이루는 논리적인 구조물들 - TABLE, USER, VIEW, SEQUENCE, INDEX, PACKAGE, TRIGGER, FUNCTION, RPOCEDURE... ▶ VIEW 뷰 - SELECT문을 수행한 수행결과(RESULTSET)를 저장해둘 수 있는 객체 (자주 쓰일 SELECT문을 VIEW에 저장해두면 매번 긴 SELECT문을 다시 기술할 필요가 없다.) => 조회를 위한 임시테이블 같은 존재이며 실제 데이터가 담겨있는 것은 아니다. => 조회를 위한 서브쿼리문만을 저장하며 VIEW 호출시 서브쿼리를 실행시킨다. 2. VIEW 생성방법 [표현법] CREATE VIEW 뷰명 AS 서브쿼리; => 뷰 생성 CREATE OR REPLACE VIEW 뷰명 AS 서브쿼리..
1. TCL(Transaction Control Language) - 트랜잭션을 제어하는 언어 1) 트랜잭션(Transaction) - 데이터 베이스의 논리적 작업 단위 - 데이터 변경사항(DML에 의한)들을 하나의 트랜잭션으로 묶어서 처리 => COMMIT(확정)하기 전까지의 변경사항들을 하나의 트랜잭션으로 모아둔다. - 트랜잭션의 대상이 되는 SQL : INSERT, UPDATE, DELETE 2) 트랜잭션의 종류 - COMMIT; : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영하겠다는 것을 의미 - ROLLBACK; : 변경사항들을 실제 DB에 반영하지 않겠다는 것을 의미. 트랜잭션에 담겨있는 변경사항도 다 삭제한 후 마지막 COMMIT 시점으로 돌아간다. - SABEPOINT 포인트명..
1. DCL(Data Control Language) :데이터 제어 언어 - 계정에게 시스템권한 또는 객체접근권한을 부여(GRANT)하거나 회수(REVOKE)하는 언어 ▶ 권한부여(GRANT) - 시스템권한 : 특정 DB에 접근하는 권한 객체들을 생성할 수 있는 권한 - 객체접근권한 : 특정 객체들에 접근해서 조작할 수 있는 권한 ▶ 시스템 권한 [표현법] GRANT 권한1, 권한2, ... TO 계정명; ▶ 시스템 권한의 종류 - CREATE SESSION : 계정에 접속할 수 있는 권한 - CREATE TABLE : 테이블을 생성할 수 있는 권한 - CREATE VIEW : 뷰를 생성할 수 있는 권한 ... 1) 계정 생성 CREATE USER SAMPLE IDENTIFIED BY SAMPLE; ☞ ..