본문 바로가기

SQL

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.. 더보기
JDBC_JAVA와 ORACLE 연결하기 -- ORACLE // JAVA에서 입력받아올 정보들을 작성해놓기 CREATE TABLE MEMBER ( USERNO NUMBER PRIMARY KEY, USERID VARCHAR2(15) UNIQUE NOT NULL, USERPWD VARCHAR2(20) NOT NULL, USERNAME VARCHAR2(20) NOT NULL, GENDER CHAR(1) CHECK(GENDER IN ('M', 'F')), AGE NUMBER, EMAIL VARCHAR2(30), PHONE CHAR(11), ADDRESS VARCHAR2(100), HOBBY VARCHAR2(50), ENROLLDATE DATE DEFAULT SYSDATE NOT NULL ); CREATE SEQUENCE SEQ_USERNO NOCACH.. 더보기