SQL, 이렇게 하면 된다 (개정판 2 판)

SQL, 이렇게 하면 된다 (개정판 2 판)

$31.00
Description
일본 최고 DB 전문가에게 배우는 현대적이고 실전적인 SQL 작성 원칙
10년 만에 개정된 SQL 엔지니어들의 필독서로서 SQL을 올바르게 사용하는 방법과 핵심 사고방식을 해설하는 책이다. 초판 구성을 살리면서도 SQL의 강력한 기능인 윈도 함수를 전면적으로 채용하는 등 거의 모든 코드와 해설을 최신 내용으로 개정했다. 폭넓은 DBMS를 다루며 빅데이터 시대 SQL을 다루는 엔지니어에 필요한 모던한 SQL 기능을 구사하는 방법을 살펴본다. 나아가 SQL의 원리가 되는 구조와 언어 설계의 배경을 짚으며, 어떤 의도와 판단으로 현재의 SQL 문법과 기능이 구성되었는지까지 깊이 있게 설명한다.
저자

미크

DB엔지니어로서20년의경력을보유하고있으며,관계형데이터베이스와SQL에대한기술서를집필하고있다.2018년부터실리콘밸리에서기술조사와사업개발에종사하고있다.저서중한국에번역된책은《데이터베이스설계,이렇게하면된다》,《데이터베이스첫걸음》,《SQL레벨업》,《SQL더쉽게,더깊게》등이있다.

목차

옮긴이머리말xiv
베타리더후기xvi
머리말xix
이책에대하여xxii

PARTI|SQL이라는마법

CHAPTER1|CASE식활용하기2
1.1시작하며2
1.2CASE식의기본형태3
1.3기존코드를새로운체계로바꿔서집계하기5
1.4서로다른조건을하나의SQL로집계하기9
1.5CHECK제약으로여러열의조건관계정의하기13
1.6조건에따라다르게UPDATE하기15
1.7테이블간매칭20
1.8CASE식안에서집계함수사용하기22
1.9정리25

CHAPTER2|윈도함수완전정복30
2.1윈도란무엇인가?31
2.2한장으로이해하는윈도함수34
2.3프레임절로다른행의데이터가져오기35
2.4윈도함수의내부동작43
2.5정리46

CHAPTER3|셀프조인활용법50
3.1중복순열,순열,조합50
3.2중복행삭제하기56
3.3부분적으로일치하지않는키검색하기58
3.4정리61

CHAPTER4|3값논리와NULL67
4.1시작하며67
4.2이론편68
4.3실전편73
4.4정리86

CHAPTER5|EXISTS술어사용법93
5.1이론편94
5.2실전편
5.3정리113

CHAPTER6|HAVING절의힘116
6.1데이터누락찾기117
6.2HAVING절과서브쿼리:최빈값구하기122
6.3NULL을포함하지않는집합찾기125
6.4HAVING절과보편양화132
6.5유일집합과다중집합137
6.6관계나눗셈으로장바구니분석하기140
6.7정리145

CHAPTER7|윈도함수로행간비교하기151
7.1시작하며151
7.2성장·감소·현상유지152
7.3시계열에누락된연도가있는경우:직전연도와비교157
7.4윈도함수vs상관서브쿼리159
7.5겹치는기간확인하기164
7.6정리169

CHAPTER8|외부조인활용법171
8.1시작하며171
8.2외부조인으로행렬변환(1):행→열로바꿔크로스테이블만들기172
8.3외부조인으로행렬변환(2):열→행으로반복되는항목정리하기177
8.4크로스테이블로중첩된행구조만들기180
8.5곱셈으로서의조인185
8.6완전외부조인188
8.7외부조인으로집합연산하기191
8.8외부조인으로차집합구하기:A-B191
8.9외부조인으로차집합구하기:B-A192
8.10완전외부조인으로배타적합집합구하기193
8.11정리195

CHAPTER9|SQL의집합연산198
9.1시작하며198
9.2집합연산과관련된몇가지주의점199
9.3테이블끼리비교하기:집합의동일성확인[기본편]200
9.4테이블비교:집합의동일성확인[응용편]204
9.5차집합으로관계나눗셈표현하기206
9.6동일한부분집합찾기209
9.7중복행을빠르게삭제하는쿼리213
9.8정리215

CHAPTER10|SQL로수열다루기218
10.1시작하며218
10.2순번만들기219
10.3누락된번호전부찾기223
10.4세명이연속으로앉을수있는좌석배치225
10.5줄바꿈이있는수열229
10.6단조증가와단조감소231
10.7정리235

CHAPTER11|SQL빠르게만들기238
11.1시작하며238
11.2효율적으로검색하기239
11.3정렬피하기241
11.4극값함수(MAX/MIN)에서인덱스사용하기245
11.5WHERE절에쓸수있는조건은HAVING절에쓰지않기246
11.6인덱스가정말사용되고있을까?247
11.7중간테이블줄이기251
11.8정리254

CHAPTER12|SQL프로그래밍스타일256
12.1시작하며256
12.2테이블설계258
12.3코딩스타일지침260
12.4대문자와소문자265
12.5정리273

PARTII|관계형데이터베이스의세계

CHAPTER13|RDB근현대사276
13.1관계형데이터베이스의역사276
13.2파괴적혁신은반복될까?282
13.3NoSQL의종류와해결방법284
13.4성능문제해결하기285
13.5정리287

CHAPTER14|왜‘관계’모델이라고부를까?289
14.1관계의정의290
14.2도메인의우울293
14.3관곗값과관계변수294
14.4관계안의관계가가능할까?295

CHAPTER15|관계로시작해관계로끝나다298
15.1연산으로보는집합298
15.2이론과실제301

CHAPTER16|주소라는거대한괴물303
16.1시작하며304
16.2주소에서자유로워지기위해태어난관계모델304
16.3프로그래밍에넘쳐나는주소306
16.4사라지지않는노병:배커스의꿈308

CHAPTER17|순서를둘러싼모험309
17.1늦게나타난주인공309
17.2행에순서가있어야할까?309

CHAPTER18|GROUPBY와PARTITIONBY315
18.1차이점을아시나요?315

CHAPTER19|절차형에서선언형·집합지향으로사고전환을위한7가지원칙321
19.1IF문과CASE문을CASE식으로바꾸기:SQL은함수형언어와비슷하다322
19.2반복문을GROUPBY절과윈도함수로바꾸기324
19.3테이블행에는순서가없음을기억하기324
19.4테이블을집합으로보기326
19.5EXISTS술어와‘양화’개념이해하기326
19.6HAVING절의진짜가치알아보기327
19.7네모말고원그리기328

CHAPTER20|신이사라진세상의논리330
20.1때로는참과거짓을포기하라330
20.2논리학의혁명332
20.3인간을위한논리333

CHAPTER21|SQL과재귀집합335
21.1실무에서만나는재귀집합335
21.2노이만의선배들336
21.3수란무엇인가?338
21.4SQL의마술과과학341

CHAPTER22|NULL박멸위원회342
22.1결의문:모든DB엔지니어에게고함342
22.2왜NULL이그렇게나쁠까?343
22.3하지만NULL을완전히없앨수는없다344
22.4코드의경우:대체코드만들기346
22.5이름의경우:기본값정하기347
22.6숫자의경우:0으로바꾸기347
22.7날짜의경우:최댓값·최솟값사용하기348
22.8지침정리348

CHAPTER23|SQL의존재계층349
23.1술어논리의계층과집합의계층349
23.2집계하면왜원래열을참조할수없을까?350
23.3원소하나짜리집합도엄연한집합이다354

PARTIII|부록

APPENDIXA|연습문제해답358

맺음말386
찾아보기390

출판사 서평

SQL은문법이아니라사고방식이다
초급에서벗어나는SQL사고법과작성원칙
SELECT는쓸줄아는데왜쿼리는항상복잡해질까?왜이렇게써야하는지이해하는순간쿼리는훨씬단순해진다.이책은SQL을문법이나요령의모음이아니라원리와사고방식의언어로바라본다는점에서특별하다.
저자는일본IT업계에서오랜시간데이터베이스와SQL을다뤄온전문가다.그경험을바탕으로,SQL을‘어떻게쓰는가’에서그치지않고‘왜그렇게쓰는가’라는관점에서설명한다.따라서특정DBMS에종속된기능이나기법은다루지않는다.관계형데이터베이스의기본원리와SQL이설계된배경을짚어가며,이를토대로더좋은SQL쿼리를작성하는방법을보여준다.

1부는CASE,윈도함수,조인,NULL,EXISTS,HAVING,집합연산,수열다루기,성능최적화,코딩스타일등실전적인SQL활용법을다룬다.2부는관계형데이터베이스의세계를더깊이파고든다.RDB근현대사로시작해절차형/선언형/집합지향등프로그래밍언어패러다임과논리학,재귀집합,NULL까지SQL의근간이되는이론과맥락을풀어놓는다.

늘비슷한방식으로만쿼리를작성해왔다면이책은익숙한SQL을완전히다른관점에서다시볼수있게해줄것이다.SQL을도구가아니라생각하는방식으로이해하고싶은사람에게특히의미있는책이다.