홈 > 부모님 > 부모님 > 소설,일반 > 컴퓨터,모바일
SQL, 이렇게 하면 된다  이미지

SQL, 이렇게 하면 된다
기초부터 CASE 식, 윈도 함수, 조인, 고급 쿼리까지 실제 예제로 빠르게 배우고 정확하게 쓰는 SQL 활용 및 프로그래밍 완전 가이드, 제2판
제이펍 | 부모님 | 2026.03.26
  • 정가
  • 31,000원
  • 판매가
  • 27,900원 (10% 할인)
  • S포인트
  • 1,550P (5% 적립)
  • 상세정보
  • 17x22.5 | 0.798Kg | 420p
  • ISBN
  • 9791124205198
  • 배송비
  • 2만원 이상 구매시 무료배송 (제주 5만원 이상) ?
    배송비 안내
    전집 구매시
    주문하신 상품의 전집이 있는 경우 무료배송입니다.(전집 구매 또는 전집 + 단품 구매 시)
    단품(단행본, DVD, 음반, 완구) 구매시
    2만원 이상 구매시 무료배송이며, 2만원 미만일 경우 2,000원의 배송비가 부과됩니다.(제주도는 5만원이상 무료배송)
    무료배송으로 표기된 상품
    무료배송으로 표기된 상품일 경우 구매금액과 무관하게 무료 배송입니다.(도서, 산간지역 및 제주도는 제외)
  • 출고일
  • 품절된 상품입니다.
  • ★★★★★
  • 0/5
리뷰 0
리뷰쓰기

구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.

  • 도서 소개
  • 출판사 리뷰
  • 작가 소개
  • 목차
  • 회원 리뷰

  도서 소개

일본 최고 DB 전문가에게 배우는 현대적이고 실전적인 SQL 작성 원칙

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

  출판사 리뷰

SQL은 문법이 아니라 사고방식이다
초급에서 벗어나는 SQL 사고법과 작성 원칙


SELECT는 쓸 줄 아는데 왜 쿼리는 항상 복잡해질까? 왜 이렇게 써야 하는지 이해하는 순간 쿼리는 훨씬 단순해진다. 이 책은 SQL을 문법이나 요령의 모음이 아니라 원리와 사고방식의 언어로 바라본다는 점에서 특별하다.
저자는 일본 IT 업계에서 오랜 시간 데이터베이스와 SQL을 다뤄온 전문가다. 그 경험을 바탕으로, SQL을 '어떻게 쓰는가'에서 그치지 않고 '왜 그렇게 쓰는가'라는 관점에서 설명한다. 따라서 특정 DBMS에 종속된 기능이나 기법은 다루지 않는다. 관계형 데이터베이스의 기본 원리와 SQL이 설계된 배경을 짚어가며, 이를 토대로 더 좋은 SQL 쿼리를 작성하는 방법을 보여준다.
1부는 CASE, 윈도 함수, 조인, NULL, EXISTS, HAVING, 집합 연산, 수열 다루기, 성능 최적화, 코딩 스타일 등 실전적인 SQL 활용법을 다룬다. 2부는 관계형 데이터베이스의 세계를 더 깊이 파고든다. RDB 근현대사로 시작해 절차형/선언형/집합 지향 등 프로그래밍 언어 패러다임과 논리학, 재귀 집합, NULL까지 SQL의 근간이 되는 이론과 맥락을 풀어놓는다.
늘 비슷한 방식으로만 쿼리를 작성해왔다면 이 책은 익숙한 SQL을 완전히 다른 관점에서 다시 볼 수 있게 해줄 것이다. SQL을 도구가 아니라 생각하는 방식으로 이해하고 싶은 사람에게 특히 의미 있는 책이다.




단순하게 생각하면 다음과 같이 UPDATE 문을 두 번 실행하면 될 것 같지만, 이는 잘못된 방법입니다. (…) 왜 잘못된 방법일까요? 예를 들어 현재 급여가 300만 원인 직원의 경우, 조건 1의 UPDATE로 급여가 270만 원으로 줄어듭니다. 하지만 여기서 끝이 아닙니다. 이어서 실행되는 조건 2의 UPDATE에 의해 324만 원으로 다시 늘어나버립니다. 감봉인 줄 알았는데 실제로는 24만 원이 인상된 셈입니다.

Lisp, Haskell 같은 함수형 언어 또는 자바를 써보신 분이라면 ‘고차 함수’라는 개념을 아실 겁니다. 일반 값이 아니라 함수를 인수로 받는 함수를 말합니다. 이때 ‘차수’도 술어 논리의 ‘차수’와 같은 개념입니다(사실 차수라는 개념 자체가 집합론과 술어 논리에서 나왔습니다). EXISTS는 집합이라는 1차 존재를 인수로 받으므로 2차 술어가 되고, 술어는 함수의 일종이므로 결국 다음과 같이 말할 수 있습니다. EXISTS는 고차 함수이다.

  작가 소개

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

  목차

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

PART I | SQL이라는 마법

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

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

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

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

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

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

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

CHAPTER 8 | 외부 조인 활용법 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 - B 191
8.9 외부 조인으로 차집합 구하기: B - A 192
8.10 완전 외부 조인으로 배타적 합집합 구하기 193
8.11 정리 195

CHAPTER 9 | 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

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

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

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

PART II | 관계형 데이터베이스의 세계

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

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

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

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

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

CHAPTER 18 | GROUP BY와 PARTITION BY 315
18.1 차이점을 아시나요? 315

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

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

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

CHAPTER 22 | 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

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

PART III | 부록

APPENDIX A | 연습 문제 해답 358

맺음말 386
찾아보기 390

  회원리뷰

리뷰쓰기