'IT/[SQL] Basic' 카테고리의 글 목록
잡학다식의 지식공방
300x250

IT/[SQL] Basic 60

SQL 윈도우 함수 (Window Functions) 완전 정복

SQL 고급 기능 중 하나인 윈도우 함수(Window Functions)는 집계 함수와 비슷하면서도 더 유연하게 데이터를 분석할 수 있도록 도와줍니다. 오늘은 이 윈도우 함수가 무엇인지, 어떻게 사용하는지, 실무에서 어떻게 유용하게 활용할 수 있는지 자세히 살펴보겠습니다.윈도우 함수란?윈도우 함수는 각 행을 기준으로 특정 범위(윈도우)를 정해서 집계 연산을 수행하는 함수입니다. 일반적인 집계 함수(SUM, AVG 등)는 그룹 단위로 하나의 결과만 반환하지만, 윈도우 함수는 모든 행에 결과를 유지하면서도 집계 기능을 제공합니다.기본 문법SELECT column1, function(column2) OVER (PARTITION BY column3 ORDER BY column4) AS aliasFRO..

IT/[SQL] Basic 2025.05.01

ALTER TABLE 로 제약 조건 추가하기 (CHECK / FOREIGN KEY) 쉽게 이해하기

SQL에서는 테이블을 만들 후에도 구조를 바꾸거나 규칙을 추가할 수 있습니다.그중 가장 자주 사용되는 기능이 바로 ALTER TABLE로 제약 조건(CONSTRAINT)을 추가하는 것이죠.오늘은 그중에서도 가장 많이 사용되는 두 가지 제약 조건인 FOREIGN KEY와 CHECK를 예제와 함께 쉽게 설명해드림니다!1️⃣ FOREIGN KEY – 두 테이블 간 연결 만들기 📋 FOREIGN KEY라는?FOREIGN KEY(외래 키)는 다른 테이블의 값을 참조하게 만들어주는 제약 조건이에요.쉽게 말하면, "이 값은 바로 저 테이블에 있어야 해!"라는 규칙입니다.🎯 예제: 학생(Student)과 학교(School)CREATE TABLE school ( id INT PRIMARY KEY, name VAR..

IT/[SQL] Basic 2025.05.01

NULL 처리의 함정과 COALESCE, IS NULL 전략

NULL 처리의 함정과 COALESCE, IS NULL 전략SQL을 다루다 보면 무심코 지나칠 수 있는 것이 바로 NULL입니다. 그러나 이 NULL이라는 존재는 예상치 못한 결과를 만들며 우리를 당황하게 할 수 있습니다. 오늘은 NULL 처리의 함정과 함께, 이를 다루는 대표적인 전략인 COALESCE, IS NULL에 대해 알아보겠습니다.왜 NULL 처리가 중요한가?NULL은 단순한 '빈 값'이 아닙니다. '값이 없음'을 의미하는 특수한 상태이기 때문에 일반적인 비교 연산이나 산술 연산이 불가능합니다.SELECT 1 + NULL; -- 결과는 NULLSELECT NULL = NULL; -- 결과는 FALSE가 아닌 UNKNOWN이처럼 NULL은 우리가 흔히 기대하는 동작과 다르게 반응하기 때문에,..

IT/[SQL] Basic 2025.04.30

인덱스(Index)의 작동 원리와 성능 이슈

SQL에서 인덱스는 데이터베이스 쿼리 성능을 최적화하는 데 중요한 역할을 합니다. 하지만 그 사용에는 반드시 주의가 필요합니다. 인덱스가 쿼리를 빠르게 할 수 있게 도와주는 도구인 만큼, 잘못 사용하면 오히려 성능에 악영향을 미칠 수 있습니다. 오늘은 인덱스의 작동 원리와 그로 인한 성능 이슈를 살펴보겠습니다.1. 인덱스란 무엇인가?인덱스는 테이블의 특정 열에 대한 검색 속도를 높여주는 데이터 구조입니다. 쉽게 말해, 책의 목차처럼 데이터를 빠르게 찾을 수 있도록 돕는 역할을 합니다. 데이터베이스는 기본적으로 모든 데이터를 순차적으로 탐색하면서 쿼리 결과를 찾습니다. 하지만 인덱스를 사용하면, 검색하고자 하는 데이터의 위치를 빠르게 찾을 수 있기 때문에 성능이 향상됩니다.주요 인덱스 종류클러스터형 인덱스..

IT/[SQL] Basic 2025.04.29

SQL에서 DDL과 JOIN은 어떻게 다를까?

SQL을 처음 접하거나 실무에서 데이터 분석을 막 시작한 사람이라면, DDL과 JOIN의 차이를 헷갈려 하는 경우가 많다. 이 글에서는 두 개념의 차이와 각각의 역할에 대해 쉽게 정리해본다.DDL이란?DDL(Data Definition Language)은 데이터베이스의 구조를 정의하거나 변경하는 명령어 집합이다. 즉, 데이터를 다루기 위한 그릇을 만드는 단계라고 볼 수 있다.대표적인 DDL 명령어는 다음과 같다:CREATE: 테이블, 뷰, 인덱스 등을 생성할 때 사용ALTER: 기존 객체(테이블 등)의 구조를 수정할 때 사용DROP: 객체를 삭제할 때 사용예시:CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), created_at TIMESTAM..

IT/[SQL] Basic 2025.04.28

서브쿼리 vs CTE (Common Table Expressions), 뭐가 다를까?

SQL을 어느 정도 쓰다 보면 자연스럽게 부딪히는 개념이 바로 서브쿼리(Subquery)와 CTE(Common Table Expressions)다. 둘 다 쿼리 안에 또 다른 쿼리를 포함하는 방식인데, 언제 서브쿼리를 쓰고 언제 CTE를 써야 하는지 헷갈리는 경우가 많다. 이 글에서 둘의 차이, 장단점, 그리고 실무에서 어떻게 활용하는지를 정리해본다.서브쿼리란?서브쿼리는 다른 쿼리 안에 중첩되어 있는 SELECT 문이다. 일반적으로 WHERE, FROM, SELECT 절 내부에 사용된다.예시 (SELECT 절 내부):SELECT name, (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) AS order_countFROM users;..

IT/[SQL] Basic 2025.04.27

PostgreSQL - 기본 문법, 날짜 처리, CRUD

SQL을 처음 배우는 분들이라면 DDL(데이터 정의), DML(데이터 조작), 그리고 날짜·조건 처리까지 한 번에 정리된 예제가 필요합니다. 이번 글에서는 도서 쇼핑몰을 가정해 book_shop 스키마를 사용하며, 실제로 많이 쓰이는 구문을 단계별로 살펴보겠습니다. 복사해서 바로 실행해도 오류가 없도록 작성했으니 실습용으로 활용해 보세요.1. CRUD 기본기1‑1. 테이블 생성 (CREATE)CREATE TABLE book_shop.bs_member ( member_id SERIAL PRIMARY KEY, email VARCHAR(320) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, nickname VA..

IT/[SQL] Basic 2025.04.23

PostgreSQL의 스키마, 테이블, 컬럼 완전 쉽게 이해하기

데이터베이스를 처음 접하거나, PostgreSQL을 사용하면서 "스키마가 뭐지?", "컬럼이랑 테이블은 또 뭐가 다르지?"라는 생각이 들었다면 이 글이 도움이 될 거예요. 지금부터 정말 쉽게 설명해드릴게요!1. 스키마(Schema)란?쉽게 말해, 스키마는 데이터베이스 안의 폴더라고 생각하면 됩니다. 한 데이터베이스 안에 여러 개의 스키마가 있을 수 있어요. 각각의 스키마 안에는 테이블, 뷰, 함수 등 다양한 객체들이 들어 있습니다.📦 예시:public 스키마: PostgreSQL에서 기본으로 제공하는 스키마sales, marketing 등의 이름으로 스키마를 만들어 부서별로 데이터를 나눌 수도 있어요.🧠 스키마는 네임스페이스 역할을 합니다. 같은 이름의 테이블이라도 다른 스키마 안에서는 공존할 수 있..

IT/[SQL] Basic 2025.04.09

PostgreSQL과 Athena에서 sequence와 generate_series 사용법

0. 배경데이터 분석을 하다 보면 특정 시간에 발생한 이벤트를 집계해야 하는 경우가 많습니다. 예를 들어, 특정 서비스의 라이브 스트리밍 접속 유저 수를 시간대별로 분석한다고 가정해 봅시다. 일반적으로 로그 데이터를 이용하여 각 시간에 접속한 유저 수를 집계하게 되는데, 여기서 흔히 발생하는 문제가 하나 있습니다.문제점: 데이터가 없는 시간대는 누락된다로그 기반의 데이터는 이벤트가 발생한 경우에만 저장되므로, 특정 시간대에 접속자가 없었다면 해당 시간은 쿼리 결과에서 아예 빠지게 됩니다. 이렇게 되면 시간 흐름에 따른 유저 수 변화를 직관적으로 파악하기 어려워지고, 시각화할 때도 그래프가 끊겨 보이는 등의 문제가 발생할 수 있습니다.해결 방법: 전체 시간대를 생성하여 보강하기이 문제를 해결하기 위해 시간..

IT/[SQL] Basic 2025.03.26

SQL: 데이터베이스 언어 DDL DML DQL DCL JOIN

SQL이란?SQL(Structured Query Language)은 관계형 데이터베이스(RDBMS)에서 데이터를 저장, 검색, 조작하는 데 사용되는 표준 언어입니다. 현대의 모든 데이터 중심 시스템에서 필수적으로 활용되는 SQL은, 데이터 분석부터 애플리케이션 개발까지 폭넓게 쓰입니다.SQL의 역사와 중요성1970년대 IBM 연구원들이 최초로 개발한 SQL은 이후 ANSI(미국국립표준협회)와 ISO(국제표준화기구)에 의해 표준화되었습니다. 관계형 데이터베이스가 기업의 핵심 인프라로 자리 잡으며, SQL은 필수적인 기술이 되었습니다. 현재는 MySQL, PostgreSQL, Oracle, SQL Server 등 다양한 데이터베이스 시스템에서 사용됩니다.SQL의 주요 기능SQL은 크게 네 가지 기능으로 구분..

IT/[SQL] Basic 2024.07.29
300x250
300x250