• 베스트
  • 소득공제
  • 무료배송

불친절한 SQL 프로그래밍

  • 정희락
  • 디비안
  • 2018년 09월 10일
사용자 평점
0리뷰 0개
10%39,600원44,000원
적립금
2,200원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 9/30(수) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9791196395711
쪽수1,040쪽
크기B5(188mm X 257mm, 사륙배판)
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 시스템공학
관련 이벤트

AI추천 이유

책 소개

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

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

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

목차

[목 차]

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
20.2.3 기본값 _ 574
20.2.4 열 유형 _ 575
20.3 제약 조건 _ 581
20.3.1 기본 문법 _ 581
20.3.2 제약 조건 유형 _ 583
20.3.3 제약 조건 상태 _ 599
20.4 인덱스 _ 605
20.4.1 기본 문법 _ 606
20.4.2 인덱스 유형 _ 611
20.4.3 인덱스와 제약 조건 _ 616
20.5 파티션 _ 622
20.5.1 파티션 테이블 _ 622
20.5.2 파티션 인덱스 _ 640
20.5.3 관리 구문 _ 643
20.5.4 관리 구문과 인덱스 _ 652
20.5.5 신규 기능 _ 653
20.6 뷰 _ 658
20.6.1 기본 문법 _ 658
20.6.2 활용 예제 _ 666
20.7 시퀀스 _ 669
20.7.1 기본 문법 _ 669
20.7.2 시퀀스 유형 _ 673
20.7.3 신규 기능 _ 675
20.7.4 활용 예제 _ 680
20.8 시너님 _ 682
20.8.1 기본 문법 _ 682
20.8.2 시너님 유형 _ 685
20.9 데이터베이스 링크 _ 687
20.9.1 기본 문법 _ 687
20.9.2 고급 주제 _ 690
20.10 COMMENT 문 _ 693

21. DCL 문 _ 695
21.1 사용자 _ 695
21.1.1 기본 문법 _ 695
21.2 권한 _ 698
21.2.1 기본 문법 _ 698
21.3 롤 _ 709
21.3.1 기본 문법 _ 709
21.3.2 SET ROLE 문 _ 714

22. SCS 문 _ 719
22.1 기본 문법 _ 719
22.1.1 ALTER SESSION SET 절 _ 720


5부 고급 쿼리 _ 729

23. 세계화 지원 _ 731
23.1 시간대 지원 _ 731
23.1.1 데이터 타입 _ 731
23.1.2 날짜 함수 _ 733
23.1.3 날짜 표현식 _ 739
23.2 다국어 지원 _ 740
23.2.1 캐릭터 셋 _ 740
23.2.2 데이터 타입 _ 741
23.2.3 관련 함수 _ 742

24. 정규 표현식 _ 743
24.1 기본 문법 _ 743
24.1.1 POSIX 연산자 _ 743
24.1.2 PERL 정규 표현식 연산자 _ 752
24.2 정규 표현식 조건과 함수 _ 756
24.3 활용 예제 _ 764

25. 근사 쿼리 _ 767
25.1 근사 함수 _ 767
25.2 초기화 파라미터 _ 773

26. MODEL 절 _ 777
26.1 기본 문법 _ 777
26.1.1 RULES 절 _ 781
26.1.2 규칙 옵션 _ 785
26.1.3 셀 참조 옵션 _ 789
26.1.4 행 반환 옵션 _ 792
26.1.5 참조 모델 _ 793
26.2 고급 주제 _ 796
26.2.1 널과 누락된 셀 처리 _ 796
26.2.2 FOR 루프 _ 798
26.2.3 MODEL ITERATE 절 _ 804
26.2.4 규칙 종속 _ 806
26.2.5 정렬 규칙 _ 807
26.2.6 분석 함수 _ 810
26.3 활용 예제 _ 812

27. MATCH_RECOGNIZE 절 _ 817
27.1 기본 문법 _ 817
27.1.1 PARTITION BY 절 _ 820
27.1.2 ORDER BY 절 _ 820
27.1.3 ROW PER MATCH 절 _ 821
27.1.4 MEASURE 절 _ 821
27.1.5 PATTERN 절 _ 821
27.1.6 SUBSET 절 _ 824
27.1.7 DEFINE 절 _ 825
27.1.8 SKIP TO 절 _ 825
27.1.9 MEASURE 절과 DEFINE 절의 표현식 _ 826
27.2 고급 주제 _ 833
27.2.1 중첩 탐색 함수 _ 833
27.2.2 빈 일치와 불일치 행 _ 834
27.2.3 제외 _ 834
27.2.4 순열 _ 835
27.3 활용 예제 _ 836

28. 사용자 정의 타입 _ 857
28.1 기본 문법 _ 857
28.1.1 오브젝트 타입 _ 858
28.1.2 중첩 테이블 _ 858
28.2 MULTISET 조건 _ 864
28.3 컬렉션 함수 _ 866
28.4 TABLE 컬렉션 표현식 _ 871
28.5 활용 예제 _ 873

29. XML 개발 _ 875
29.1 기본 문법 _ 875
29.1.1 XMLType _ 875
29.1.2 XMLType 멤버 함수 _ 877
29.1.3 XPath 표현식 _ 877
29.1.4 XML 함수 _ 883
29.1.5 XQuery 표현식 _ 893
29.1.6 DBMS_XMLGEN 패키지 _ 903
29.2 활용 예제 _ 904

30. JSON 개발 _ 907
30.1 기본 문법 _ 907
30.1.1 JSON 열 _ 907
30.1.2 점 표기법 _ 909
30.1.3 SQL/JSON Path 표현식 _ 910
30.1.4 SQL/JSON 조건 _ 910
30.1.5 JSON 함수 _ 913
30.2 활용 예제 _ 920

31. Flashback 기술 _ 921
31.1 Flashback 기능 _ 921
31.1.1 Flashback Query _ 921
31.1.2 Flashback Version Query _ 924
31.1.3 Flashback Transaction Query _ 925
31.1.4 Flashback Table _ 926
31.1.5 Flashback Drop _ 927
31.1.6 Flashback Database _ 928
31.2 Temporal Validity _ 929
31.2.1 관리 구문 _ 929
31.2.2 조회 구문 _ 931
31.2.3 DBMS_FLASHBACK_ARCHIVE 패키지 _ 933

32. 제공 패키지 _ 935
32.1 DBMS_CRYPTO 패키지 _ 935
32.1.1 패키지 함수 _ 936
32.1.2 활용 예제 _ 941
32.2 DBMS_RANDOM 패키지 _ 944
32.3 DBMS_LOB 패키지 _ 945
32.4 DBMS_METADATA 패키지 _ 948
32.5 DBMS_APPLICATION_INFO 패키지 _ 951
32.6 DBMS_SESSION 패키지 _ 952
32.7 UTL_RAW 패키지 _ 954
32.7.1 패키지 함수 _ 954
32.7.2 활용 예제 _ 954
32.8 UTL_MATCH 패키지 _ 956
32.9 UTL_RECOMP 패키지 _ 958

부록 _ 961
A. SCOTT 스키마 _ 963
B. ERD 표기법 _ 965
C. 예시 데이터 모델 _ 969
D. oerr 명령어 _ 973
E. 문자열 결합 _ 979
F. 시간 차원 테이블 _ 989
G. 블로킹 처리 _ 997
H. 복합 FK 제약 조건 _ 1001
I. 도메인 인덱스 _ 1007
J. 시퀀스 값 변경 _ 1013
K. SCALABLE 시퀀스 _ 1017
L. 문자열 분리 _ 1021
M. CUROSR 표현식 _ 1025

출판사 서평

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

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

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

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

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

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

    이 책을 읽고 어떤 느낌을 받으셨나요?
    리뷰를 남기고 다른 독자들과 함께 공유해보세요.

    안내 열기구매(배송/수령완료) 후 리뷰를 작성하시면 적립금 300원을 드려요!

    등록된 리뷰가 없습니다

    첫번째 리뷰어가 되어주세요

    교환/반품/환불
    반품/교환방법
    • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
    • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
    반품/교환 가능기간
    • 변심반품의 경우 수령 후 7일 이내
    • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용
    • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 만화, 잡지, 수험서 및 문제집류
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    상품 품절
    • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    매장에서 사용할 수 있는 바코드가 있어요!