3. Database
-
오라클 Index 기초 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Oracle Index 기본 개념, 기본 활용 방법 ] 입니다. :) INDEX 인덱스는 인덱스 칼럼에 속해 있는 레코두에 대한 디스크의 물리적인 저장 위치를 나타내는 ROWID와 해당 칼럼 값의 집합으로 이루어 져있다. 그러므로 Oracle은 인덱스의 ROWID의 주소를 가지고 원하는 테이블의 데이터를 접근할 수 있다. ( ※ROWID = ROW(행)의 ID(Identity) 즉 행과 행을 구분하는 식별자, 디스크에 저장된 행의 물리적 위치를 나타내는 정보 ) Oracle에서 지원하는 인덱스의 보편적인 형태는 B*Tree 구조에서의 데이터 접근 방법이다. 오라클에서 인덱스 생성 시 기본으로 설정되어 있다. Oracle Optimize..
[Oracle] 오라클 Index 기초오라클 Index 기초 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Oracle Index 기본 개념, 기본 활용 방법 ] 입니다. :) INDEX 인덱스는 인덱스 칼럼에 속해 있는 레코두에 대한 디스크의 물리적인 저장 위치를 나타내는 ROWID와 해당 칼럼 값의 집합으로 이루어 져있다. 그러므로 Oracle은 인덱스의 ROWID의 주소를 가지고 원하는 테이블의 데이터를 접근할 수 있다. ( ※ROWID = ROW(행)의 ID(Identity) 즉 행과 행을 구분하는 식별자, 디스크에 저장된 행의 물리적 위치를 나타내는 정보 ) Oracle에서 지원하는 인덱스의 보편적인 형태는 B*Tree 구조에서의 데이터 접근 방법이다. 오라클에서 인덱스 생성 시 기본으로 설정되어 있다. Oracle Optimize..
2017.08.30 -
계층구조 쿼리(Hierarchical Queries) Connect by 계층적 쿼리는 오라클만이 가진 기능 중 하나로, 데이터를 선택하여 계층적인 순서 그대로 리턴하는데 사용된다. (계층형 쿼리라고도 한다) 1. 문법정리 [START WITH condition] CONNECT BY condition START WITH 조건1 - 루트 노드를 식별한다. 조건1을 만족하는 모든 ROW들이 루트노드가 된다. - START WITH는 생략가능한데, 이러한 경우 모든 ROW들이 루트노드가 된다. - 서브쿼리도 올 수 있다. - CONNECT BY 는 부모 계층형 쿼리에서 부모노드와 자식노드 특정한 관계를 나타내는데 사용한다. 부모노드가 되는 쪽에 PRIOR operator 가 반드시 명시 되어야 한다. CONN..
[Oracle] 계층구조 쿼리(Hierarchical Queries), (계층형 쿼리)계층구조 쿼리(Hierarchical Queries) Connect by 계층적 쿼리는 오라클만이 가진 기능 중 하나로, 데이터를 선택하여 계층적인 순서 그대로 리턴하는데 사용된다. (계층형 쿼리라고도 한다) 1. 문법정리 [START WITH condition] CONNECT BY condition START WITH 조건1 - 루트 노드를 식별한다. 조건1을 만족하는 모든 ROW들이 루트노드가 된다. - START WITH는 생략가능한데, 이러한 경우 모든 ROW들이 루트노드가 된다. - 서브쿼리도 올 수 있다. - CONNECT BY 는 부모 계층형 쿼리에서 부모노드와 자식노드 특정한 관계를 나타내는데 사용한다. 부모노드가 되는 쪽에 PRIOR operator 가 반드시 명시 되어야 한다. CONN..
2017.08.30 -
[Oracle] 오라클 날짜함수 (Datetime Functions) 1. SYSDATE 함수 - 시스템의 설정된 날짜 값을 반환한다. 2.ADD_MONTH 함수 - 문법 : ADD_MONTHS( date, integer ) - 지정한 날짜 중 해당 월에 정수를 더한 값을 반환한다. ex) ; SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; -- 현재월 : 20170809 SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 3), 'YYYYMMDD') FROM DUAL; -- 3개월 더한후 반환 : 20171109 3. LAST_DAY 함수 - 문법 : LAST_DAY(date) - 해당하는 월의 마지막 일을 반환합니다. ex) 이번달 마지막 일자 반환 SE..
[Oracle] 오라클 날짜함수 (Datetime Functions)[Oracle] 오라클 날짜함수 (Datetime Functions) 1. SYSDATE 함수 - 시스템의 설정된 날짜 값을 반환한다. 2.ADD_MONTH 함수 - 문법 : ADD_MONTHS( date, integer ) - 지정한 날짜 중 해당 월에 정수를 더한 값을 반환한다. ex) ; SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; -- 현재월 : 20170809 SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 3), 'YYYYMMDD') FROM DUAL; -- 3개월 더한후 반환 : 20171109 3. LAST_DAY 함수 - 문법 : LAST_DAY(date) - 해당하는 월의 마지막 일을 반환합니다. ex) 이번달 마지막 일자 반환 SE..
2017.08.30 -
[Oracle] 오라클 피벗(2) - PIVOT, UNPIVOT, (행을 열로, 열을 행으로) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. :) 업무를 하다보면 행을 열으로 전환한다던지, 열을 행으로 전환해야하는 업무가 간혹 발생한다. 이때 보통 decode 또는 case when을 통해 행 => 열 전환을 하였을 것이다. 이를 편하게 해결 할 수 있는 기능이 Oracle 11g부터 제공된다. PIVOT - 행을 열로 변환할 때 사용하는 방법으로 기존 GROUP BY 와 집계함수(MAX, SUM 등), DECODE를 사용하는 방법을 대체한다. 코드가 매우 간결 해진다. - PIVOT 절은 GROUP Function 을 포함한 계산식을 정의 하며 FOR 절은 값을 구분할..
[Oracle] 오라클 피벗(2) - PIVOT, UNPIVOT, 행을 열로, 열을 행으로[Oracle] 오라클 피벗(2) - PIVOT, UNPIVOT, (행을 열로, 열을 행으로) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. :) 업무를 하다보면 행을 열으로 전환한다던지, 열을 행으로 전환해야하는 업무가 간혹 발생한다. 이때 보통 decode 또는 case when을 통해 행 => 열 전환을 하였을 것이다. 이를 편하게 해결 할 수 있는 기능이 Oracle 11g부터 제공된다. PIVOT - 행을 열로 변환할 때 사용하는 방법으로 기존 GROUP BY 와 집계함수(MAX, SUM 등), DECODE를 사용하는 방법을 대체한다. 코드가 매우 간결 해진다. - PIVOT 절은 GROUP Function 을 포함한 계산식을 정의 하며 FOR 절은 값을 구분할..
2017.08.03 -
[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 피벗, listagg, wm_concat (피벗, 첫번째) ] 입니다. :) 여러 Row 값을 하나의 컬럼으로 돌려서 가져오고 싶은때가 있다. 이때 , 등 구분자를 통해 가져오는 방법이다. (ex 갓대희, 김동수, 김치맨 )(오라클에서 피벗턴 가능 하다 => 세로정렬을 가로정렬로 전환) 다음과 같은 로그인 히스토리가 있다고 가정하자. ▶ 임시 데이터 생성 WITH TEMPLOGINLOG AS ( SELECT 'MOBILE' AS ID, '갓대희' AS NAME FROM DUAL UNION ALL SELECT 'PC' AS ID, '갓대희' AS NAME FROM DUAL UNION..
[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 피벗, listagg, wm_concat (피벗, 첫번째) ] 입니다. :) 여러 Row 값을 하나의 컬럼으로 돌려서 가져오고 싶은때가 있다. 이때 , 등 구분자를 통해 가져오는 방법이다. (ex 갓대희, 김동수, 김치맨 )(오라클에서 피벗턴 가능 하다 => 세로정렬을 가로정렬로 전환) 다음과 같은 로그인 히스토리가 있다고 가정하자. ▶ 임시 데이터 생성 WITH TEMPLOGINLOG AS ( SELECT 'MOBILE' AS ID, '갓대희' AS NAME FROM DUAL UNION ALL SELECT 'PC' AS ID, '갓대희' AS NAME FROM DUAL UNION..
2017.07.26 -
[Oracle| 오라클 데이터 복구 (TIMESTAMP) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니다. :) 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 실수로 지운다던지, 복원을 시켜야 한다던지 당황하고 멘붕이 왔던 경험이 많을 것이다. 이때 특정시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능이다. 이 플래시백 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. ▶ Flashback을 사용할 수 있는 조건 ※ 설정 1. 자동 언두 관리 시스템을 사용해야 합니다. (UNDO_MANAGEMENT 파라미터를 AUTO로..
[Oracle| 오라클 데이터 복구 (TIMESTAMP)[Oracle| 오라클 데이터 복구 (TIMESTAMP) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니다. :) 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 실수로 지운다던지, 복원을 시켜야 한다던지 당황하고 멘붕이 왔던 경험이 많을 것이다. 이때 특정시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능이다. 이 플래시백 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. ▶ Flashback을 사용할 수 있는 조건 ※ 설정 1. 자동 언두 관리 시스템을 사용해야 합니다. (UNDO_MANAGEMENT 파라미터를 AUTO로..
2017.07.26