[책 리뷰 / 유연수] 초보자를 위한 SQL 200제(PL/SQL)
데이터 분석을 위한 첫걸음!
도서명 ㅣ초보자를 위한 SQL 200제(PL/SQL)
저 자 ㅣ 유연수
출판사 ㅣ정보문화사
출판일 ㅣ2020.05.20
페이지 ㅣ580
저자 소개
유연수
저자 : 유연수
서울시립대를 졸업하고, OCM(ORACLE CERTIFIED MASTER) 자격을 보유하고 있습니다. 한국 오라클 교육센터에서 여러 데이터베이스 과목을 강의했으며, 국내 주요 대기업에서 SQL과 SQL 튜닝 교육을 하였습니다. 현재는 머신러닝을 이용한 데이터분석을 강의하고 있습니다.
목차
PART 1「입문」 SQL 첫발 내딛기
001 테이블에서 특정 열(COLUMN) 선택하기
002 테이블에서 모든 열(COLUMN) 출력하기
003 컬럼 별칭을 사용하여 출력되는 컬럼명 변경하기
004 연결 연산자 사용하기(||)
005 중복된 데이터를 제거해서 출력하기(DISTINCT)
006 데이터를 정렬해서 출력하기(ORDER BY)
007 WHERE절 배우기 1(숫자 데이터 검색)
008 WHERE절 배우기 2(문자와 날짜 검색)
009 산술 연산자 배우기(*, /, +, -)
010 비교 연산자 배우기 1(〉, 〈, 〉=,〈=, =, !=,〈〉, ^=)
011 비교 연산자 배우기 2(BETWEEN AND)
012 비교 연산자 배우기 3(LIKE)
013 비교 연산자 배우기 4(IS NULL)
014 비교 연산자 배우기 5(IN)
015 논리 연산자 배우기(AND, OR, NOT)
PART 2「초급」 SQL 기초 다지기
016 대소문자 변환 함수 배우기(UPPER, LOWER, INITCAP)
017 문자에서 특정 철자 추출하기(SUBSTR)
018 문자열의 길이를 출력하기(LENGTH)
019 문자에서 특정 철자의 위치 출력하기(INSTR)
020 특정 철자를 다른 철자로 변경하기(REPLACE)
021 특정 철자를 N개 만큼 채우기(LPAD, RPAD)
022 특정 철자 잘라내기(TRIM, RTRIM, LTRIM)
023 반올림해서 출력하기(ROUND)
024 숫자를 버리고 출력하기(TRUNC)
025 나눈 나머지 값 출력하기(MOD)
026 날짜 간 개월 수 출력하기(MONTHS_BETWEN)
027 개월 수 더한 날짜 출력하기(ADD_MONTHS)
028 특정 날짜 뒤에 오는 요일 날짜 출력하기(NEXT_DAY)
029 특정 날짜가 있는 달의 마지막 날짜 출력하기(LAST_DAY)
030 문자형으로 데이터 유형 변환하기(TO_CHAR)
031 날짜형으로 데이터 유형 변환하기(TO_DATE)
032 암시적 형 변환 이해하기
033 NULL 값 대신 다른 데이터 출력하기(NVL, NVL2)
034 IF문을 SQL로 구현하기 1(DECODE)
035 IF문을 SQL로 구현하기 2(CASE)
036 최대값 출력하기(MAX)
037 최소값 출력하기(MIN)
038 평균값 출력하기(AVG)
039 토탈값 출력하기(SUM)
040 건수 출력하기(COUNT)
041 데이터 분석 함수로 순위 출력하기 1(RANK)
042 데이터 분석 함수로 순위 출력하기 2(DENSE_RANK)
043 데이터 분석 함수로 등급 출력하기(NTILE)
044 데이터 분석 함수로 순위의 비율 출력하기(CUME_DIST)
045 데이터 분석 함수로 데이터를 가로로 출력하기(LISTAGG)
046 데이터 분석 함수로 바로 전 행과 다음 행 출력하기(LAG, LEAD)
047 COLUMN을 ROW로 출력하기 1(SUM+DECODE)
048 COLUMN을 ROW로 출력하기 2(PIVOT)
049 ROW를 COLUMN으로 출력하기(UNPIVOT)
050 데이터 분석 함수로 누적 데이터 출력하기(SUM OVER)
051 데이터 분석 함수로 비율 출력하기(RATIO_TO_REPORT)
052 데이터 분석 함수로 집계 결과 출력하기 1(ROLLUP)
053 데이터 분석 함수로 집계 결과 출력하기 2(CUBE)
054 데이터 분석 함수로 집계 결과 출력하기 3(GROUPING SETS)
055 데이터 분석 함수로 출력 결과 넘버링 하기(ROW_NUMBER)
PART 3「중급」 SQL 실력 다지기
056 출력되는 행 제한하기 1(ROWNUM)
057 출력되는 행 제한하기 2(Simple TOP-n Queries)
058 여러 테이블의 데이터를 조인해서 출력하기 1(EQUI JOIN)
059 여러 테이블의 데이터를 조인해서 출력하기 2(NON EQUI JOIN)
060 여러 테이블의 데이터를 조인해서 출력하기 3(OUTER JOIN)
061 여러 테이블의 데이터를 조인해서 출력하기 4(SELF JOIN)
062 여러 테이블의 데이터를 조인해서 출력하기 5(ON절)
063 여러 테이블의 데이터를 조인해서 출력하기 5(USING절)
064 여러 테이블의 데이터를 조인해서 출력하기 6(NATURAL JOIN)
065 여러 테이블의 데이터를 조인해서 출력하기 7(LEFT/RIGHT OUTER JOIN)
066 여러 테이블의 데이터를 조인해서 출력하기 8(FULL OUTER JOIN)
067 집합 연산자로 데이터를 위아래로 연결하기 1(UNION ALL)
068 집합 연산자로 데이터를 위아래로 연결하기 2(UNION)
069 집합 연산자로 데이터의 교집합을 출력하기(INTERSECT)
070 집합 연산자로 데이터의 차이를 출력하기(MINUS)
071 서브 쿼리 사용하기 1(단일행 서브쿼리)
072 서브 쿼리 사용하기 2(다중 행 서브쿼리)
073 서브 쿼리 사용하기 3(NOT IN)
074 서브 쿼리 사용하기 4(EXISTS와 NOT EXISTS)
075 서브 쿼리 사용하기 5(HAVING절의 서브 쿼리)
076 서브 쿼리 사용하기 6(FROM절의 서브 쿼리)
077 서브 쿼리 사용하기 7(SELECT절의 서브 쿼리)
078 데이터 입력하기(INSERT)
079 데이터 수정하기(UPDATE)
080 데이터 삭제하기(DELETE, TRUNCATE, DROP)
081 데이터 저장 및 취소하기(COMMIT, ROLLBACK)
082 데이터 입력, 수정, 삭제 한번에 하기(MERGE)
083 락(LOCK) 이해하기
084 SELECT FOR UPDATE절 이해하기
085 서브 쿼리를 사용하여 데이터 입력하기
086 서브 쿼리를 사용하여 데이터 수정하기
087 서브 쿼리를 사용하여 데이터 삭제하기
088 서브 쿼리를 사용하여 데이터 합치기
089 계층형 질의문으로 서열을 주고 데이터 출력하기 1
090 계층형 질의문으로 서열을 주고 데이터 출력하기 2
091 계층형 질의문으로 서열을 주고 데이터 출력하기 3
092 계층형 질의문으로 서열을 주고 데이터 출력하기 4
093 일반 테이블 생성하기(CREATE TABLE)
094 임시 테이블 생성하기(CREATE TEMPORAY TABLE)
095 복잡한 쿼리를 단순하게 하기 1(VIEW)
096 복잡한 쿼리를 단순하게 하기 2(VIEW)
097 데이터 검색 속도를 높이기(INDEX)
098 절대로 중복되지 않는 번호 만들기(SEQUENE)
099 실수로 지운 데이터 복구하기 1(FLASHBACK QUERY)
100 실수로 지운 데이터 복구하기 2(FLASHBACK TABLE)
101 실수로 지운 데이터 복구하기 3(FLASHBACK DROP)
102 실수로 지운 데이터 복구하기 4(FLASHBACK VERSION QUERY)
103 실수로 지운 데이터 복구하기 5(FLASHBACK TRANSACTION QUERY)
104 데이터의 품질 높이기 1(PRIMARY KEY)
105 데이터의 품질 높이기 2(UNIQUE)
106 데이터의 품질 높이기 3(NOT NULL)
107 데이터의 품질 높이기 4(CHECK)
108 데이터의 품질 높이기 5(FOREIGN KEY)
109 WITH절 사용하기 1(WITH ~ AS)
110 WITH절 사용하기 2(SUBQUERY FACTORING)
111 SQL로 알고리즘 문제 풀기 1(구구단 2단 출력)
112 SQL로 알고리즘 문제 풀기 2(구구단 1단 ~ 9단 출력)
113 SQL로 알고리즘 문제 풀기 3(직각삼각형 출력)
114 SQL로 알고리즘 문제 풀기 4(삼각형 출력)
115 SQL로 알고리즘 문제 풀기 5(마름모 출력)
116 SQL로 알고리즘 문제 풀기 6(사각형 출력)
117 SQL로 알고리즘 문제 풀기 7(1부터 10까지 숫자의 합)
118 SQL로 알고리즘 문제 풀기 8(1부터 10까지 숫자의 곱)
119 SQL로 알고리즘 문제 풀기 9(1부터 10까지 짝수만 출력)
120 SQL로 알고리즘 문제 풀기 10(1부터 10까지 소수만 출력)
121 SQL로 알고리즘 문제 풀기 11(최대 공약수)
122 SQL로 알고리즘 문제 풀기 12(최소 공배수)
123 SQL로 알고리즘 문제 풀기 13(피타고라스의 정리)
124 SQL로 알고리즘 문제 풀기 14(몬테카를로 알고리즘)
125 SQL로 알고리즘 문제 풀기 15(오일러 상수 자연상수 구하기)
PART 4「활용」 SQL 응용 다지기
126 엑셀 데이터를 DB에 로드하는 방법
127 스티브 잡스 연설문에서 가장 많이 나오는 단어는 무엇인가?
128 스티브 잡스 연설문에는 긍정 단어가 많은가 부정 단어가 많은가?
129 절도가 많이 발생하는 요일은 언제인가?
130 우리나라에서 대학 등록금이 가장 높은 학교는 어디인가?
131 서울시 물가 중 가장 비싼 품목과 가격은 무엇인가?
132 살인이 가장 많이 발생하는 장소는 어디인가?
133 가정불화로 생기는 가장 큰 범죄 유형은 무엇인가?
134 방화 사건의 가장 큰 원인은 무엇인가?
135 전국에서 교통사고가 제일 많이 발생하는 지역은 어디인가?
136 치킨집 폐업이 가장 많았던 연도가 언제인가?
137 세계에서 근무 시간이 가장 긴 나라는 어디인가?
138 남자와 여자가 각각 많이 걸리는 암은 무엇인가?
139 PL/SQL 변수 이해하기 1
140 PL/SQL 변수 이해하기 2
141 PL/SQL IF 이해하기 1(IF ~ ELSE문)
142 PL/SQL IF 이해하기 2(IF ~ ELSIF ~ ELSE문)
143 PL/SQL Basic Loop 이해하기
144 PL/SQL While Loop 이해하기
145 PL/SQL for Loop 이해하기
146 PL/SQL 이중 Loop문 이해하기
147 PL/SQL Cursor문 이해하기(BASIC LOOP)
148 PL/SQL Cursor문 이해하기(FOR LOOP)
149 PL/SQL Cursor for loop문 이해하기
150 프로시저 구현하기
151 함수 구현하기
152 수학식 구현하기 1(절대값)
153 수학식 구현하기 2(직각삼각형)
154 수학식 구현하기 3(지수 함수)
155 수학식 구현하기 4(로그 함수)
156 수학식 구현하기 5(순열)
157 수학식 구현하기 6(조합)
158 기초 통계 구현하기 1(평균값)
159 기초 통계 구현하기 2(중앙값)
160 기초 통계 구현하기 3(최빈값)
161 기초 통계 구현하기 4(분산과 표준편차)
162 기초 통계 구현하기 5(공분산)
163 기초 통계 구현하기 6(상관계수)
164 기초 통계 구현하기 7(확률 1)
165 기초 통계 구현하기 8(확률 2)
166 기초 통계 구현하기 9(이항 분포)
167 기초 통계 구현하기 10(정규분포)
168 PL/SQL로 알고리즘 문제 풀기 1(삼각형 출력)
169 PL/SQL로 알고리즘 문제 풀기 2(사각형 출력)
170 PL/SQL로 알고리즘 문제 풀기 3(피타고라스의 정리)
171 PL/SQL로 알고리즘 문제 풀기 4(팩토리얼)
172 PL/SQL로 알고리즘 문제 풀기 5(최대 공약수)
173 PL/SQL로 알고리즘 문제 풀기 6(최소 공배수)
174 PL/SQL로 알고리즘 문제 풀기 7(버블 정렬)
175 PL/SQL로 알고리즘 문제 풀기 8(삽입 정렬)
176 PL/SQL로 알고리즘 문제 풀기 9(순차탐색)
177 PL/SQL로 알고리즘 문제 풀기 10(몬테카를로 알고리즘)
178 PL/SQL로 알고리즘 문제 풀기 11(탐욕 알고리즘)
PART 5「실무」 SQL 실무 다지기
179 SQL로 머신러닝 구현하기 1(NAIVEBAYES)
180 SQL로 머신러닝 구현하기 2(NAIVEBAYES)
181 SQL로 머신러닝 구현하기 3(NAIVEBAYES)
182 SQL로 머신러닝 구현하기 4(DECISION TREE)
183 SQL로 머신러닝 구현하기 5(DECISION TREE)
184 SQL로 머신러닝 구현하기 6(RANDOM FOREST)
185 SQL로 머신러닝 구현하기 7(RANDOM FOREST)
186 SQL로 머신러닝 구현하기 8(RANDOM FOREST)
187 SQL로 머신러닝 구현하기 (신경망)
188 SQL로 머신러닝 구현하기 10(신경망)
189 SQL로 머신러닝 구현하기 11(신경망)
190 SQL로 머신러닝 구현하기 12(SUPPORT VECTOR MACHINE)
191 SQL로 머신러닝 구현하기 13(SUPPORT VECTOR MACHINE)
192 SQL로 머신러닝 구현하기 14(SUPPORT VECTOR MACHINE)
193 SQL로 머신러닝 구현하기 15(REGRESSION)
194 SQL로 머신러닝 구현하기 16(REGRESSION)
195 SQL로 머신러닝 구현하기 17(파생변수 생성)
196 SQL로 머신러닝 구현하기 18(파생변수 생성)
197 SQL로 머신러닝 구현하기 19(APRIORI)
198 SQL로 머신러닝 구현하기 20(APRIORI)
199 SQL로 머신러닝 구현하기 21(K-MEANS)
200 SQL로 머신러닝 구현하기 22(K-MEANS)
APPENDIX 부록
001 Kaggle 상위권에 도전하기 1
002 Kaggle 상위권에 도전하기 2
ㅣ 데이터 분석가를 꿈꾸고 있다면?!
데이터가 중요하다는 말은 줄곧 많이 있어 왔습니다. 중요하다는 건 알지만 그 중요도에 대비하여 그 데이터를 어떻게 다뤄야 할지 잘 몰라 규모가 꽤 큰 기업에서도 활용을 잘 못하고 있었습니다. 하지만 최근에는 소수의 인원들만 일하는 스타트업들도 데이터에 기반하여 의사결정을 하려고 한다는 이야기를 많이 듣고 있습니다. 그 정도로 데이터를 다루는 분야가 과에 비해서 점점 일반화되고 있다는 것입니다.
데이터에 관해 인식이 넓어지고 필요한 곳이 많아지면서 데이터만 전문적으로 다루고 분석하는 데이터 분석가에 관한 니즈가 많이 늘어나고 있지만, 그만큼의 인원이 충분하지 않아 많은 기업들에서 꽤 좋은 대우를 받는다고 들었습니다.
저도 기획자로 일을 하면서 데이터 분석에 관한 일을 겸하고 싶어서 조금씩 공부를 하고 있는 편이었습니다. 그런 중에 최근에는 데이터 분석가로 일하기 위해서 SQL도 배워봐야겠다고 생각을 하고 있었습니다. 하지만 생각밖에 좋은 SQL 책을 찾기란 쉽지 않았습니다.
현재 시중에 나와 있는 대부분의 SQL 책들이 개발자를 위한 SQL들이고, 데이터 분석가를 목표로 하는 사람을 위한 책은 많이 없었습니다. 특히 데이터 분석을 공부하기 위해서는 연습을 많이 해야 하는데 예제가 많은 책을 찾기란 더 쉽지 않았습니다.
초보자를 위한 SQL 200제 책은 활용도 높은 예제가 많아서 연습하기 좋은 책이란 생각이 들었습니다.
ㅣ 초보자와 실습환경을 위한 세팅까지
초보자를 위한 책이라는 말답게 첫 페이지는 내 컴퓨터에서 실습을 하기 위한 설정을 하는 설명부터 나옵니다. 그리고 우리는 실습을 해야 하기 때문에 실습 데이터를 있어야만 합니다. 그런 데이터들을 이 책에서는 제공을 하고 있기 때문에 손쉽게 많은 연습들을 할 수가 있습니다.
저는 회사 DB에 접근권한을 받을 수 있는 회사를 다니고 있기 때문에 회사의 DB를 보면서 공부를 할 수 있지만, 보통의 회사에서는 DB 접근권한을 쉽게 주는 곳이 없다고 합니다. 그렇기 때문에 회사의 DB를 보기 전에 이 책을 보면서 많이 연습해 보면 좋을 거 같다는 생각이 들었습니다.
ㅣ 정말 쉬운 명령어부터 활용까지 200제!
200 제라는 말처럼 입문부터 실무까지 200가지의 예제로 곽 차 있습니다. 매일 하나씩만 예제를 연습해도 200일이라는 시간이 걸릴 정도로 내용은 꽉꽉 채워져 있습니다.
SQL을 통해서 데이터 분석에 입문해보고 싶었던 사람이라면 이처럼 좋은 책도 흔하지 않은 거 같습니다.
ㅣ 활용성이 높은 예제들
단순히 데이터를 출력하고 정제하는 것만을 알려주는 SQL 책이 아닙니다.
나중에 스스로 문제에 관해서 고민하고 쿼리를 직접 만들어 볼 수 있도록 연습을 도와주는 문제들로 구성이 되어 있어서 앞으로 SQL을 학습하는데 도움이 많이 될 것이라고 기대가 되는 부분입니다
ㅣ 실무에서 틈틈이!
이 책을 단기간에 한 번에 실습까지 모두 진행한다는 건 어려운 일입니다. 그래서 저는 회사에 두고 보면서 틈틈이 실습할 수 있는 부분들은 실습하면서 배워가고 있습니다. 또 일을 하다가 잘 모르는 부분들은 이 책의 목차를 보면서 필요한 내용들만 참고해서 업무를 진행하는데 도움을 받고 있습니다.
지금은 원활하게 참고하고 일을 진행하지는 못하고 있지만, 내용 정리가 잘 되어 있고 체계적으로 배울 수 있도록 되어 있기 때문에 틈틈히 배워 나간다면은 곧 잘할 수 있을 거라는 자신감이 생깁니다.
데이터에 관심 있고, 데이터 분석에 관해서 필요성을 느낀다면 이 책으로 시작해보는 걸 추천드립니다.
![]() |
|
# 데이터베이스 # 초보자를위한sql200제
'Culture & Book > 내가 읽은 그 책' 카테고리의 다른 글
[책 리뷰/ 차현나] 문과생, 데이터 사이언티스트 되다_데이터에 관심이 있는 모든 사람들을 위하여 (0) | 2020.06.12 |
---|---|
[책 리뷰 / 그레타 툰베리] 그레타 툰베리의 금요일_지구를 살리고 싶어! (0) | 2020.06.04 |
[책 리뷰 / 안드레스 오펜하이머] 2030 미래 일자리 보고서_내 미래의 일자리는 어떻게 될까? (0) | 2020.05.19 |
[책 리뷰 / 고토사카 마사히로] 경영 전략의 역사_최적의 전략은 축적된 역사에서 태어난다 (0) | 2020.05.15 |
[책 리뷰 / 조너선 스위프트] 걸리버 여행기_고전문학의 걸작! 동화가 아니었어! (0) | 2020.05.10 |