'SQL' 태그의 글 목록
잡학다식의 지식공방
300x250

SQL 17

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

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

데이터 분석 실무 용어 30개 – 이 정도는 알고 가자!

1. KPI (Key Performance Indicator) – 핵심 성과 지표목표 달성을 평가하기 위한 주요 지표.예시: 광고 클릭률, 회원가입 전환율 등 비즈니스 목표와 연결된 지표2. ETL (Extract, Transform, Load) – 데이터 처리 과정데이터를 추출(Extract) → 변환(Transform) → 적재(Load)하는 과정.예시: MySQL에서 데이터를 가져와 클린징 후 데이터 웨어하우스에 저장3. A/B 테스트 – 실험 기반 의사 결정두 개 이상의 버전을 비교하여 최적의 성과를 찾는 실험.예시: 버튼 색상을 A(파란색)와 B(빨간색)로 나누어 클릭율 비교4. Cohort Analysis (코호트 분석) – 특정 그룹의 행동 분석같은 특성을 가진 사용자 그룹을 나누어 분석하는..

대표적인 데이터 분석 도구들을 소개하고, 각 도구의 특징과 사용 방법

1.1. Python특징: Python은 데이터 분석, 통계 분석, 머신러닝 등에 널리 사용되는 프로그래밍 언어입니다. Pandas, NumPy, Matplotlib, Seaborn, SciPy, Scikit-learn 등과 같은 강력한 라이브러리들이 있어 데이터 처리와 분석에 매우 적합합니다.장점:오픈 소스이며 커뮤니티가 활발해서 배우기 쉽고 지원이 많음다양한 데이터 분석 라이브러리 제공머신러닝, 딥러닝, 웹 개발 등 다양한 분야에서 사용 가능사용 예시:Pandas로 데이터 처리 및 분석Matplotlib과 Seaborn으로 데이터 시각화1.2. R특징: R은 통계 분석에 강력한 기능을 제공하는 프로그래밍 언어이자 환경입니다. 특히 데이터 시각화와 통계 분석에서 매우 강력합니다.장점:통계 분석에 특화된..

SQL에서 JOIN의 종류와 사용 방법

SQL(Structured Query Language)은 데이터베이스를 관리하고 조작하는 데 사용되는 언어입니다. 데이터베이스에서 여러 테이블의 데이터를 결합하여 원하는 정보를 얻기 위해서는 JOIN 연산을 사용합니다. 이 블로그에서는 JOIN의 종류와 각각의 사용 방법에 대해 자세히 알아보겠습니다.JOIN의 종류SQL에서 JOIN은 크게 네 가지 종류로 나뉩니다.INNER JOINLEFT JOIN (또는 LEFT OUTER JOIN)RIGHT JOIN (또는 RIGHT OUTER JOIN)FULL JOIN (또는 FULL OUTER JOIN)각 JOIN의 작동 방식을 예제를 통해 알아보겠습니다.1. INNER JOININNER JOIN은 두 테이블 간의 일치하는 행만 반환합니다. 즉, 양쪽 테이블에 모..

IT/[SQL] Basic 2024.07.09

SQL 피벗 및 언피벗 pivot unpivot

피벗(Pivot)과 언피벗(Unpivot)은 데이터 분석에서 자주 사용되는 두 가지 중요한 SQL 연산입니다. 피벗은 행 데이터를 열로 변환하여 요약된 형태로 표현하고, 언피벗은 그 반대로 열 데이터를 행으로 변환하여 더 세부적인 데이터를 표현합니다. 이를 통해 데이터의 시각화와 분석이 더 용이해집니다.피벗 (Pivot)피벗 연산은 데이터를 요약하거나 집계하여 행 데이터를 열로 변환합니다. 예를 들어, 여러 행에 분산된 데이터를 열로 정리하여 비교하기 쉽게 만드는 경우에 사용됩니다.피벗 사용 예시 (SQL Server):다음은 department_sales 테이블을 이용하여 각 부서의 연도별 매출 합계를 열로 변환하는 예제입니다.SELECT department_id, [2019], [2020], [202..

IT/[SQL] Basic 2024.05.20

SQL에서의 FIRST_VALUE 함수 : 활용, 예제, 주의할 점

SQL에서 FIRST_VALUE 함수는 데이터 집합 내에서 첫 번째 값을 반환하는 유용한 함수입니다. 이 함수는 특히 윈도우 함수나 ORDER BY 절과 함께 사용될 때 더욱 강력한 기능을 발휘합니다. 매출 데이터에서 첫 구매일을 찾거나, 센서 로그에서 최초 감지 값을 기준으로 변화량을 분석할 때 FIRST_VALUE 함수는 매우 강력한 도구가 됩니다.FIRST_VALUE 함수 구문FIRST_VALUE(expression) OVER ( [PARTITION BY partition_expression, ... ] ORDER BY order_expression [ASC | DESC] ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)expre..

IT/[SQL] Basic 2024.04.08

generate_series 함수

generate_series는 PostgreSQL에서 제공하는 함수로, 특정 범위 내의 연속된 값을 생성합니다. 이 함수는 일반적으로 날짜, 시간 또는 숫자와 같은 연속적인 값들을 만들 때 사용됩니다. select date(generate_series(start_at, end_at,'1 day')), start_at, end_at, goodsno from table_a 예를 들어, generate_series('2024-02-01'::date, '2024-02-10'::date, '1 day')와 같이 사용하면 '2024-02-01'부터 '2024-02-20'까지의 날짜를 일일 단위로 생성합니다. 이를 통해 일련의 날짜 값을 가지고 있는 테이블을 만들거나, 특정 날짜 범위에 대한 집계 또는 분석을 수행할..

IT/[SQL] Basic 2024.02.21
300x250
300x250