Let's Get IT SQL 프로그래밍
혼자 하기 어려운 프로그래밍 공부!
따라 해 보고, 같이 해 보자!
우리는 데이터의 홍수 속에서 산다고 해도 과언이 아닐 정도로 데이터에 둘러싸여 있다. 현대의 모든 데이터 관련 작업은 SQL을 통해 처리된다. 즉, SQL은 컴퓨터 시스템 세계에서 물이나 공기와 같은 존재라고 할 수 있다. 그런데도 SQL은 다른 컴퓨터 언어보다 배우고 사용하기가 쉬운 편이라며 무시되는 경향이 있다. 하지만 SQL은 쉽게 정복할 수 있는 언어가 아니다. SQL을 잘 작성하려면 문법과 구문을 익히고 충분히 이해해야 한다.
많은 문장을 작성하고 실행해 그 결과를 확인하고 같은 결과를 산출하기 위해 다른 방법들을 찾아보는 훈련을 반복하고 나서야 비로소 제대로 사용할 수 있다. 이 책은 다양한 예제와 프로젝트를 통해 여러분의 훈련을 돕다. SQL을 제대로 사용하는 방법부터 SQL을 사용하는 궁극적 목적인, SQL로 데이터를 분석하는 방법까지 알려준다. 데이터 세계에 입문하고 싶다면 이 책으로 시작해 보자. 여러분이 데이터 세계에 쉽게 안착할 수 있도록 길잡이 역할을 확실히 해줄 것이다.
목차
- Part 1 SQL 기본 익히기
- 1장 데이터베이스와 SQL 알아보기
- 1.1 데이터와 데이터베이스
- 1.1.1 데이터
- 1.1.2 데이터베이스
- 1.2 관계형 DBMS와 MySQL
- 1.2.1 관계형 DBMS
- 1.2.2 MySQL
- 1.2.3 MySQL의 자매, MariaDB
- 1.3 MySQL의 구조
- 1.3.1 MySQL 서버
- 1.3.2 사용자
- 1.3.3 데이터베이스와 스키마
- 1.3.4 데이터베이스 객체
- 1.3.5 MySQL의 버전과 에디션
- 1.4 SQL 살펴보기
- 1.4.1 SQL이란
- 1.4.2 SQL의 특징
- 1.4.3 SQL 표준
- 1.4.4 SQL의 종류
- 마무리
- Self Check
- 2장 실습 환경 만들기
- 2.1 MySQL 내려받기
- 2.2 MySQL 설치하기
- 2.3 MySQL 사용하기
- 2.3.1 MySQL 실행하기
- 2.3.2 MySQL 중지하기
- 2.3.3 MySQL 접속하기
- 2.4 MySQL Workbench 사용하기
- 2.4.1 MySQL Workbench 실행하고 접속하기
- 2.4.2 MySQL Workbench 둘러보기
- 마무리
- 3장 테이블 살펴보기
- 3.1 데이터를 담는 그릇, 테이블
- 3.1.1 테이블이란
- 3.1.2 테이블 구조의 기본, 로우와 칼럼
- 3.1.3 중복 데이터 저장 최소화하기
- 3.2 칼럼의 데이터 타입
- 3.2.1 문자형
- 3.2.2 숫자형
- 3.2.3 날짜형
- 3.3 예제 테이블 확인하기
- 3.3.1 MySQL 접속하기
- 3.3.2 sakila 데이터베이스
- 3.3.3 world 데이터베이스
- 마무리
- Self Check
- 4장 데이터베이스와 테이블 생성하기
- 4.1 데이터베이스 다루기
- 4.1.1 데이터베이스 생성하기
- 4.1.2 데이터베이스 삭제하기
- 4.1.3 데이터베이스 진입하기
- 4.2 테이블 다루기
- 4.2.1 테이블 설계하기
- 4.2.2 테이블 생성하기
- 4.2.3 테이블 생성 시 주의사항
- 4.2.4 테이블 삭제하기
- 4.3 칼럼의 제약조건: NULL 처리
- 4.4 칼럼의 제약조건: 기본 키
- 4.4.1 기본 키란
- 4.4.2 기본 키 생성하기(1)
- 4.4.3 기본 키 생성하기(2)
- 4.4.4 기본 키 생성하기(3)
- 4.4.5 기본 키 생성 시 주의사항
- 4.5 실습용 테이블 생성하고 데이터 입력하기
- 4.5.1 실습용 테이블 생성하기
- 4.5.2 실습용 테이블에 데이터 입력하기
- 마무리
- Self Check
- 5장 데이터 조회하고 정렬하기
- 5.1 데이터 조회하기
- 5.1.1 SELECT 문 사용하기
- 5.1.2 SELECT와 FROM의 의미
- 5.1.3 데이터베이스와 테이블의 관계
- 5.2 조건에 맞는 데이터 조회하기
- 5.2.1 WHERE 절로 조회 조건 지정하기
- 5.2.2 조건에 연산자 사용하기
- 5.2.3 실습: 조건에 맞는 데이터 조회하기
- 5.3 데이터 정렬하기
- 5.3.1 ORDER BY 절로 정렬하기
- 5.3.2 순번으로 정렬하기
- 5.4 데이터 조회 개수 제한하기: LIMIT 절
- 마무리
- Self Check
- Part 2 SQL 레벨업하기
- 6장 반복적인 계산을 편리하게: SQL 함수 사용하기
- 6.1 SQL 함수란
- 6.1.1 SQL 함수의 작동 방식
- 6.1.2 SQL 함수의 종류
- 6.2 기본 SQL 함수 살펴보기
- 6.2.1 수식 연산자와 숫자형 함수
- 6.2.2 문자형 함수
- 6.2.3 날짜형 함수
- 6.3 기타 함수
- 6.3.1 형 변환 함수
- 6.3.2 흐름 제어 함수
- 6.3.3 기타 함수
- 6.3.4 실습: SQL 함수 사용하기
- 마무리
- Self Check
- 7장 데이터 집계하기: 집계 쿼리
- 7.1 집계 쿼리 다루기: 데이터 그룹화와 집계 함수
- 7.1.1 데이터 그룹화하기
- 7.1.2 집계 함수 사용하기
- 7.1.3 GROUP BY 절과 집계 함수로 집계 쿼리 완성하기
- 7.2 총계 산출과 HAVING 절
- 7.2.1 WITH ROLLUP으로 소계와 총계 구하기
- 7.2.2 GROUPING( ) 함수
- 7.2.3 HAVING 절
- 마무리
- Self Check
- 8장 테이블끼리 관계 맺기: 조인
- 8.1 조인이란
- 8.1.1 조인의 작동 방식
- 8.1.2 조인의 특징
- 8.1.3 ERD로 테이블 간 연결 관계 파악하기
- 8.1.4 조인의 종류
- 8.2 내부 조인: 조인 칼럼 값이 같은 건 조회하기
- 8.2.1 INNER JOIN와 ON 절로 내부 조인하기
- 8.2.2 FROM과 WHERE 절로 내부 조인하기
- 8.3 외부 조인:조인 칼럼 값이 같지 않은 건도 조회하기
- 8.3.1 외부 조인이란
- 8.3.2 LEFT 조인
- 8.3.3 RIGHT 조인
- 8.4 기타 조인
- 8.4.1 자연 조인
- 8.4.2 카티전 곱
- 8.5 UNION 절
- 8.6 실습: 테이블 조인해 사원 기본 정보 조회하기
- 8.6.1 대상 테이블 살펴보기
- 8.6.2 실습 쿼리 작성하기
- 마무리
- Self Check
- 9장 쿼리 안의 또 다른 쿼리: 서브쿼리
- 9.1 서브쿼리 살펴보기
- 9.1.1 서브쿼리란
- 9.1.2 서브쿼리는 왜 필요한가
- 9.1.3 서브쿼리의 유형
- 9.2 SELECT와 FROM 절의 서브쿼리
- 9.2.1 스칼라 서브쿼리
- 9.2.2 파생 테이블
- 9.2.3 LATERAL 파생 테이블
- 9.3 WHERE 절의 서브쿼리
- 9.3.1 조건 서브쿼리
- 9.3.2 ANY, SOME, ALL 연산자를 사용한 조건 서브쿼리
- 9.3.3 IN과 EXISTS 연산자를 사용한 조건 서브쿼리
- 마무리
- Self Check
- 10장 데이터 입력/수정/삭제하고 트랜잭션 처리하기
- 10.1 INSERT 문으로 데이터 입력하기
- 10.1.1 단일 로우 입력 INSERT 문
- 10.1.2 다중 로우 입력 INSERT 문
- 10.1.3 SELECT 문이 결합된 INSERT 문
- 10.2 UPDATE 문으로 데이터 수정하기
- 10.2.1 단일 테이블 데이터 수정하기
- 10.2.2 다중 테이블 데이터 수정하기
- 10.2.3 입력과 수정을 동시에 처리하기
- 10.3 DELETE 문으로 데이터 삭제하기
- 10.3.1 단일 테이블 데이터 삭제하기
- 10.3.2 다중 테이블 데이터 삭제하기
- 10.4 트랜잭션 처리하기
- 10.4.1 트랜잭션 처리
- 10.4.2 자동커밋 속성
- 10.4.3 자동커밋 비활성화 상태에서 트랜잭션 처리하기
- 10.4.4 자동커밋 활성화 상태에서 수동으로 트랜잭션 처리하기
- 마무리
- Self Check
- Part 3 SQL로 데이터 분석하기
- 11장 데이터 분석에 유용한 분석 쿼리 사용하기
- 11.1 개선된 서브쿼리 CTE 사용하기
- 11.1.1 CTE란
- 11.1.2 CTE로 또 다른 서브쿼리 참조하기
- 11.1.3 CTE로 재귀 쿼리 만들기
- 11.2 윈도우 함수로 다양한 집계 값 산출하기
- 11.2.1 윈도우 함수란
- 11.2.2 윈도우 함수 사용하기
- 11.2.3 프레임 절로 집계 범위 조정하기
- 11.2.4 프레임 절과 윈도우 함수 함께 사용하기
- 11.2.5 윈도우 별칭 사용하기
- 11.3 뷰로 복잡한 쿼리 간단하게 사용하기
- 11.3.1 뷰 생성하고 사용하기
- 11.3.2 뷰 수정하고 삭제하기
- 마무리
- Self Check
- 12장 SQL을 이용한 데이터 분석 프로젝트
- 12.1 코로나 데이터 분석하기
- 12.1.1 데이터 수집하기
- 12.1.2 데이터 정제하기
- 12.1.3 데이터 분석하기
- 12.2 타이타닉 데이터 분석하기
- 12.2.1 데이터 수집하기
- 12.2.2 데이터 정제하기
- 12.2.3 데이터 분석하기
- 마무리
- Self Check
- 해설 노트