반응형 Database6 SQL Recursive CTE (재귀 쿼리) ㅇ Recursive CTE란?- 일반 SQL 쿼리로는 처리하기 어려운 계층적 데이터 구조나 반복적인 연산을 처리하기 위해 설계된 기능- 내부적으로는 루프나 스택기반처럼 작동됨- Recursive CTE는 Anchor member와 Recursive member 두 가지 파트로 구성되며, 이 둘을 UNION 또는 UNION ALL으로 연결 > Anchor member : 재귀의 시작점. 일반적으로 'WHERE parent_id IS NULL' 등 최상위 계층을 선택 > Recursive member : 앞서 반환된 결과를 기반으로 반복적으로 자기 자신을 호출하여 다음 계층을 확장- 재귀는 각 반복(Iteration)에서 이전 결과를 바탕으로 새로운 결과를 생성하며, 이 과정은 더 이상 새로운 .. 2025. 5. 30. SQL 프로시저 (SQL procedure) ㅇ SQL 프로시저 정의- 데이터베이스에 저장된 일련의 SQL 문들을 모아놓은 것.- 일종의 함수(Function) 혹은 루틴(Routine)이라고 할 수 있음.- 사용자가 정의한 명령문 블록으로, 트랜잭션 제어, 조건문, 반복문 등을 포함할 수 있음.- 저장 프로시저(Stored procedure)라고도 함.- "SQL + 프로그래밍 기능"으로 일반 프로그래밍 언어와 비슷한 효과를 낼 수 있음. ㅇ 프로시저 사용 이유- 반복적인 작업이나 복잡한 서버 로직을 서버에서 효율적으로 처리하기 위해 사용됨- 재사용성, 유지보수 용이함- 클라이언트와 서버 간 트래픽 감소 (성능 향상)- 사용 권한을 세밀하게 제어 가능 (보안성) ㅇ 프로시저 사용 예- 반복적인 데이터 처리- 배치 작업 자동화- 트랜잭션 제어- 복.. 2025. 5. 14. CTE (Common Table Expression) 정리 CTE(Common Table Expression)란?- 임시 결과 집합으로, 'WITH' 키워드를 사용하여 정의됨- 주로 복잡한 쿼리를 더 읽기 쉽게 만들거나, 재귀 쿼리를 작성할 때 사용함 아래 내용은 Atlassian에 정의된 CTE 내용을 긁어온 것이며, 내용은 대충 다음과 같다. CTE란?> 공통 테이블 식(Common Table Expression, CTE)은 쿼리의 결과 집합으로, 일시적으로 존재하며 더 큰 쿼리 내에서만 사용할 수 있습니다. 파생 테이블(derived table)과 유사하게, CTE의 결과는 저장되지 않고 쿼리가 실행되는 동안에만 존재합니다. 이 글에서는 재귀적이지 않은(non-recursive) CTE에 초점을 맞춥니다. CTE는 어떤식으로 도움이 되는지?> CTE는 .. 2025. 5. 9. ROLLUP, GROUPING SETS, CUBE 간단 정리 (SQL 그룹함수) ROLLUP, GROUPING SETS, CUBE는 데이터 웨어하우스나 OLAP(온라인 분석처리) 시스템에서 다차원 집계를 수행하기 위한 SQL 구문의 일부이며 데이터를 그룹화하고 집계화하는데 사용됨. ▶ ROLLUP - ROLLUP은 계층적으로 데이터를 집계하는데 사용됨 - 지정된 열들에 따라 다양한 수준의 합계 또는 총계를 계산함 - ROLLUP 사용시 데이터의 계층적 구조를 사용하여 합계를 생성할 수 있음 - 전체, 그룹별, 하위 합계 및 합계 생성 가능 -- ROLLUP 예제 SELECT year, month, SUM(sales) FROM sales_table GROUP BY ROLLUP(year, month); ↳ 연도와 월의 합계 계산 ▶ GROUPING SETS - GROUPING SETS는.. 2024. 3. 9. DB 정리 - 데이터 모델과 성능 ▶ 성능 데이터 모델링이란? - 데이트베이스 성능 향상을 목적으로, 데이터 모델 설계 시점부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 등 여러 가지 성능과 관련된 사항들이 데이터 모델링 작업에 반영될 수 있도록 하는 것. - 성능 데이터 모델링은 IT 시스템 구축 프로젝트 전체 일정(분석/설계 → 구현 → 테스트 → 운영)에서 가장 앞 단계에서 할수록 성능 저하에 따른 비용을 감소시킴. > 성능 데이터 모델링 시 고려사항 - 데이터 모델링 시 정규화 작업을 수행 - DB의 용량 산정 - DB에 발생되는 트랜잭션 유형 파악 - DB 용량 및 트랜잭션의 유형에 따라 반정규화 수행 - 이력 데이터 모델의 조정, PK/FK 조정, 슈퍼/서브 타입 변환 조정 등을 수행 - 성능 .. 2023. 10. 31. DB 관련 정리 - 데이터 모델링 SQL(Structured Query Language)은 데이터베이스와 상호 작용하는데 사용되는 언어로, 데이터를 조회/추가/수정/삭제하는데에 사용됨. ▶ SQL 작성 절차 요구사항 이해 : - 먼저 데이터베이스와 상호 작용해야 하는 작업의 요구사항을 명확하게 이해해야함. 이 작업이 어떤 데이터를 필요로 하는지, 어떤 조건이 적용되는지, 결과 데이터는 어떤 형식으로 나와야 하는지 등을 파악해야함. 데이터베이스 접속 : - SQL 작성을 위해 DB에 접속해야함. 이를 위해 DBMS(= 데이터베이스 관리 시스템)에 대한 연결을 설정하고, 인증 및 권한 확인 등의 단계를 수행함. SQL 쿼리 작성 : - 요구 사항에 기반하여 SQL 쿼리 작성. 쿼리 유형은 크게 SELECT / INSERT / UPDATE /.. 2023. 10. 4. 이전 1 다음 반응형