SQL 37

[SQL] 재귀 CTE(Recursive CTE)

재귀 CTE는 트리 구조나 계층형 데이터를 다룰 때 매우 유용한 기능이다. 특히 부모-자식 관계 데이터를 탐색할 때 많이 사용한다.CTE (Common Table Expression)WITH CTE_NAME AS ( SELECT ...)SELECT * FROM CTE_NAME;쿼리 안에서 임시로 사용하는 테이블가독성을 높이고, 서브쿼리를 반복하지 않을 수 있게 한다.📍 CTE에 대해 자세히 알아보기 재귀 CTE (Recursive Common Table Expression) 재귀 CTE는 자기 자신을 참조하는 CTE이다. 한 번 재귀 CTE를 실행하면, 내부적으로 반복(루프)을 통해 레코드를 점진적으로 확장한다.구조재귀 CTE는 두 부분으로 나누어진다:Anchor Member (기저 멤버)재귀가 시작되..

SQL 2025.04.10

[SQL] 비트 연산

1. MySQL 비트 연산자 종류연산자연산설명&AND두 숫자가 모두 1이면 1을 반환|OR두 숫자 중 하나라도 1이면 1을 반환^XOR두 숫자가 다르면 1을 반환~NOT모든 비트를 반전왼쪽 시프트비트를 왼쪽으로 이동 (2의 n제곱 곱하기)>>오른쪽 시프트비트를 오른쪽으로 이동 (2의 n제곱 나누기) 2. 예제(1) 비트 AND (&)두 값의 각 비트가 모두 1일 때만 1을 반환한다.SELECT 6 & 3; 결과: 2더보기설명6 (110₂)3 (011₂)6 & 3 = 010₂ = 2 (2) 비트 OR (|)두 값 중 하나라도 1이면 1을 반환한다.SELECT 6 | 3; 결과: 7더보기설명6 (110₂)3 (011₂)6 | 3 = 111₂ = 7 (3) 비트 XOR (^)두 값이 다를 때만 1을 반환한다...

SQL 2025.04.01

[SQL] SQL 정규 표현식 (SQL Regular Expression)

SQL 정규 표현식데이터베이스에서 패턴 매칭을 수행할 때 사용된다.주로 텍스트 데이터의 특정 패턴을 검색하거나 필터링할 때 활용된다.데이터베이스 시스템에 따라 다양한 방법으로 구현된다.기본 패턴 매칭LIKE 연산자를 사용하여 간단한 패턴 매칭을 수행할 수 있다.%: 임의의 문자 시퀀스를 매칭한다._: 임의의 한 문자를 매칭한다.예시: SELECT * FROM users WHERE name LIKE 'A%' (이름이 'A'로 시작하는 데이터를 검색한다)정규 표현식 사용MySQL, PostgreSQL, Oracle 등 일부 데이터베이스는 정규 표현식 기반의 고급 패턴 매칭을 지원한다.정규 표현식은 텍스트를 패턴으로 설명하며, 예를 들어 '^[A-Za-z]+$'는 알파벳 문자열을 의미한다.데이터베이스별 정규 ..

SQL 2025.01.12

[SQL] 가독성 높이기

# 예약어는 대문자로 작성하기SELECT, FROM, GROUP BY, HAVING, AS, AND와 같은 SQL 예약어들은 대문자로 작성한다. # 자주 행갈이 하기한 라인에 코드를 쭉 작성하지 않고, 자주 행갈이를 한다.SELECT, FROM, GROUP BY와 같이 다른 절을 한 라인에 작성하지 않는다. # 행갈이를 더 자주 하기라인을 주석처리 하여 특정 컬럼을 로직에서 제외할 수 있도록 컬럼별로 행갈이를 한다.WHERE 절에서도 AND, OR이 붙을 때바다 행갈이를 한다. # 주석 사용하기코드를 읽었을 때 이해할 수 있도록 각 코드 단락이 어떤 의도로 작성되었는지 디테일을 적는다.서브쿼리 단위나, CASE, IF 조건문 또는 WHERE절 필터링 조건을 쓸 때 주석을 적는다.다음과 같은 내용을 적는다..

SQL 2025.01.08

정보 검색 잘하는 방법

# 구글에서 검색하기기술 검색은 반드시 구글에서 하자!구글에 검색하면 공식 문서나 stackoverflow(기술 커뮤니티)가 검색 결과로 자주 등장한다. # 영문으로 검색하기IT 관련 분야의 정보는 대부분 영어로 생산된다.정보가 한글로 번역되어 전파되기까지 시간이 걸린다.오역이 잦다.언어 설정이 한국어로 되어 있으면 국문 문서들이 상위에 노출되기 때문에, 언어 설정을 영어로 바꿔놓는 것이 좋다. # 검색 엔진의 기능 잘 사용하기특정 시점의 정보를 검색할 때는 Tools에서 검색 기간 설정하기정확한 문장을 검색할 때는 검색 문장을 ""(큰따옴표)에 넣기특정 사이트 내의 문서만 검색할 때는 'site:' 사용하기특정 정보가 포함된 문서를 제외하고 싶을 때는 '-' 사용하기 # 검색 키워드 잘 넣기## 적절한..

etc 2025.01.08

[SQL] solvesql Advent of SQL 2024 25일차

# 링크solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/ https://solvesql.com/collections/advent-of-sql-2024/ solvesql.com25일차 - 메리 크리스마스 2024: https://solvesql.com/problems/merry-christmas-2024/ https://solvesql.com/problems/merry-christmas-2024/ solvesql.com  # 풀이SELECT 'Merry Christmas!'SELECT 'Merry Christmas!': 'Merry Christmas!' 문자열을 반환한다.

[SQL] solvesql Advent of SQL 2024 24일차

# 링크solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/ https://solvesql.com/collections/advent-of-sql-2024/ solvesql.com24일차 - 세 명이 서로 친구인 관계 찾기:https://solvesql.com/problems/friend-group-of-3/ https://solvesql.com/problems/friend-group-of-3/ solvesql.com  # 풀이SELECT DISTINCT e1.user_a_id AS user_a_id, e1.user_b_id AS user_b_id, e2.user_b_id AS user_c_idFROM ed..

[SQL] solvesql Advent of SQL 2024 23일차

# 링크solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/ https://solvesql.com/collections/advent-of-sql-2024/ solvesql.com23일차 - 유량(Flow)와 저량(Stock):https://solvesql.com/problems/flow-and-stock/ https://solvesql.com/problems/flow-and-stock/ solvesql.com  # 풀이WITH acquisition_data AS ( SELECT strftime ('%Y', acquisition_date) AS acquisition_year, COUNT(*..

[SQL] solvesql Advent of SQL 2024 22일차

# 링크solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/ https://solvesql.com/collections/advent-of-sql-2024/ solvesql.com22일차 - 친구 수 집계하기: https://solvesql.com/problems/number-of-friends/ https://solvesql.com/problems/number-of-friends/ solvesql.com # 풀이WITH normalized_edges AS ( SELECT CASE WHEN user_a_id normalized_edges CTESELECTCASE WHEN user_a_i..

[SQL] solvesql Advent of SQL 2024 21일차

# 링크solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/ https://solvesql.com/collections/advent-of-sql-2024/ solvesql.com21일차 - 세션 유지 시간을 10분으로 재정의하기: https://solvesql.com/problems/redefine-session-2/ https://solvesql.com/problems/redefine-session-2/ solvesql.com  # 풀이WITH user_events AS ( SELECT user_pseudo_id, event_timestamp_kst, event_name, ..

728x90