| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 데이터베이스
- 소프트웨어공학
- Design Patterns
- 쿼리
- pyqt6
- RSI
- SQL실무
- SQL쿼리
- sql공부
- next.js
- 백엔드개발
- 오블완
- Flutter
- 모멘텀 기반 지표
- 변동성 기반 지표
- MACD
- ai
- 볼린저 밴드
- Python
- 티스토리챌린지
- 추세 기반 지표
- 디자인패턴
- behavioral pattern
- ccxt
- design pattern
- 구조패턴
- 디자인 패턴
- DB쿼리
- SQL기초
- sql문법
목록전체 글 (55)
변혁적인 삶
드디어 SQL 기초 문법 정리의 마지막 편입니다.지금까지 SQL 기초 시리즈를 통해데이터를 읽고, 가공하고, 분석하는 전 과정을 익혔습니다.이번 글에서는 그 모든 내용을 하나의 시나리오로 엮어서실무처럼 문제를 해결하는 연습을 해보겠습니다.📖 복습 정리 — 지금까지 배운 핵심 문법 구분 핵심 키워드 역할 요약 SELECT조회데이터를 가져온다WHERE조건원하는 데이터만 필터링ORDER BY정렬결과를 보기 좋게 정렬GROUP BY / HAVING집계데이터를 요약하고 조건 걸기JOIN관계여러 테이블 연결INSERT / UPDATE / DELETE조작데이터 추가 / 수정 / 삭제CTE / Subquery구조화복잡한 쿼리를 읽기 좋게 나누기INDEX성능쿼리 속도 향상패턴응용실무에 바로 적용이제 이 도구들을 조합해..
앞선 시리즈에서는 SELECT, WHERE, JOIN, GROUP BY, CTE, INDEX까지SQL의 기초 문법과 핵심 개념을 모두 다뤘다.이번 글에서는 “진짜 써먹는 단계”로,실무에서 자주 사용하는 쿼리 패턴을 정리한다.단순히 문법을 아는 것에서 끝나지 않고,실제 서비스 운영과 데이터 분석에서 바로 쓸 수 있는 SQL 패턴을 익히는 것이 목표다.📍 1️⃣ 최근 가입자 / 신규 유저 목록신규 가입자 목록은 거의 모든 서비스의 관리자 페이지에서 기본으로 필요하다.SELECT id, name, email, joined_atFROM usersWHERE joined_at >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)ORDER BY joined_at DESC;최근 7일 이내에 가입한 유..
데이터가 수천, 수만, 수백만 건으로 쌓이면아무리 잘 짠 쿼리라도 느려질 수 있다.그럴 때 사용하는 마법 같은 도구가 바로 인덱스(INDEX)다.인덱스는 책의 목차와 같다.모든 페이지를 다 뒤지지 않아도,원하는 데이터를 빠르게 찾을 수 있게 해준다.📍 INDEX란?인덱스는 데이터베이스가 특정 컬럼을 기준으로탐색 속도를 높이기 위해 미리 만들어둔 정렬된 자료 구조다.보통 B-Tree (Balanced Tree) 구조로 관리된다.즉, 정렬된 데이터를 트리 형태로 저장하여탐색, 정렬, 검색을 빠르게 수행할 수 있게 하는 것이다.🔹 인덱스의 기본 생성CREATE INDEX 인덱스명ON 테이블명 (컬럼명);예를 들어, users 테이블의 email로 검색이 자주 일어난다면: CREATE INDEX idx_us..
쿼리를 작성하다 보면,한 번에 여러 단계를 처리해야 하는 상황이 생긴다.예를 들어“한 달간 주문한 유저 중, 결제 금액이 평균 이상인 사람만 조회하고 싶다”이런 요구를 한 줄짜리 쿼리로 만들기는 쉽지 않다.이럴 때 사용하는 것이바로 서브쿼리(Subquery)와 CTE(Common Table Expression)이다.둘 다 쿼리를 “안에서 다시 쓰는 방법”이지만,쓰임새와 가독성에서 차이가 있다.📍 Subquery — 쿼리 안의 쿼리서브쿼리는 말 그대로 쿼리 안에 포함된 또 다른 쿼리다.보통 SELECT, WHERE, FROM 절 안에서 사용된다.✅ 1️⃣ WHERE 안의 Subquery다른 쿼리의 결과를 조건으로 사용하는 방식이다.SELECT name, total_amountFROM ordersWHERE..
지금까지는 데이터를 조회하는 방법을 배웠다.이제는 데이터베이스 안의 데이터를 직접 다루는 방법,즉 추가·수정·삭제에 대해 알아보자.이 세 가지 명령어를 묶어서👉 DML (Data Manipulation Language) 이라고 부른다.CRUD 중 C(Create), U(Update), D(Delete)에 해당한다.📍 INSERT — 데이터 추가하기새로운 데이터를 테이블에 삽입할 때 사용한다.INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)VALUES (값1, 값2, ...);✅ 기본 예시 INSERT INTO users (name, email, age)VALUES ('민수', 'minsu@example.com', 29); name email age 민수minsu@example.com29🧩 ..
지금까지는 한 테이블 안에서만 데이터를 조회했다.하지만 실무에서는 대부분의 데이터가 여러 테이블에 나뉘어 저장되어 있다.예를 들어, users와 orders, products는 각각 다른 테이블에 존재하겠지만,“특정 유저가 어떤 상품을 주문했는가?”를 알려면 데이터를 연결해야 한다.이때 사용하는 것이 바로 JOIN이다.📍 JOIN이란?JOIN은 두 개 이상의 테이블을 공통 컬럼을 기준으로 연결하는 구문이다.관계형 데이터베이스(RDB)에서 가장 강력한 기능 중 하나로,백엔드 개발자라면 반드시 이해해야 할 핵심 개념이다.🔹 기본 구조 SELECT 컬럼명FROM 테이블AJOIN 테이블B ON 테이블A.기준컬럼 = 테이블B.기준컬럼;예시로 users와 orders 테이블이 있다고 하자.SELECT users..
이전 글에서는 WHERE과 ORDER BY를 이용해원하는 데이터를 선택하고 정렬하는 방법을 알아봤다.이번에는 한 단계 더 나아가서,데이터를 묶고 요약하는 방법인 GROUP BY와 HAVING을 살펴보자.📍 GROUP BY — 데이터를 그룹으로 묶기GROUP BY는 말 그대로 같은 값을 가진 행들을 그룹으로 묶는 기능이다.그룹을 기준으로 집계 함수(aggregate function)를 함께 사용한다.대표적인 집계 함수는 다음과 같다:함수설명COUNT()행의 개수SUM()합계AVG()평균MIN()최소값MAX()최대값✅ 기본 구조SELECT 그룹기준컬럼, 집계함수FROM 테이블명GROUP BY 그룹기준컬럼;예를 들어, users 테이블에서 각 도시별 회원 수를 구하려면:SELECT city, COUNT(*)..
이전 글에서는 SELECT 문으로 데이터를 가져오는 기본 구조를 살펴봤다.이번에는 그 데이터를 필터링하고 정렬하는 핵심 문법인WHERE과 ORDER BY를 중심으로 정리해본다.SQL에서 이 두 가지를 제대로 이해하면,원하는 데이터를 정확히 선별하고 보기 좋게 정렬하는 능력이 생긴다.📍 WHERE 절 — 원하는 데이터만 고르기WHERE 절은 조건을 지정해 필요한 데이터만 추려내는 구문이다.기본 구조는 다음과 같다.SELECT 컬럼명 FROM 테이블명 WHERE 조건;✅ 기본 비교 연산자연산자의미예시=같음age = 25!=, 같지 않음gender != 'M'>초과price > 10000미만age >=이상salary >= 5000이하join_date # users 테이블에서 age가 20이상이며, gende..
데이터베이스에서 무언가를 조회하려면 반드시 거치는 문이 있다.바로 SELECT.모든 쿼리의 출발점이자, 데이터와 처음 마주하는 문법이다.1️⃣ SELECT의 기본 구조SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;예를 들어, users 테이블에서 모든 데이터를 보고 싶다면:SELECT * FROM users;별표(*)는 모든 컬럼을 의미한다.편하지만, 실무에서는 가급적 필요한 컬럼만 지정하는 게 좋다.SELECT id, name, email FROM users; 2️⃣ 컬럼에 별칭(alias) 붙이기컬럼명이 너무 길거나 계산식으로 만들어진 값을 표시할 때는AS 키워드를 사용해 별칭을 붙인다.SELECT name AS n, age AS a FROM users;AS는 생략할 수도 있다.SELEC..
백엔드를 개발하다 보면 쿼리를 작성해야 할 때가 많다.그치만, 요즘은 쿼리를 알지 못해도 테이블명과 컬럼명만 알려주면 GPT가 알아서 쿼리를 써준다.“이 테이블에서 최근 한 달 동안 주문 금액이 가장 높은 유저를 구하는 쿼리를 작성해줘”라고 말하면, 바로 적용 가능한 SQL을 제공한다.그러나, 모르고 쓰는 것보다는 알고 쓰는 게 백배 낫다.쿼리를 직접 이해하고, 상황에 맞게 최적화할 수 있어야 한다.GPT가 제시한 쿼리가 올바르지 않은 경우 어디가 문제인지 파악하고 수정도 할 수 있어야한다.그래서 이번엔 나 스스로도 다시 정리할 겸, SQL의 기초 문법을 한번 정리해보았다.📑 목차SELECT 문 — 데이터를 읽는 기본데이터를 조회하는 기본 구문과 컬럼 선택, alias, 조건, 정렬, 페이징까지.WHE..