모두의 SQL 의 시작
제가 SQL 강의를 처음 시작한 것은 2016년 여름 쯤이었습니다. 당시에는 SQL을 이용해서 데이터 분석을 한다? 라는 강의는 있지도 않았고, 개발자를 위한 SQL (아마도 데이터 구축이나 테이블 설계 등을 주로하는) 강의가 몇 개 정도 있었던 것으로 기억합니다. 당시에도 물론 파이썬 데이터 분석이라던가 마케팅을 위한 통계 분석이니 하는 강의는 다수 있었습니다.
참 이상했습니다. 파이썬이나 통계 분석까지 가지 않더라도 현업에서는 이미 많은 곳에서 SQL을 이용해서 데이터를 핸들링하고 추출해서 분석하는데, 왜 더 기초적이고 핵심적인 SQL을 이용한 데이터 분석과 같은 그런 강의나 세미나는 없을까?
여차저차하여 관련한 소규모 세미나를 진행하게 되었습니다. 그런데 갑자기 길벗 출판사 안 팀장님에게 연락이 왔습니다.
‘혹시 SQL 서적 집필 생각 있으세요?’
처음에는 신종 사기로 생각해서 이런 저런 핑계대며 바로 답변하지 않았습니다.
그러나.......
실제로 만나 뵙고나니 정말이었습니다. 이런 저런 얘기를 나누었고, 제가 쓰고 싶은 것은 데이터 분석을 주제로 하는 SQL 서적이고 싶다라고 했더니, 안 매니저님은 흔쾌히 좋다고 하셨습니다. 이것이 ‘모두의 SQL : 누구나 쉽게 배우는 데이터 분석 기초’ 집필의 시작입니다.
(확실하지는 않지만, ‘SQL 데이터 분석 강의’와 ‘SQL 데이터 분석 주제 서적 출간’은 국내 최초 아닌가 합니다.)
저는 바람직한 실무 교육의 방향성으로 늘 3가지를 생각합니다. 그것은 실무적으로, 핵심만, 쉽게입니다.
실무적으로
시중의 교재들은 늘 괴리감이 느껴지는 내용들이 많습니다. 한번도 보지 못하거나 생소한 분야의 데이터, 예를 들어 공공 분야 데이터가 그렇습니다. 잘 와닿지도 않는 공공 데이터를 가지고 실습을 하니, 입문자들은 ‘어떻게 응용해야겠다’라는 감을 잡을 수가 없습니다. 모두의 SQL은 가상의 패밀리 레스토랑 비즈니스 데이터를 사용합니다. 가상이라고 하지만 실무와 완전히 동떨어진 것이 아니라, 제가 근무했던 업무 영역의 로직과 내용에 유사하게 구성해서 만든 데이터입니다. 책의 이론 부분에서는 인사 영역 데이터를, 마지막 장 분석 실습 프로젝트에서는 비즈니스 데이터를 이용해서 실습하게 됩니다. 이렇게 실무 분석에 대한 감을 잡을 수 있게 구성했습니다. 책 중간 중간 실무적으로 유용하게 사용할 수 있는 팁도 배치했습니다.
<인사 데이터>
<패밀리 레스토랑 비즈니스 데이터>
<실무 활용 팁>
핵심만
SQL은 데이터 베이스를 다루는 랭귀지이지만, 각 분야마다 자주 쓰는 요소는 조금씩 다릅니다. 예를 들어 데이터 베이스 관리 시스템 에서는 데이터 베이스 성능, 보안 등이 중요할 것이고, 개발 분야는 일관된 로직과 데이터 입출력이 중요할 것입니다. 비즈니스 도메인에 따라 집중 적으로 학습해야 하는 요소가 다르다는 이야기입니다. 하지만 여전히 대부분의 SQL 책들은 그런 것들에 대한 구분 없이 기계적으로 문법을 늘어 놓거나, 특별한 Goal 없이 그냥 따라만 하게 구성되어 있더군요. 모두의 SQL은 데이터 분석, 그중에서도 SQL의 DML 명령어에 촛점을 맞춘 서적입니다. SQL의 DML 만 잘해도 데이터 분석은 물론이고, IT 개발 부분도 상당 부분 커버가 가능합니다.
<DML에 집중 합니다>
저는 SQL을 참 어렵게 배웠습니다. 학원 같은데는 당연히 다닌 적 없고, 소위 말하는 맨땅에 헤딩하면서, 사수한테 갈굼 당하면서, 사고 치면서 말이죠. 배우는 속도는 더디었지만 확실하게는 알게 된 것 같습니다. 하지만 지금과 같이 너무나 익혀야 할 게 너무나 많은 시대에서는 좋은 방법은 아닌 듯 합니다. 능률이 떨어지는 학습 방법이니까요. 그래서 저는 학습 방법으로 T자 학습법을 제안합니다. T자 학습법은 학습해야 할 대상이 굉장히 많지만 빠르게 익혀야 할 때 유용한 학습법입니다. (이것은 코딩이나 개발 등 다른 도메인에서도 마찬가지 일 것이라고 생각합니다.)
<T자 학습법>
우리는 할 일이 많지만 시간이 없습니다. 당장 필요한 것부터 빨리 익히고 나머지 필요한 것들은 각자 상황에 맞춰 확장해 나가면서 익히면 그만입니다.
쉽게
SQL 뿐만 아니라 많은 전문 서적은 왜 그렇게 어렵게 설명 할까요? 어려운 것도 쉽게 설명할 수 있어야 오히려 전문 서적일 텐데요. 모두의 SQL은 입문서 답게 SQL에 대해 ‘쉽게’가 모토이며 데이터 베이스와 SQL에 대해 모른다고 가정해서 쓰여졌습니다. 쉬운 글과 일러스트로 가장 쉽게 이해할 수 있게 정리했습니다.
<데이터 베이스 구조>
<조인이란?>
아울러 독자들이 실무 프로젝트를 경험할 수 있게 구성했습니다. 프로젝트는 책 에서 다룬 SQL의 내용을 총 동원하여 진행합니다. 책의 스토리는 저의 경험도 어느 정도 반영된 이야기입니다.
<스토리 텔링과 프로젝트 분석 결과>
마치며
모두의 SQL은 SQL 데이터 분석 입문서로서 더도 덜도 아니고 딱 필요한 만큼만 담은 서적입니다. 그럼에도 불구하고 담지 못해 약간 아쉬운 부분도 있는데, 이부분은 만약에 개정판이 나온다면 고려해볼 예정입니다. 아마도 역시 다른 책들은 갖지 못한 내용이 될 것입니다.
처음으로 집필한 서적이라 기대만 우려반이었는데 생각보다 많은 독자분들이 선택해 주셨습니다. 모두의 SQL을 선택한 독자분들의 역량 강화에 미약하게 라도 도움이 된다면 그것으로 모두의 SQL은 소임을 다한 것입니다. 모두의 SQL 선택에 감사드립니다.
#데이터분석 #랭귀지 #SQL #입문 #기초 #데이터 #셰프 #데이터셰프
목차
1장 관계형 데이터베이스와 SQL
01 이제는 데이터의 시대
02 관계형 데이터베이스의 구성 요소와 테이블
2장 실습 환경 만들기
01 Oracle Database Express 설치하기
02 Oracle SQL Developer 설치하기
03 Oracle SQL Developer의 기본 사용법
3장 SELECT : 데이터 조회의 기본
01 SELECT 문의 기본 문법
02 WHERE 조건 절을 활용한 데이터 검색 .
4장 함수 : 함수로 데이터를 쉽게 가공하기
01 함수란?
02 단일 행 함수 : 데이터 값을 하나씩 계산하고 조작하기
03 그룹 함수 : 그룹으로 요약하기
5장 ERD : 데이터베이스 개체 설계도
01 키와 제약 조건 : 개체 속성 표기법
02 관계 : 개체 관계 표기법
6장 조인과 집합 : 여러 개의 테이블 연결하기
01 조인이란?
02 동등 조인 : 똑같은 데이터끼리 연결하기
03 외부 조인 : 모든 데이터를 연결하기
04 자체 조인 : 자기 자신의 데이터와 연결하기
05 집합 연산자 : 집합으로 연결하기
7장 서브쿼리 : SELECT 문 안에 있는 SELECT 문
01 서브쿼리란?
02 단일 행 서브쿼리
03 다중 행 서브쿼리
04 다중 열 서브쿼리
05 FROM 절 서브쿼리 : 인라인 뷰
8장 DML : 데이터의 삽입/갱신/삭제
01 DML이란?
02 INSERT : 행 삽입하기
03 UPDATE : 행 갱신하기
04 DELETE : 행 삭제하기
9장 데이터 무결성과 트랜잭션 : 데이터베이스 운영 기본 규칙
01 데이터 무결성과 제약 조건4
02 트랜잭션 : 데이터 처리의 기본 작업 단위
10장 DDL : 테이블과 열 조작하기
01 DDL이란?
02 CREATE : 테이블 생성하기
03 ALTER : 테이블 수정하기
04 TRUNCATE : 테이블의 내용 삭제하기
05 DROP : 테이블 삭제하기
11장 관계형 데이터베이스의 주요 지식
01 뷰 : 가상의 테이블
02 옵티마이저 : 성능 최적화 관리하기
03 인덱스 : 빠른 검색을 위한 데이터 주소록
12장 최 과장과 함께 패밀리 레스토랑 신규 매출 분석하기
01 실습 데이터 설치하기
02 최 과장의 고민
03 매출 분석하기
04 인구 통계 분석하기
05 매출 데이터 분석 정리
모두의 SQL 의 시작
제가 SQL 강의를 처음 시작한 것은 2016년 여름 쯤이었습니다. 당시에는 SQL을 이용해서 데이터 분석을 한다? 라는 강의는 있지도 않았고, 개발자를 위한 SQL (아마도 데이터 구축이나 테이블 설계 등을 주로하는) 강의가 몇 개 정도 있었던 것으로 기억합니다. 당시에도 물론 파이썬 데이터 분석이라던가 마케팅을 위한 통계 분석이니 하는 강의는 다수 있었습니다.
참 이상했습니다. 파이썬이나 통계 분석까지 가지 않더라도 현업에서는 이미 많은 곳에서 SQL을 이용해서 데이터를 핸들링하고 추출해서 분석하는데, 왜 더 기초적이고 핵심적인 SQL을 이용한 데이터 분석과 같은 그런 강의나 세미나는 없을까?
여차저차하여 관련한 소규모 세미나를 진행하게 되었습니다. 그런데 갑자기 길벗 출판사 안 팀장님에게 연락이 왔습니다.
‘혹시 SQL 서적 집필 생각 있으세요?’
처음에는 신종 사기로 생각해서 이런 저런 핑계대며 바로 답변하지 않았습니다.
그러나.......
실제로 만나 뵙고나니 정말이었습니다. 이런 저런 얘기를 나누었고, 제가 쓰고 싶은 것은 데이터 분석을 주제로 하는 SQL 서적이고 싶다라고 했더니, 안 매니저님은 흔쾌히 좋다고 하셨습니다. 이것이 ‘모두의 SQL : 누구나 쉽게 배우는 데이터 분석 기초’ 집필의 시작입니다.
(확실하지는 않지만, ‘SQL 데이터 분석 강의’와 ‘SQL 데이터 분석 주제 서적 출간’은 국내 최초 아닌가 합니다.)
저는 바람직한 실무 교육의 방향성으로 늘 3가지를 생각합니다. 그것은 실무적으로, 핵심만, 쉽게입니다.
실무적으로
시중의 교재들은 늘 괴리감이 느껴지는 내용들이 많습니다. 한번도 보지 못하거나 생소한 분야의 데이터, 예를 들어 공공 분야 데이터가 그렇습니다. 잘 와닿지도 않는 공공 데이터를 가지고 실습을 하니, 입문자들은 ‘어떻게 응용해야겠다’라는 감을 잡을 수가 없습니다. 모두의 SQL은 가상의 패밀리 레스토랑 비즈니스 데이터를 사용합니다. 가상이라고 하지만 실무와 완전히 동떨어진 것이 아니라, 제가 근무했던 업무 영역의 로직과 내용에 유사하게 구성해서 만든 데이터입니다. 책의 이론 부분에서는 인사 영역 데이터를, 마지막 장 분석 실습 프로젝트에서는 비즈니스 데이터를 이용해서 실습하게 됩니다. 이렇게 실무 분석에 대한 감을 잡을 수 있게 구성했습니다. 책 중간 중간 실무적으로 유용하게 사용할 수 있는 팁도 배치했습니다.
<인사 데이터>
<패밀리 레스토랑 비즈니스 데이터>
<실무 활용 팁>
핵심만
SQL은 데이터 베이스를 다루는 랭귀지이지만, 각 분야마다 자주 쓰는 요소는 조금씩 다릅니다. 예를 들어 데이터 베이스 관리 시스템 에서는 데이터 베이스 성능, 보안 등이 중요할 것이고, 개발 분야는 일관된 로직과 데이터 입출력이 중요할 것입니다. 비즈니스 도메인에 따라 집중 적으로 학습해야 하는 요소가 다르다는 이야기입니다. 하지만 여전히 대부분의 SQL 책들은 그런 것들에 대한 구분 없이 기계적으로 문법을 늘어 놓거나, 특별한 Goal 없이 그냥 따라만 하게 구성되어 있더군요. 모두의 SQL은 데이터 분석, 그중에서도 SQL의 DML 명령어에 촛점을 맞춘 서적입니다. SQL의 DML 만 잘해도 데이터 분석은 물론이고, IT 개발 부분도 상당 부분 커버가 가능합니다.
<DML에 집중 합니다>
저는 SQL을 참 어렵게 배웠습니다. 학원 같은데는 당연히 다닌 적 없고, 소위 말하는 맨땅에 헤딩하면서, 사수한테 갈굼 당하면서, 사고 치면서 말이죠. 배우는 속도는 더디었지만 확실하게는 알게 된 것 같습니다. 하지만 지금과 같이 너무나 익혀야 할 게 너무나 많은 시대에서는 좋은 방법은 아닌 듯 합니다. 능률이 떨어지는 학습 방법이니까요. 그래서 저는 학습 방법으로 T자 학습법을 제안합니다. T자 학습법은 학습해야 할 대상이 굉장히 많지만 빠르게 익혀야 할 때 유용한 학습법입니다. (이것은 코딩이나 개발 등 다른 도메인에서도 마찬가지 일 것이라고 생각합니다.)
<T자 학습법>
우리는 할 일이 많지만 시간이 없습니다. 당장 필요한 것부터 빨리 익히고 나머지 필요한 것들은 각자 상황에 맞춰 확장해 나가면서 익히면 그만입니다.
쉽게
SQL 뿐만 아니라 많은 전문 서적은 왜 그렇게 어렵게 설명 할까요? 어려운 것도 쉽게 설명할 수 있어야 오히려 전문 서적일 텐데요. 모두의 SQL은 입문서 답게 SQL에 대해 ‘쉽게’가 모토이며 데이터 베이스와 SQL에 대해 모른다고 가정해서 쓰여졌습니다. 쉬운 글과 일러스트로 가장 쉽게 이해할 수 있게 정리했습니다.
<데이터 베이스 구조>
<조인이란?>
아울러 독자들이 실무 프로젝트를 경험할 수 있게 구성했습니다. 프로젝트는 책 에서 다룬 SQL의 내용을 총 동원하여 진행합니다. 책의 스토리는 저의 경험도 어느 정도 반영된 이야기입니다.
<스토리 텔링과 프로젝트 분석 결과>
마치며
모두의 SQL은 SQL 데이터 분석 입문서로서 더도 덜도 아니고 딱 필요한 만큼만 담은 서적입니다. 그럼에도 불구하고 담지 못해 약간 아쉬운 부분도 있는데, 이부분은 만약에 개정판이 나온다면 고려해볼 예정입니다. 아마도 역시 다른 책들은 갖지 못한 내용이 될 것입니다.
처음으로 집필한 서적이라 기대만 우려반이었는데 생각보다 많은 독자분들이 선택해 주셨습니다. 모두의 SQL을 선택한 독자분들의 역량 강화에 미약하게 라도 도움이 된다면 그것으로 모두의 SQL은 소임을 다한 것입니다. 모두의 SQL 선택에 감사드립니다.
#데이터분석 #랭귀지 #SQL #입문 #기초 #데이터 #셰프 #데이터셰프
목차
1장 관계형 데이터베이스와 SQL
01 이제는 데이터의 시대
02 관계형 데이터베이스의 구성 요소와 테이블
2장 실습 환경 만들기
01 Oracle Database Express 설치하기
02 Oracle SQL Developer 설치하기
03 Oracle SQL Developer의 기본 사용법
3장 SELECT : 데이터 조회의 기본
01 SELECT 문의 기본 문법
02 WHERE 조건 절을 활용한 데이터 검색 .
4장 함수 : 함수로 데이터를 쉽게 가공하기
01 함수란?
02 단일 행 함수 : 데이터 값을 하나씩 계산하고 조작하기
03 그룹 함수 : 그룹으로 요약하기
5장 ERD : 데이터베이스 개체 설계도
01 키와 제약 조건 : 개체 속성 표기법
02 관계 : 개체 관계 표기법
6장 조인과 집합 : 여러 개의 테이블 연결하기
01 조인이란?
02 동등 조인 : 똑같은 데이터끼리 연결하기
03 외부 조인 : 모든 데이터를 연결하기
04 자체 조인 : 자기 자신의 데이터와 연결하기
05 집합 연산자 : 집합으로 연결하기
7장 서브쿼리 : SELECT 문 안에 있는 SELECT 문
01 서브쿼리란?
02 단일 행 서브쿼리
03 다중 행 서브쿼리
04 다중 열 서브쿼리
05 FROM 절 서브쿼리 : 인라인 뷰
8장 DML : 데이터의 삽입/갱신/삭제
01 DML이란?
02 INSERT : 행 삽입하기
03 UPDATE : 행 갱신하기
04 DELETE : 행 삭제하기
9장 데이터 무결성과 트랜잭션 : 데이터베이스 운영 기본 규칙
01 데이터 무결성과 제약 조건4
02 트랜잭션 : 데이터 처리의 기본 작업 단위
10장 DDL : 테이블과 열 조작하기
01 DDL이란?
02 CREATE : 테이블 생성하기
03 ALTER : 테이블 수정하기
04 TRUNCATE : 테이블의 내용 삭제하기
05 DROP : 테이블 삭제하기
11장 관계형 데이터베이스의 주요 지식
01 뷰 : 가상의 테이블
02 옵티마이저 : 성능 최적화 관리하기
03 인덱스 : 빠른 검색을 위한 데이터 주소록
12장 최 과장과 함께 패밀리 레스토랑 신규 매출 분석하기
01 실습 데이터 설치하기
02 최 과장의 고민
03 매출 분석하기
04 인구 통계 분석하기
05 매출 데이터 분석 정리