목차
지은이의 말
들어가며
이 책의 대상 독자
이 책의 구성
처음부터 끝까지, SQL 학습 흐름을 한눈에!
개발환경
실습 데이터 준비
PART 01 데이터와 SQL 첫걸음
_1장 데이터베이스와 SQL
_1.1 데이터베이스
__1.1.1 데이터베이스란?
__1.1.2 DBMS(Database Management System)
__1.1.3 테이블과 컬럼
__1.1.4 데이터 모델링
_1.2 SQL
__1.2.1 SQL 이란?
__1.2.2 SQL 종류
_2장 실습환경 준비하기
_2.1 데이터베이스 설치
__2.1.1 MySQL 설치 파일 다운로드
__2.1.2 MySQL 설치
_2.2 SQL 실습환경 준비
__2.2.1 데이터베이스 생성
__2.2.2 테이블 생성
__2.2.3 학습 데이터 만들기
Part 2 SELECT 문과 친해지기
_3장 SELECT 문과 첫 만남
__3.1 SELECT 실습 전 미리 알아보기
___3.1.1 데이터 들여다보기
___3.1.2 사용할 데이터베이스 지정하기
__3.2 SELECT 문 기본 형식 이해하기
__3.3 SELECT 문 시작하기
___3.3.1 전체 데이터 조회하기 - SELECT *
___3.3.2 조회 조건 추가하기 - WHERE 조건
___3.3.3 일부 컬럼만 조회하기
___3.3.4 컬럼명에 별칭 주기 - Alias
___3.3.5 중복 데이터 제거하기 - DISTINCT
___3.3.6 From 절 없는 SELECT 문 사용하기
__실습하기
__실습 문제풀이
__3.4 SELECT 조회 순서 및 개수 바꿔보기
___3.4.1 조회 데이터 정렬하기 - ORDER BY
___3.4.2 조회 데이터 개수 정하기 - LIMIT/OFFSET
__실습하기
__실습문제 풀이
_4장 기본 연산자 만나보기
__4.1 산술 연산자
__4.2 비교 연산자
__4.3 논리 연산자
__4.4 NULL 연산자
__4.5 기타 연산자
__실습하기
__실습문제 풀이
_5장 기본 함수 만나보기
__5.1 문자열 함수 사용하기
___5.1.1 결합 함수 - CONCAT
___5.1.2 추출 함수 - LEFT, RIGHT, SUBSTRING
___5.1.3 변경 함수 - UPPER, LOWER, REPLACE
___5.1.4 길이/위치 함수 - LENGTH, LOCATE
___5.1.5 공백처리 함수 - TRIM, LTRIM, RTRIM
__5.2 숫자 함수 사용하기
___5.2.1 절대값 함수 - ABS
___5.2.2 반올림 함수 - ROUND
___5.2.3 올림 함수 - CEIL
___5.2.4 내림 함수 - FLOOR
___5.2.5 버림(절사)함수 - TRUNCATE
___5.2.6 제곱근 함수 - SQRT
___5.2.7 거듭제곱 함수 - POW
___5.2.8 난수 함수 - RAND
___5.2.9 최대값 함수 - GREATEST
___5.2.10 최소값 함수 - LEAST
__5.3 날짜/시간 함수
___5.3.1 현재 날짜/시간 함수 - NOW / CURDATE / CURTIME
___5.3.2 날짜/시간 추출 함수 - DATE, TIME, YEAR, MONTH, DAY
___5.3.3 날짜/시간 포맷변경 함수 - DATE_FORMAT
___5.3.4 요일정보 함수 - WEEKDAY, DAYOFWEEK, DAYNAME
___5.3.5 날짜 더하기/빼기 함수 - DATE_ADD, DATE_SUB
___5.3.6 날짜/시간 차이 계산 함수 - DATEDIFF, TIMEDIFF, PERIOD_DIFF, TIMESTAMPDIFF
__5.4 변환 함수
___5.4.1 데이터 타입변환 함수 - CAST
___5.4.2 데이터 타입변환 함수 - CONVERT
___5.4.3 NULL값 처리 함수 - COALESCE
___5.4.4 2개의 컬럼값 체크 함수 - NULLIF
___5.4.5 조건 제어 함수 - CASE
__실습하기
__실습문제 풀이
Part 3 SQL을 활용하자!
_6장 데이터 집계하기
__6.0 사전준비: 테이블 구조와 데이터 개요
___6.0.1 학습 전 생각해보기
__6.1 시작하기 전 개념 둘러보기
___6.1.1 그룹이란?
___6.1.2 그룹핑이란?
___6.1.3 집계하기
___6.1.4 그룹 함수 익히기
___6.1.5 주요 그룹 함수
__6.2 그룹핑하여 집계하기
___6.2.1 GROUP BY 절 기본 형식
___6.2.2 GROUP BY로 그룹핑하기
___6.2.3 그룹별로 집계하기
___6.2.4 GROUP BY 절 실행순서
__6.3 그룹핑한 결과에 조건 주기
___6.3.1 HAVING 절 기본 형식
___6.3.2 HAVING 절에서의 조건식
___6.3.3 WHERE 절과 HAVING 절의 차이점
___실습하기
___실습문제 풀이
_7장 SELECT를 풍성하게!
__7.0 생각해봅시다
__7.1 서브쿼리
___7.1.1 서브쿼리의 기본 형식
___7.1.2 WHERE 절에서의 서브쿼리
___7.1.3 FROM 절에서의 서브쿼리
__7.2 EXISTS 연산자
___7.2.1 EXISTS 기본 형식
___7.2.2 EXISTS 작성 예시
___실습하기
___실습문제 풀이
_8장 여러 테이블을 엮어서 조회하기
__8.1 조인(Join)이란?
___8.1.1 테이블과 테이블은 어떻게 연결할까?
___8.1.2 테이블 간의 관계 찾기
__8.2 조인(Join)의 종류와 활용
___8.2.1 내부 조인(Inner Join)
___8.2.2 외부 조인(Outer Join)
___실습하기
___실습문제 풀이
Part4 SQL을 단계별로 깨보자!
_9장 기본 단계: SQL의 기초 배우기
__[Q1] 고객 가입일과 지역 정보 추출하기
__[Q2] 특정 가격 범위의 제품 추출하기
__[Q3] 가장 비싼 제품 추출하기
__[Q4] 가장 많이 주문한 5건 추출하기
__[Q5] 특정 연령대와 성별로 고객 필터링하기
__[Q6] 특정 기간 동안의 신규 고객 추출하기
__[Q7] 주문 상태별로 주문 수 구하기
__[Q8] 고객의 성별에 따른 고객 수 구하기
_10장 확장 단계: 여러 테이블로 데이터 분석하기
__[Q1] 특정 지역의 고객 주문 내역 조회하기
__[Q2] 고객별 총 주문금액과 주문건수 구하기
__[Q3] 주문 취소가 많은 제품 찾기
__[Q4] 5월에 가장 인기 있는 제품과 주문건수 구하기
__[Q5] 특정 제품의 월별 판매 실적 구하기
__[Q6] 요일별 총 주문금액을 높은 순으로 정렬하여 보여주기
_11장 심화 단계: 복잡한 문제 해결하기
__[Q1] 제품별 2024년 1분기 판매 실적 구하기
__[Q2] 2024년 1월 한 달간 성별에 따른 주문건수, 주문금액 구하기
__[Q3] 2024년 지역별 월별 주문금액 구하기
__[Q4] 30대가 가장 많이 구매한 제품 상위 5건 조회하기
__[Q5] 서브쿼리를 이용한 주문금액 상위 5명의 고객 주문내역 조회하기
__[Q6] 특정 기간 동안 고객 재구매율 분석하기
_12장. 챗GPT를 활용하여 SQL을 만들어보자
__[퀴즈 #1] 지역별, 월별 판매액 분석하기
__[퀴즈 #2] ChatGPT로 테이블 데이터 만들어보기
__[퀴즈 #3] 주문금액이 높은 Top3 찾기