불친절한 SQL 프로그래밍 (기본 개념에서 고급 기능까지 오라클 SQL의 바이블)

불친절한 SQL 프로그래밍 (기본 개념에서 고급 기능까지 오라클 SQL의 바이블)

$53.94
Description
이미 수많은 SQL 책이 출간되어 있지만 기초적인 내용만 다루는 "친절한" 책이 대부분이다. 기초적인 내용만 다루다 보니 막상 필요한 고급 기능은 인터넷에서 찾아야 하는 아쉬움이 있다. SQL 프로그래밍의 원리와 해법을 다루는, 조금 "불친절한" 책도 필요하겠다는 생각에 이 책을 쓰게 되었다. 그렇다고 겁먹을 필요는 없다. 입문자를 위한 기본적인 내용도 빠짐없이 다루고 있다.

이 책은 바이블 형식의 책이다. 오라클 데이터베이스 12.2 버전을 기준으로 기본 개념에서 고급 기능까지 오라클 SQL의 거의 모든 내용을 다룬다. SQL 외에도 데이터 개론과 SQL 개발에 활용할 수 있는 PL/SQL 코드를 일부 수록하고 있다. 바이블 형식의 책이지만 지루한 설명 대신 다양한 실습 예제와 활용 기법을 중심으로 내용을 구성했다.

이해하기 쉽고 정확한 결과를 반환하는 SQL이 좋은 SQL이다. 좋은 SQL을 작성하려면 많은 노력이 필요하다. 동작 원리를 이해하고, 기존 SQL을 분석해야 하며, 직접 SQL을 작성해봐야 한다. 데이터 모델에 대한 이해와 요구사항에 대한 분석까지 더해지면 금상첨화다. 이 책이 여러분의 노력에 도움을 줄 수 있는 든든한 안내자가 되었으면 좋겠다.

내용 문의 : http://www.dbian.net
저자

정희락

광운대학교에서 컴퓨터 공학을 전공했고, 2007년부터 에프앤가이드에서 데이터베이스 개발자로 근무했다. 자회사인 에프앤자산평가에서는 TA 업무를 담당했다.
비투엔으로 이직한 2011년부터 데이터 컨설턴트로 일하기 시작했고, 현재는 디비안에서 수석 컨설턴트로 재직하고 있다.
대외적으로는 한국데이터진흥원에서 주관하는 SQLP, DAP 자격검정 전문위원으로 활동하고 있다. 데이터베이스 기술, 시스템 최적화, 애플리케이션 개발에 관심이 많다

목차

1부 기본 개념 _ 1

1. 데이터 _ 3
1.1 데이터 _ 3
1.2 데이터베이스 _ 5
1.3 데이터베이스 관리 시스템 _ 6
1.4 IT 시스템 _ 7
1.5 직종과 직무 _ 8

2. 데이터 모델링 _ 11
2.1 데이터 모델 _ 11
2.2 E-R 모델 _ 12
2.2.1 엔터티 _ 13
2.2.2 속성 _ 14
2.2.3 관계 _ 15
2.2.4 예시 데이터 모델 _ 20
2.3 정규형 _ 22
2.3.1 정규화 _ 22
2.3.2 비정규화 _ 25
2.4 물리 데이터 모델 _ 25

3. 오라클 데이터베이스 _ 27
3.1 개념 _ 27
3.1.1 사용자 _ 28
3.1.2 오브젝트 _ 28
3.1.3 테이블 _ 29
3.1.4 데이터 타입 _ 30
3.1.5 데이터 무결성 _ 30
3.1.6 트랜잭션 _ 31
3.1.7 정적 데이터 딕셔너리 뷰 _ 31
3.1.8 동적 성능 뷰 _ 31
3.2 구조 _ 32
3.2.1 데이터베이스와 인스턴스 _ 33
3.2.2 프로세스 구조 _ 35
3.2.3 메모리 구조 _ 35
3.2.4 저장 구조 _ 37
3.2.5 네트워크 구조 _ 38
3.2.6 애플리케이션 구조 _ 39

4. SQL _ 43
4.1 역사 _ 43
4.2 특징 _ 44
4.3 종류 _ 45
4.4 처리 과정 _ 45
4.5 수행 과정 _ 46

2부 기초 쿼리 _ 49

5. SELECT 문 _ 51
5.1 SELECT 절 _ 52
5.1.1 애스터리스크 _ 52
5.1.2 열 _ 53
5.1.3 열 별칭 _ 55
5.1.4 DISTINCT 키워드 _ 55
5.2 FROM 절 _ 56
5.2.1 스키마 _ 56
5.2.2 테이블 별칭 _ 57
5.2.3 SAMPLE 절 _ 58
5.3 기본 요소 _ 58
5.3.1 리터럴 _ 58
5.3.2 널 _ 65
5.3.3 연산자 _ 65
5.3.4 표현식 _ 69
5.3.5 슈도 칼럼 _ 72
5.3.6 주석 _ 73
5.4 바인드 변수 _ 75

6. 단일 행 함수 _ 77
6.1 문자 함수 _ 78
6.2 숫자 함수 _ 89
6.3 날짜 함수 _ 96
6.4 변환 함수 _ 107
6.5 널 관련 함수 _ 123
6.6 비교 함수 _ 126
6.7 엔코딩 디코딩 함수 _ 127
6.8 환경 식별자 함수 _ 132

7. WHERE 절 _ 141
7.1 비교 조건 _ 141
7.2 논리 조건 _ 144
7.3 BETWEEN 조건 _ 146
7.4 IN 조건 _ 148
7.5 LIKE 조건 _ 151
7.6 널 조건 _ 154
7.7 조건 우선순위 _ 156
7.8 활용 예제 _ 159

8. ORDER BY 절 _ 169
8.1 기본 문법 _ 169
8.2 활용 예제 _ 175

9. 집계 함수 _ 179
9.1 기본 함수 _ 179
9.2 통계 함수 _ 185
9.3 순위 함수 _ 187
9.4 분포 함수 _ 191
9.5 기타 함수 _ 193
9.6 KEEP 키워드 _ 194

10. GROUP BY 절과 HAVING 절 _ 197
10.1 GROUP BY 절 _ 197
10.2 GROUP BY 절의 확장 기능 _ 204
10.2.1 ROLLUP _ 204
10.2.2 CUBE _ 205
10.2.3 GROUPING SETS _ 207
10.2.4 조합 열 _ 208
10.2.5 연결 그룹 _ 209
10.2.6 관련 함수 _ 210
10.3 HAVING 절 _ 213

3부 중급 쿼리 _ 217

11. 조인 _ 219
11.1 기본 원리 _ 219
11.1.1 조인 조건 _ 220
11.1.2 조인 범위 _ 227
11.1.3 조인 차수 _ 240
11.2 기술 순서 _ 245
11.3 ANSI 조인 문법 _ 250
11.3.1 NATURAL JOIN 절 _ 250
11.3.2 USING 절 _ 250
11.3.3 CROSS JOIN 절 _ 250
11.3.4 INNER JOIN 절 _ 251
11.3.5 OUTER JOIN 절 _ 252
11.4 파티션 아우터 조인 _ 257
11.5 활용 예제 _ 257

12. 서브 쿼리 _ 283
12.1 중첩 서브 쿼리 _ 285
12.1.1 비상관 서브 쿼리 _ 286
12.1.2 상관 서브 쿼리 _ 291
12.1.3 사용 기준 _ 295
12.2 스칼라 서브 쿼리 _ 300
12.3 인라인 뷰 _ 302
12.4 사용 기준 _ 304
12.5 WITH 절 _ 309
12.5.1 SUBQUERY FACTORING 절 _ 310
12.5.2 PL/SQL 선언 _ 311
12.6 신규 기능 _ 312
12.6.1 LATERAL 인라인 뷰 _ 312
12.6.2 CROSS APPLY 절 _ 314
12.6.3 OUTER APPLY 절 _ 314
12.6.4 기존 동작 변화 _ 315

13. 집합 연산자 _ 317
13.1 기본 문법 _ 319
13.1.1 UNION ALL 연산자 _ 319
13.1.2 UNION 연산자 _ 320
13.1.3 INTERSECT 연산자 _ 322
13.1.4 MINUS 연산자 _ 323
13.2 제약 사항 _ 323
13.3 활용 예제 _ 326

14. 분석 함수 _ 337
14.1 기본 문법 _ 338
14.1.1 QUERY PARTITION 절 _ 338
14.1.2 ORDER BY 절 _ 339
14.1.3 WINDOWDING 절 _ 340
14.1.4 KEEP 키워드 _ 350
14.1.5 제약 사항 _ 351
14.2 분석 함수 _ 354
14.2.1 기본 함수 _ 355
14.2.2 통계 함수 _ 361
14.2.3 순위 함수 _ 363
14.2.4 분포 함수 _ 372
14.2.5 순차 함수 _ 374
14.2.6 기타 함수 _ 379
14.3 활용 예제 _ 386

15. Top-N 쿼리 _ 395
15.1 기본 문법 _ 395
15.1.1 ROWNUM 방식 _ 395
15.1.2 분석 함수 방식 _ 400
15.1.3 ROW LIMITING 절 _ 403
15.2 고급 주제 _ 405
15.2.1 Top-N 쿼리와 조인 _ 405
15.2.2 Top-N 쿼리와 UNION ALL 연산자 _ 407

16. 계층 쿼리 _ 409
16.1 계층 쿼리 절 _ 413
16.1.1 기본 문법 _ 413
16.1.2 동작 원리 _ 415
16.1.3 전개 방향 _ 419
16.1.4 계층 정렬 _ 420
16.1.5 루프 처리 _ 421
16.2 재귀 서브 쿼리 팩토링 _ 423
16.2.1 기본 문법 _ 423
16.2.2 계층 정렬 _ 425
16.2.3 루프 처리 _ 427
16.3 고급 주제 _ 429
16.3.1 노드 제거 _ 429
16.3.2 다중 루트 노드 _ 430
16.3.3 다중 속성 순환 관계 _ 431
16.3.4 계층 쿼리와 조인 _ 435
16.4 활용 예제 _ 436

17. PIVOT 절과 UNPIVOT 절 _ 443
17.1 PIVOT 절 _ 443
17.1.1 기본 문법 _ 444
17.1.2 기존 방식 _ 448
17.2 UNPIVOT 절 _ 449
17.2.1 기본 문법 _ 449
17.2.2 기존 방식 _ 454
17.3 활용 예제 _ 455

4부 관리 구문 _ 459

18. DML 문 _ 461
18.1 INSERT 문 _ 461
18.1.1 단일 테이블 INSERT 문 _ 461
18.1.2 다중 테이블 INSERT 문 _ 465
18.2 UPDATE 문 _ 469
18.3 DELETE 문 _ 474
18.4 MERGE 문 _ 476
18.4.1 기본 문법 _ 476
18.4.2 고급 주제 _ 486
18.5 DML 에러 로깅 _ 491

19. TCS 문 _ 497
19.1 트랜잭션 _ 498
19.1.1 구조 _ 498
19.1.2 SCN _ 499
19.2 기본 문법 _ 500
19.2.1 COMMIT 문 _ 501
19.2.2 ROLLBACK 문 _ 502
19.2.3 SAVEPOINT 문 _ 504
19.3 데이터 동시성 _ 508
19.3.1 락킹 메커니즘 _ 508
19.3.2 동시성 제어 _ 512
19.4 데이터 일관성 _ 520
19.4.1 문장 수준 읽기 일관성 _ 521
19.4.2 트랜잭션 수준 읽기 일관성 _ 522

20. DDL 문 _ 527
20.1 테이블 _ 527
20.1.1 기본 문법 _ 527
20.1.2 테이블 유형 _ 539
20.2 열 _ 555
20.2.1 기본 문법 _ 555
20.2.2 데이터 타입 _ 561

출판사 서평

SQL은 정보 시스템을 구축하고 운영하는 데 있어 가장 기본이 되는 필수 소양 기술이다. 빅데이터 시대를 맞아 요즘은 현업 부서에서도 SQL을 활용해 직접 데이터를 분석할 정도로 SQL의 중요성은 점차 증대하고 있다. 그에 비해 데이터베이스 사용자들의 SQL 활용 능력은 예나 지금이나 초보 수준을 벗어나지 못하고 있어 늘 안타까웠는데, 이렇게 고급 SQL 프로그래밍을 다룬 책을 추천할 수 있게 돼 여간 기쁘지 않다. 저자는 국내 최고 수준의 데이터베이스 기술력을 갖춘 실무형 컨설턴트이기에 더 기대가 크다.

자신의 영역에서 고급 SQL을 활용해 업무 능력을 끌어올리고 싶은 모든 이에게 이 책을 자신 있게 추천한다. 활용성 있는 예시를 많이 제시하므로 읽는 내내 고개를 끄떡이며 무릎을 치게 될 것이다. 저자는 소스 코드가 너무 많아 독자가 불친절하다고 느끼지 않을까 걱정했지만, 늘 일정에 쫓기는 개발자는 백 마디 설명보다 실용적인 한 줄 예시 코드에 더 감동하기 마련이다. 이 책을 늘 가까이 두고 사전처럼 수시로 참조한다면, 어느 순간 고급 SQL 프로그래머로 성장해 있는 자신을 발견하게 될 것이다.

- 국가공인 SQLP/SQLD 자격검정 응시자
- SQL 프로그래밍에 입문하고자 하는 개발자 및 DBA
- 고급 데이터베이스 프로그래머
- 데이터베이스 설계자

책에 대해 궁금한 사항은 저자가 활동하고 있는 아래 인터넷 카페로 문의하기 바란다.

디비안 포럼 http://www.dbian.net