공부/MySQL 4

[MySQL] WITH

MySQL에서 WITH 구문은 Common Table Expressions(CTEs)를 정의하는데 사용됩니다. CTE란 복잡한 쿼리를 단순화하기 위해 사용되는 일시적인 결과 집합으로, 쿼리 내에서 한 번 정의되면 쿼리의 다른 부분에서 재사용될 수 있습니다. WITH 구문을 사용하면 코드의 가독성과 유지 보수성이 향상되며, 복잡한 조인과 서브쿼리를 더 명확하게 표현할 수 있습니다. 기본 구조 WITH CTE이름 AS ( SELECT 쿼리 ) SELECT * FROM CTE이름; 예제 예를 들어, 직원 테이블에서 각 부서별로 최고 급여를 받는 직원의 정보를 찾는 쿼리를 작성한다고 가정해 봅시다. 이때 WITH 구문을 사용하여 CTE를 정의할 수 있습니다. WITH HighestSalaries AS ( SEL..

공부/MySQL 2024.04.23

[MySQL] UNION ALL과 JOIN

MySQL에서 `UNION ALL` 명령어와 `JOIN` 연산의 차이점을 이해하는 것은 데이터 처리와 분석에 있어 매우 중요합니다. 이 두 연산의 기본 구조, 사용 예시, 주의사항 및 차이점에 대해 정리했습니다. UNION ALL 명령어 1. 기본 구조 UNION ALL은 여러 SQL 쿼리 결과를 하나의 결과 집합으로 결합할 때 사용됩니다. 중복을 허용하며, 중복 제거 과정으로 인한 성능 저하를 방지할 수 있습니다. SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2; 주의사항: 각 SELECT 문에서 선택하는 컬럼의 수와 데이터 타입이 일치해야 합니다. 2. 예시 employees 테이블과 contractors 테이..

공부/MySQL 2024.04.13

[MySQL] 셀프조인

셀프 조인(self join)은 MySQL에서 매우 유용한 기능으로, 테이블을 자기 자신과 조인하여 데이터를 조회하는 방법입니다. 한 테이블 내에서 관련된 데이터를 비교하거나, 계층적이거나 반복적인 데이터 구조를 쿼리하는 데 특히 유용합니다. 셀프 조인은 사실상 특별한 종류의 조인이 아니라, 동일한 테이블을 두 번 사용하는 일반 조인의 한 형태입니다. 1. 셀프 조인 사용 예 예를 들어, 직원과 그들의 관리자가 동일한 테이블에 저장되어 있는 경우를 생각해 보겠습니다. 이 테이블에는 각 직원의 ID, 이름, 그리고 그들의 관리자의 ID를 나타내는 매니저 ID가 포함되어 있습니다. 여기서 우리의 목표는 각 직원과 그들의 관리자의 이름을 함께 조회하는 것입니다. 2. 예제 테이블 구조 CREATE TABLE ..

공부/MySQL 2024.04.12

[MySQL] 재귀 쿼리

재귀 쿼리는 특정 규칙에 따라 반복해서 쿼리를 실행하여 그 결과를 합치는 방식으로, 계층형 데이터나 연결 리스트 등을 처리할 때 유용합니다. MySQL에서는 Common Table Expression(CTE)을 사용하여 재귀 쿼리를 구현할 수 있습니다. 이 기능은 MySQL 8.0 버전부터 지원됩니다. 1. CTE 기본 구조 CTE(Common Table Expression)는 WITH 절을 사용하여 정의됩니다. 재귀 쿼리를 작성하기 전에 CTE의 기본 구조를 이해하는 것이 중요합니다. WITH 임시테이블이름 AS ( -- 여기에 쿼리 작성 ) SELECT * FROM 임시테이블이름; 2. 재귀 CTE의 구조 재귀 CTE는 초기 쿼리(Anchor member)와 재귀적으로 실행될 쿼리(Recursive ..

공부/MySQL 2024.04.12