본문 바로가기

분류 전체보기56

SQL에서 날짜/시간 다루기 데이터 분석이나 백엔드 개발을 하다 보면 날짜와 시간을 다루는 경우가 굉장히 많습니다. 예를 들어 "지난주 주문 내역 조회", "회원 가입 후 30일이 지난 고객 찾기", "월별 매출 집계" 같은 작업입니다. SQL에서는 이런 날짜·시간 계산을 도와주는 다양한 함수가 있고, 그중에서도 DATE_ADD, DATEDIFF, EXTRACT는 특히 자주 쓰입니다. 이번 글에서는 이 세 가지 함수를 기본 문법부터 실무 예제까지 상세히 살펴보겠습니다. DATE_ADD – 날짜에 기간 더하기 / 빼기DATE_ADD는 날짜에 일정 기간을 더하거나 뺄 때 사용합니다.예를 들어 오늘 날짜에서 7일 뒤, 혹은 3개월 전 날짜를 쉽게 구할 수 있습니다. 📌 기본 문법DATE_ADD(date, INTERVAL n.. 2025. 8. 13.
대용량 데이터 쿼리 성능 개선 사례 3선 데이터베이스를 다루다 보면, 특히 수백만 건 이상의 대용량 데이터를 처리할 때 쿼리 속도가 급격히 느려지는 경험을 자주 하게 됩니다. "인덱스를 추가하면 빨라진다"라는 이야기는 많이 들어봤지만, 실무에서는 그보다 훨씬 더 다양한 원인과 해결책이 존재합니다. 이번 글에서는 실제 실무에서 자주 마주치는 대용량 데이터 쿼리 성능 저하 사례 3가지와 그 해결 방법을 소개합니다. 같이 한 번 알아봐보시죠! 불필요한 전체 테이블 스캔(Full Table Scan) 줄이기문제 상황한 전자상거래 플랫폼에서 최근 30일 주문 건수를 조회하는 쿼리가 10초 이상 걸렸습니다.데이터는 orders 테이블에 약 5천만 건이 저장되어 있었고, 다음과 같은 쿼리를 사용하고 있었습니다. SELECT COUNT(*)F.. 2025. 8. 11.
서브쿼리(Subquery) vs CTE(Common Table Expressions): 장단점과 성능 비교 SQL을 쓰다 보면, 하나의 쿼리 안에서 중간 계산 결과를 재활용하거나 복잡한 조건을 깔끔하게 정리해야 하는 순간이 많습니다. 이때 주로 선택하는 방법이 바로 서브쿼리(Subquery)와 공통 테이블 표현식(CTE)입니다. 둘 다 "쿼리 안에 또 다른 쿼리를 쓰는 방식"이지만, 구조와 활용 방법, 그리고 성능 면에서 차이가 존재합니다. 그 차이를 지금부터 한 번 알아보도록 하겠습니다! 서브쿼리(Subquery)란?서브쿼리는 말 그대로 쿼리 안에 포함된 또 다른 쿼리입니다. 보통 SELECT, FROM, WHERE 절 안에 들어가며, 하나의 쿼리 실행 중에 단 한 번만 평가되는 경우가 많습니다. 📌 서브쿼리 기본 구조SELECT 컬럼명FROM 테이블WHERE 컬럼명 = (SELECT MAX.. 2025. 8. 11.
SQL 윈도우 함수(Window Function) 완전 정리: 실무에서 쓰는 핵심 함수 모음 SQL로 데이터를 분석하다 보면 단순한 GROUP BY나 JOIN만으로는 부족할 때가 많습니다.예를 들어:사용자별 순위를 매기고 싶을 때하루하루의 누적합을 구하고 싶을 때전년 대비 매출 변화율을 보고 싶을 때이럴 때 사용하는 강력한 도구가 바로 윈도우 함수(Window Function) 입니다. 이번 글에서는 자주 사용되는 대표 윈도우 함수인 ROW_NUMBER, RANK, LAG, LEAD, OVER(PARTITION BY)를 설명하고, 실무 예제를 통해 어디에 어떻게 활용할 수 있는지 살펴보겠습니다. 윈도우 함수란?윈도우 함수(Window Function)는 여러 행을 기준으로 계산하면서도 각 행의 값을 유지하는 함수입니다. 즉, 일반적인 집계 함수(SUM, AVG 등)는 그룹을 하나로 모.. 2025. 8. 9.
GROUP BY와 HAVING 완전 정복! SQL 집계 쿼리의 핵심 개념 이해하기 SQL을 배우다 보면 반드시 마주치는 문법 중 하나가 GROUP BY와 HAVING입니다. 이 둘은 주로 집계 함수(COUNT, SUM, AVG, MAX, MIN)와 함께 사용되며, 데이터를 그룹으로 묶고, 그룹에 조건을 걸 때 사용합니다. 하지만 WHERE과 HAVING을 헷갈리거나, GROUP BY 없이 집계만 하려다 오류가 나는 경우도 많죠. 이번 글에서는 GROUP BY와 HAVING의 차이점과 함께 실무 예시를 통해 제대로 이해해보겠습니다. GROUP BY란?GROUP BY는 같은 값을 가진 행들을 하나의 그룹으로 묶어서, 각 그룹에 대해 집계 연산을 할 수 있게 합니다. 📌 기본 구조SELECT 그룹기준컬럼, 집계함수FROM 테이블GROUP BY 그룹기준컬럼;📌 예시: 부서별 .. 2025. 8. 7.
SQL에서 NULL 값, 정말 제대로 알고 있나요? SQL을 배우면서 처음 맞닥뜨리는 혼란 중 하나는 바로 NULL 값의 개념입니다. 숫자도 아니고, 빈 문자열도 아닌 이 애매한 존재는 자칫 잘못 이해하면 잘못된 데이터 처리나 예상치 못한 버그로 이어질 수 있습니다. 이번 글에서는 SQL에서 NULL이 무엇을 의미하는지, 그리고 실무에서 어떻게 다뤄야 하는지를 예시와 함께 차근차근 설명해보겠습니다. NULL이란 무엇인가?SQL에서 NULL은 "값이 없음" 또는 "알 수 없음"을 의미합니다. 숫자 0도 아니고, 빈 문자열도 아니며, 단순히 값이 존재하지 않는다는 의미입니다. ❌ 혼동하기 쉬운 것들표현 의미0숫자 0, 존재하는 값''빈 문자열, 존재하는 값NULL값 자체가 존재하지 않음 SELECT * FROM employeesWHERE phone.. 2025. 8. 6.