2024/04 6

[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

[Python] swap

Python에서 변수의 값을 교환하는 것, 즉 'swap'에 대해 알아보았습니다. Python에서는 다른 프로그래밍 언어와는 다르게 매우 간단하고 직관적인 방법으로 두 변수의 값을 교환할 수 있습니다. 이는 Python의 튜플 할당 기능을 이용합니다. 기본적인 Swap 방법 두 변수 a와 b가 있다고 가정해 보겠습니다. a에는 값 10이, b에는 값 20이 저장되어 있다고 합시다. 이 두 변수의 값을 교환하고 싶을 때, Python에서는 다음과 같이 간단하게 할 수 있습니다. a = 10 b = 20 # a와 b의 값을 교환 a, b = b, a print("a:", a) # a: 20 print("b:", b) # b: 10 여기서 a, b = b, a는 사실상 튜플을 사용한 것입니다. Python은 ..

공부/Python 2024.04.17

[Python] for-else while-else

Python의 while-else와 for-else 구문에 대해 알아보겠습니다. 이 구문들은 다른 프로그래밍 언어에서 흔히 볼 수 없는, Python 특유의 기능입니다. 각각의 구문이 어떻게 작동하고, 어떤 상황에서 유용하게 사용될 수 있는지 설명하겠습니다. while-else 구문 Python에서 `while` 루프는 조건이 True인 동안 반복적으로 코드 블럭을 실행합니다. 그리고 `else`는 `while` 루프가 더 이상 실행할 조건이 없을 때, 즉 조건이 False가 되어 루프가 정상적으로 종료될 때 실행됩니다. 만약 루프 내에서 `break`를 사용해 루프를 강제로 종료한다면, `else` 블럭은 실행되지 않습니다. count = 0 while count < 3: print(f"Count: {..

공부/Python 2024.04.16

[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