반응형 오라클11 오라클)계층형 쿼리 CONNECT BY PRIOR , ORDER SIBLINGS BY 오라클의 CONNECT BY 절은 부서 조직도, 메뉴 트리 와 같은 계층 쿼리를 만들 때 사용됩니다. 그리고 CONNECT BY 절과 LEVEL을 사용하면 순차적인 데이터를 생성할 수가 있습니다.. *CONNECT BY PRIOR 컬럼A = 컬럼B이전 컬럼A 값이 현재 컬럼B 값과 같은 것을 찾으라는 뜻입니다.-->CONNECT BY PRIOR 컬럼A의 이전값 = 컬럼B의 현재값입니다. 그래서 저는 외울 때, CONNECT BY PRIOR 이전값 = 현재값이라고 외웁니다. Ex) SELECT * FROM EMPLOYEES ORDER BY EMPLOYEE_ID; SELECT EMPLOYEE_ID , LPAD(' ',LEVEL*2) || FIRST_NAME || LAST_NAME AS FULL_.. 2024. 10. 29. 오라클) Index Full Scan Index Full Scan 은 언제 사용하는가? 1) 인덱스 컬럼으로 order by 할 때--> 인덕스에는 인덱스 컬럼 기준으로 이미 정렬이 되어 있어서 부담이 큰 sort 작업 생략이 가능. 2) 인덱스 컬럼으로 group by 할 때 --> 인덱스에 이미 컬럼 order에 따라 정렬되었기 때문에, group by 작업이 빨리 이루어진다. 3)sort-merge join을 할 때,--> 1)과 같은 이유. *결론)Index Full Scan 은 이미 생선된 인덱스를 통해 Order By 작업을 생략하기 위해 사용된다. 주의할 점)SELECT last_name,first_name FROM employees ORDER BY first_name,last_name;위의 쿼리에서 만약, 인덱스가 la.. 2024. 8. 25. 오라클) 윈도우 함수로, 전체 집계 함수 값과 특정 컬럼 집계 함수 값 같이 보기 SELECT 국적 , SUM(월급) OVER(PARTITION BY 국적) , SUM(월급) OVER()FROM 인적정보; 2024. 8. 25. 오라클) Index Fast Full Scan 와 Index Full Scan 의 차이점. 1.Index Fast Full Scan은 항상 인덱스에서만 읽는다. vs Index Full Scan은 테이블에서도 읽는다. 2. Index Fast Full Scan은 여러 블럭을 동시에, Unordered하게 읽는다. vs Index Full Scan은 row를 한 줄 씩 읽는다. 3.Index Fast Full Scan은 sort 작업 생략 불가. vs Index Full Scan은 sort 작업 생략 가능. 2024. 8. 25. 오라클) Oracle에서 IN 조건으로 여러 값을 동시에 만족하는 쿼리 작성법 업무 중에, IN 조건을 모두 만족하는 데이터를 출력할 때가 종종 있습니다. 일반적인 IN 조건은 하나라도 만족하는 값을 추출하지만, 이번에는 IN 조건을 사용할 때, IN 조건을 동시에 모두 만족하는 결과를 얻는 방법을 살펴보겠습니다. 테이블CREATE TABLE my_table ( id NUMBER, value VARCHAR2(10)); 1. GROUP BY와 ROW_NUMBER() 을 사용하여 모든 값 포함 확인하기 SELECT T1.ID FROM ( SELECT id, VALUE, ROW_NUMBER()OVER(PARTITION BY ID ORDER BY ID) RN FROM my_table WHERE value IN ('a', 'b', 'c', 'd').. 2024. 7. 16. 오라클)SID와 SERVICE_NAME 차이 SID는 INSTANCE의 유니크한 이름입니다.SERVICE NAME은 데이터베이스에 원격으로 접속할때 사용되는 TNS alias입니다. SERVICE NAME은 클라이언트의 tnsnames.ora 파일에 기록됩니다. SID와 동일할 수 있으며 원하는 다른 이름을 지정할 수 있습니다. https://www.stechies.com/difference-between-oracle-sids-and-oracle-service-names/ Oracle SIDs vs. Oracle SERVICE NAMESWhat is the differences between Oracle SIDs and Oracle SERVICE NAMES. Oracle SID is the unique name that uniquely identi.. 2023. 10. 26. 오라클)Warning: Procedure creates with compilation errors cmd의 sqlPlus에서 프로시져를 적용할 때, Warning: Procedure creates with compilation errors 위와 같은 에러가 나온다면... show erros를 치면 에러가 발생한 행을 찾을 수 있다. 2023. 10. 12. 오라클)SELECT * FOR UPDATE SELECT * FOR UPDATE는 현재 트랜잭션이 완료될 때까지 다른 트랜잭션에서 해당 행을 수정하지 못하도록 행을 잠그는 목적으로 사용됩니다. 충돌을 피하기 위한 기술입니다. SELECT * FOR UPDATE 문의 작동 방식SELECT: 일반적인 SELECT 문으로 시작하며 지정된 조건을 기반으로 테이블에서 행을 검색합니다. FOR UPDATE: SELECT 문의 끝에 FOR UPDATE 절을 추가합니다. 트랜잭션이 SELECT * FOR UPDATE 문을 실행하면 지정된 조건을 충족하는 행에 잠그게 되고, 현재 트랜잭션이 잠긴 행을 해제할 때까지 다른 트랜잭션이 이러한 행을 수정하지 못하게 합니다.동시성 제어가 필요할 때,좌석이나 티켓 예매시, 동시 접속자가 많아 둘 이상의 사람이 같은 자리를.. 2023. 9. 30. 오라클)Ordered와 Leading 힌트 1.orderedordered 힌트는 FROM 절에서 기술한 테이블 순서대로 조인합니다. 조인 순서에 따라 실행 계획이 달라지는 것을 볼 수 있습니다. SELECT /*+ ordered */ E.DEPTNO , E.EMPNO , D.DNAMEFROM DEPT D , EMP EWHERE D.DEPTNO = E.DEPTNO ; SELECT /*+ ordered */ E.DEPTNO , E.EMPNO , D.DNAMEFROM EMP E , DEPT DWHERE D.DEPTNO = E.DEPTNO ;2. leadingleading 힌트 안에 쓴 테이블 순서대로 조인합니다. leading도 위와 마찬.. 2023. 9. 30. 이전 1 2 다음 반응형