오라클 PUSH_SUBQ 힌트

오라클 PUSH_SUBQ 힌트

PUSH_SUBQ 힌트는 스칼라 서브쿼리의 실행 시점을 앞당겨서 실행 성능을 최적화할 때 사용됩니다.즉, 스칼라 서브쿼리(Scalar Subquery) 내부의 프레디케이트(Predicate)를 메인 쿼리로 푸시(Push)하는 것을 강제하는 힌트입니다. ✅ 기본 사용법 SELECT e.empno, e.ename, (SELECT /*+ PUSH_SUBQ */ d.dname FROM dept d WHERE d.deptno = e.deptno) AS department_nameFROM emp eWHERE e.sal > 3000; 위 쿼리에서 PUSH_SUBQ 힌트를 사용하면, e.sal > … Read more

정규표현식(Regex) in SQL

정규표현식(Regex) in SQL

1. 정규표현식(Regex)이란? 정규표현식은 특정 패턴을 가진 문자열을 검색하거나 추출, 교체할 때 사용하는 표현 방식입니다.SQL에서는 주로 데이터를 검색하거나 필터링할 때 활용됩니다. 대표적으로 다음 함수가 사용됩니다. 2. SQL 주요 DB별 정규표현식 함수 예시 데이터베이스 설명 및 예시 Oracle WHERE REGEXP_LIKE(column, ‘[A-Z]{3}[0-9]{3}’) MySQL WHERE column REGEXP ‘^[A-Za-z]+[0-9]+$’ PostgreSQL WHERE column ~* ‘pattern’ (대소문자 구분하지 않음) 3. 정규표현식 주요 … Read more

PIVOT 절과 UNPIVOT 절

PIVOT 절과 UNPIVOT 절

PIVOT과 UNPIVOT은 SQL에서 데이터를 행(row)과 열(column) 간 변환하는 기능을 제공하는 절입니다. 이 기능은 MSSQL, Oracle 등 일부 RDBMS에서 지원하며,MySQL과 PostgreSQL에서는 CASE WHEN 또는 GROUP BY 등을 사용하여 유사한 기능을 구현할 수 있습니다. 1. PIVOT 절 (행 → 열 변환) PIVOT은 특정 열의 고유한 값을 새로운 컬럼으로 변환하는 기능을 합니다. 📌 PIVOT 기본 문법 (MSSQL 기준) … Read more

고급 조인 기법(Advanced Join Techniques)

고급 조인 기법(Advanced Join Techniques)

데이터베이스에서 조인은 데이터를 효율적으로 결합하는 핵심 기능입니다.기본적인 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 외에도 성능과 최적화를 위한 다양한 고급 조인 기법이 존재합니다. 1. 고급 조인 기법 개요 조인 기법 특징 주요 활용 사례 Nested Loop Join 작은 테이블과 인덱스 사용 시 효율적 인덱스 활용이 가능한 경우 Hash Join 등가 조인(=)에 적합, 대용량 … Read more

스칼라 서브쿼리(Scalar Subquery)

스칼라 서브쿼리(Scalar Subquery)

스칼라 서브쿼리(Scalar Subquery)는 단일 값을 반환하는 서브쿼리입니다.즉, SELECT 문이 실행될 때 하나의 행과 하나의 열(단일 값)만 반환하는 서브쿼리를 의미합니다. 1. 스칼라 서브쿼리의 특징 ✔ 반환 값이 반드시 하나(1개 행, 1개 열)✔ 메인 쿼리의 컬럼과 함께 사용할 수 있음✔ 각 행마다 실행될 수 있어 성능 저하 가능✔ NULL을 반환할 수도 있음 2. 스칼라 서브쿼리의 사용 예제 … Read more

Sort Merge Join (정렬 병합 조인)

Sort Merge Join (정렬 병합 조인)

Sort Merge Join(SM 조인, 정렬 병합 조인)은 두 개의 정렬된 테이블을 병합하여 조인하는 방식입니다.주로 등가 조인(=)뿐만 아니라 범위 조인(<, >, BETWEEN 등)에서도 사용될 수 있으며, 대용량 데이터 조인에 적합합니다. 1. Sort Merge Join 개념 Sort Merge Join은 두 개의 입력 테이블을 정렬(Sort)한 후, 정렬된 데이터를 병합(Merge)하여 조인을 수행합니다. 2. Sort Merge Join의 동작 방식 SM … Read more

NL 조인(Nested Loop Join)

NL 조인(Nested Loop Join)

Nested Loop Join(NL 조인, 중첩 루프 조인)은 두 개의 테이블을 조인할 때 가장 기본적인 방법으로,하나의 테이블(외부 테이블, Outer Table)의 각 행을 반복하며 다른 테이블(내부 테이블, Inner Table)과 비교하는 방식입니다. NL 조인은 인덱스가 있는 경우 효과적이며, 소규모 데이터셋에서 빠르게 실행될 수 있지만, 대용량 데이터에서는 성능이 저하될 수 있습니다. 1. NL 조인의 개념 NL 조인은 반복문(Looping)을 활용한 … Read more

해시 조인(Hash Join)

해시 조인(Hash Join)

해시 조인(Hash Join)은 데이터베이스에서 두 개의 테이블을 조인할 때 사용되는 조인 알고리즘 중 하나로, 특히 대용량 데이터셋을 다룰 때 성능이 뛰어난 방법입니다.일반적으로 등가 조인(=)에서 사용되며, 테이블 크기가 크거나 인덱스가 없을 때 효율적으로 동작합니다. 1. 해시 조인의 개념 해시 조인은 두 개의 테이블에서 조인 키 값을 기반으로 해시 테이블을 생성하여 조인하는 방식입니다.일반적으로 Nested Loop Join(중첩 루프 … Read more

SQL 윈도우 함수(Window Function)

SQL 윈도우 함수(Window Function)

SQL 윈도우 함수(Window Function) 는 데이터베이스에서 행(row) 단위로 연산을 수행하면서도, 기존 행(row)들을 그대로 유지하는 함수입니다.GROUP BY와 달리 개별 행을 제거하지 않고 그룹 내에서 연산을 수행할 수 있습니다. 🏗 1. 윈도우 함수의 특징 ✅ 기존 행을 유지하면서 그룹별 연산 수행 ✅ OVER() 절을 사용하여 그룹을 정의 ✅ 대표적인 활용 예시 📊 2. 윈도우 함수 vs 그룹 … Read more

계층형 쿼리(Hierarchical Query)

계층형 쿼리(Hierarchical Query)

1. 계층형 쿼리(Hierarchical Query)란? 계층형 쿼리(Hierarchical Query)는 부모-자식 관계(트리 구조)를 가진 데이터를 조회하는 SQL 기법입니다. 일반적인 SQL 쿼리는 평면적(Flat) 데이터를 조회하는 반면, 계층형 쿼리는 트리 구조(Tree Structure)를 탐색할 수 있습니다. 예제: 2. 기본 문법 SELECT [컬럼들]FROM 테이블START WITH [루트 조건]CONNECT BY [계층적 관계 정의][ORDER SIBLINGS BY 컬럼명]; 3. 예제 데이터 (EMPLOYEES 테이블) 테이블 구조 CREATE … Read more