본문 바로가기

Oracle8

[Oracle] cursor 개념 필자가 주피터 노트북에서 작업을 하고 있는데 가공된 데이터를 미리 만들어 놓은 테이블로 전송하려고 보니 cursor를 사용하는 걸 참고했다. 여기서 cursor는 무슨 의미를 가지고 있고 어떤 역할을 하는지 궁금하여 찾아보게 되었고 개념만 간단하게 알고 지나갈 예정이다. - cursor 란? select문을 통해 결괏값들이 나오면 이 결과들이 메모리 공간에 저장을 해야 한다. 그 메모리 공간을 'cursor'라 한다. 간략하게는 SQL문을 처리한 결과 집합을 가리키는 포인터 select문의 결과가 하나의 행일 경우는 into 절을 사용하지만, 결과가 복수행일 경우에는 into절이 아닌 여러 복수 행단 위로 처리하기 위한 cursor 사용 - cursor 종류 목시적 커서 : 오라클 내부에서 자동으로 생성.. 2022. 1. 27.
[Oracle] PIVOT, UNPIVOT 가끔 행과 열을 변환해야 하는 경우가 있는데 그럴 때 사용하는 함수이다. 이외에도 case when, decode, with절로도 가능하지만 간단한 문장을 선호한다면 피벗테이블을 활용한다. ex) select * from tableA ENAME GROUP GRADE 하쿠 B 1학년 하울 A 2학년 치히로 B 1학년 소피 A 3학년 키키 A 2학년 지지 B 1학년 - PIVOT SELECT 컬럼 FROM (조회할 데이터 SELECT문) PIVOT (집계함수(표현식) FOR 피벗대상컬럼 IN (행으로 옮겨줄 열 컬럼 이름)) ; EX) CREATE TABLE PIVOU_TABLE AS SELECT * FROM (SELECT * FROM tableA) PIVOT ( COUNT(NAME) as cnt FOR G.. 2022. 1. 17.
[Oracle] INTERSECT, MINUS 지난 포스팅에는 합집합의 의미를 가진 UNION에 대한 글을 작성했고 이번 포스팅에는 교집합과 차집합을 의미하는 것을 작성하려 한다. UNION의 내용은 아래에 ▼ 더보기 2022.01.04 - [BigData TIL/Database] - [Oracle] UNION , UNION ALL - SELECT 합치기 [Oracle] UNION , UNION ALL - SELECT 합치기 필자는 각 테이블 간의 같은 컬럼을 가지고 있다면 합쳐서 보기 위해 사용한다. 여러 개의 SELECT문을 합치기 위해서는 UNION, UNION ALL을 사용한다. UNION : 각 쿼리의 결과 합을 반환하는 합집합 (중복 subin-oh.tistory.com - INTERSECT (교집합) 각 테이블 간의 공통된 행을 반환한다.. 2022. 1. 13.
[Oracle] FIRST_VALUE , LAST_VALUE 결과 테이블에서 원하는 컬럼의 첫 번째 값을 가져올 때는 FIRST_VALUE 함수를 사용하고, 마지막 값을 가져올 때는 LAST_VALUE 함수를 사용한다. 오라클 내에서만 사용 가능한 함수이다. ex) table A ENAME GROUP AGE 하쿠 B 22 하울 A 23 치히로 B 24 소피 A 21 - FIRST_VALUE(Oracle only) 처음 입력한 값 반환 - LAST_VALUE(Oracle only) 마지막 입력한 값 반환 FIRST_VAULE | LAST_VALUE (컬럼명) over () ex) GROUP별 AGE가 가장 높은 사람과 가장 낮은 사람 select ENAME , GROUP , AGE , first_value(ENAME) over(partition by group or.. 2022. 1. 12.