내일배움캠프/SQL 22

[SQL]SQL반복문_재귀적 CTE(WITH RECURSIVE)

WITH CTE(Common Table Ezpression) : 재귀 쿼리, 계층 구조 쿼리, 크리 구조 쿼리재귀 CTE쿼리란 : 자체 이름을 참조하는 하위 쿼리가 있는 CTE이다. 특히 시리즈 생성이나 계층적 구조의 데이터를 순회할 때 사용된다.MySQL :: MySQL 8.4 Reference Manual :: 15.2.20 WITH (Common Table Expressions)시리즈 생성예시) 1~10까지의 정수 시리즈WITH RECURSIVE natural_sequence AS ( -- 재귀적 공통 테이블을 natural_sequence에 저장 SELECT 1 AS n -- 1을 선택하여 n이라고 정의 UNION ALL -- 두 개의 select 쿼리 결과를 합친다. all은 중복된 값을..

[SQL] null값 대체하기_COALESCE, IFNULL

COALESCE() vs. IFNULL()실무에서는 특정 컬럼이 NULL을 가지면 NULL이 아닌 값으로 대체하기 위해 활용된다.공통점두 함수는 모두 NULL 값을 대체하는 데 사용된다.모두 인자 중에서 처음으로 NULL이 아닌 값을 반환한다.차이점COALESCE여러 인수 처리 → N개다양한 DBMS에서 지원IFNULL단 두개의 인수만 처리 → 2개MySQL 전용함수SELECT COALESCE(NULL, NULL, 5, 10); -- 결과: 5SELECT COALESCE(NULL, 'Fallback', NULL, 'Last Option'); -- 결과: 'Fallback'SELECT IFNULL(NULL, 5); -- 결과: 5SELECT IFNULL('Value', 10); -- 결과: 'Value'

[SQL] WITH절이란, 서브쿼리와의 쓰임새 차이

WITH문 : 이름을 가진 서브쿼리를 정의한 후 뒤에서 사용할 수 있는 구문.장점 :- 쿼리의 전체적인 가독성을 높이고, 재사용할 수 있다.- 계층형쿼리를 구현할 수 있음.(WITH순환절)- 대부분의 DBMS에서 지원한다. 기본 구조 :WITH (테이블명) AS (SELECT ~ FROM ~) 예시)WITH payment_data AS ( SELECT order_id, SUM(payment_value) AS total_sales FROM payments GROUP BY order_id) -- 1. WITH를 이용해 order_id별 payment_value의 합계가 있는 테이블을 payment_data라는 이름으로 지정SELECT order_id, total_sales -- 4. 다음..

[SQL]WINDOW함수

WINDOW함수란? : 행과 행간의 관계를 쉽게 정의하기 위해 만드는 함수OVER()절과 함께 하용하며, 행을 그룹화(PARTIOTION), 정렬(ORDER BY), 범위 설정(ROW / RANGE)하여 다양한 함수들을 제공한다.[쿼리 내 실행 순서]FROM → ON → JOIN → WHERE → GROUP BY → HAVING → [윈도우 함수] → SELECT → DISTINCT → ORDER BY → LIMIT -- 윈도우 함수 기본문법-- []는 생략가능SELECT 윈도우함수(컬럼1) OVER ( [PARTITION BY 컬럼2] -- 그룹화 [ORDER BY 컬럼3 ASC|DESC] -- 정렬 [ROWS|RANGE BETWEEN A AND B] -- 계산 범위) AS 결과FROM..

[SQL]서브쿼리(Subquery)의 특징과 분류

서브쿼리 복습↓https://dydatablog.tistory.com/19 [SQL]Subquery로 여러 번의 연산을 한 번에Subquery란?내부 쿼리의 결과를 기반으로 데이터를 필터링, 검색 또는 조작하는 데 자주 사용되는 다른 쿼리 내에 포함된 쿼리입니다.출처: https://easyitwanner.tistory.com/274 [IT 시작해보기:티스토리] Sudydatablog.tistory.com서브쿼리의 특징: 1) Result Types 반환 타입: Scalar(값) Row(행) Table(테이블) 2) Dependanct 의존: Non-Correlated (비상관) Correlated(상관) 3) Location | Clauses 사용되는 자리: SELECT FROM JOIN WHERECo..

728x90