반응형

전체 글 323

[ORACLE] MERGE INTO 문으로 INSERT와 UPDATE 동시에 사용하기

MERGE INTO ···정의 값의 존재 여부에 따라서 INSERT, UPDATE, DELETE를 실행하는 쿼리문으로 자바에서 IF문과 비슷한 역할을 수행 MERGE INTO ··· 사용 방법 MERGE INTO [TABLE / VIEW] -- UPDATE, INSERT 할 테이블 혹은 뷰 USING [TABLE / VIEW / DUAL] -- 비교할 대상 테이블 혹은 뷰 ON [조건] -- 비교 조건 WHERE MATCHED THEN -- 조건과 일치할 경우 UPDATE SET . . . WHEN NOT MATCHED THEN -- 조건과 불일치할 경우 INSERT( )VALUES ( ) MERGE INTO ··· 실행 MERGE INTO FOOD USING DUAL ON (FOOD_NAME = '탕수..

[ORACLE] 인덱스 (Index) 생성과 삭제 및 사용 시 주의사항

오늘은 데이터베이스 객체이며, '색인'이라는 사전적 의미를 가지고 있는 인덱스 (Index)에 대해서 알아보겠습니다. 인덱스에는 다양한 종류가 있고 상황에 따라 다르게 사용됩니다. 각종 SNS, 게임 등을 사용자 입장에서 봤을 때 서비스를 이용하면서 가장 답답한 건 '속도'라고 생각합니다. 그렇다면 데이터를 불러오려고 할 때 속도를 높이는 방법에는 무엇이 있을까요? 바로 '인덱스' 기술입니다. 오라클에서는 기본적으로 FULL SCAN을 하도록 되어있습니다. 말 그대로 조회하고자 하는 테이블의 모든 데이터를 한 번씩 다 훑어본다는 뜻으로 데이터양이 많을수록 조회 속도가 현저히 떨어진다는 의미입니다. 인덱스를 사용하게 되면 데이터 조회 속도가 말도 안 되게 개선됩니다. 하지만 무분별한 인덱스 생성으로 인한 ..

[ORACLE] 계층형 쿼리 START WITH ··· CONNECT BY

계층형 쿼리 정의 Oracle만 가지고 있는 기능 중 하나로 동일 테이블에 계층적으로 상위, 하위 데이터가 포함된 데이터를 의미함 ※ 본 기능은 Oracle 8i 부터 지원합니다. 계층형 쿼리 사용 방법 START WITH 조건1 ··· CONNECT BY 조건2 START WITH 조건1 : 조건1에 맞는 루트노드를 구한다. CONNECT BY 조건2 : 부모와 자식노드간 (1:N) 관계를 작성하며, 반드시 PRIOR 연산자를 포함시켜야한다. PRIOR 연산자 : PRIOR 연산자는 계층형 쿼리에서만 사용되는 오라클 SQL 연산자이며, '한식'의 PARENT_FOOD_ID 컬럼의 값을 '음식'의 FOOD_ID 컬럼이 가지고 있으므로 PRIOR 연산자를 FOOD_ID 컬럼 앞에 붙이면 된다. ※ 아래 그..

반응형