목차
저자 서문 ... 3
이 책의 특징 ... 5
학습 로드맵 ... 6
Part 1 오라클 SQL 소개
1장 오라클 소개 ... 21
01 DBMS란? ... 23
DBMS의 개요 ... 23
DBMS의 종류 ... 25
02 오라클은 왜 오라클인가? ... 29
오라클의 의미 ... 29
오라클의 간략한 역사 ... 30
03 Oracle 10g의 등장 ... 32
그리드의 의미 ... 32
Oracle 10g의 그리드적 특징 ... 33
이것만은 알고 갑시다 ... 36
2장 Oracle 10g 설치 ... 37
01 설치 전 준비사항 ... 39
에디션별 특징 ... 39
하드웨어 및 소프트웨어 요구사항 ... 41
02 윈도우에서 Oracle 10g 설치하기 ... 43
03 기본 설정 및 연결 ... 52
오라클 연결 ... 52
오라클 사용을 위한 추가 작업 ... 57
04 Oracle SQL Developer 1.2 설치하기 ... 65
이것만은 알고 갑시다 ... 70
3장 SQL 소개 ... 71
01 SQL이란 무엇인가? ... 73
구조화된 언어 SQL ... 73
SQL의 특징 ... 74
02 SQL의 발자취 ... 75
SQL의 탄생 ... 75
SQL 표준 ... 75
03 SQL 해부 ... 77
데이터 조작하기(DML) ... 77
객체 조작하기(DDL) ... 84
04 SQL 문장의 구성요소들 ... 86
예약어 ... 87
연산자 ... 88
의사컬럼 ... 89
함수 ... 91
표현식 ... 91
조건 ... 92
05 샘플 스키마 설치 ... 93
오라클 샘플 스키마 소개 ... 94
샘플 스키마 신규 설치 ... 96
샘플 스키마 다이어그램 ... 98
Exercise 3-1 이것만은 알고 갑시다 ... 103
Part 2 SQL 들어가기
4장 오라클 식구들(데이터베이스 객체) ... 107
01 데이터 저장창고, 테이블 ... 109
테이블 만들기 ... 111
기본 데이터 타입 ... 113
컬럼 속성(무결성 제약조건) ... 128
테이블의 복사 ... 140
테이블의 제거 ... 141
Exercise 4-1 ... 142
02 데이터를 빨리 찾으려면... (인덱스) ... 145
인덱스의 생성과 삭제 ... 145
인덱스의 종류 ... 148
인덱스 생성시 고려해야 할 사항들 ... 150
Exercise 4-2 ... 151
03 창고 안 들여다 보기, 뷰 ... 151
뷰의 생성 ... 152
뷰는 어떻게 사용되는가? ... 155
기타 뷰 ... 162
Exercise 4-3 ... 163
04 클러스터 ... 163
05 객체에 호(號)를 만들어 보자(시노님) ... 164
Exercise 4-4 ... 169
06 순번을 부여해 보자(시퀀스) ... 170
시퀀스의 생성 ... 170
시퀀스에 사용되는 의사컬럼 ... 172
시퀀스의 삭제 ... 174
Exercise 4-5 ... 175
이것만은 알고 갑시다 ... 176
5장 관계를 맺자! 조인 ... 179
01 개요 ... 181
02 WHERE 절 ... 182
연산자 ... 184
AND와 OR, 그리고 NOT ... 185
범위 조건 ... 189
IN과 EXISTS ... 195
LIKE ... 201
NULL 처리 ... 205
Exercise 5-1 ... 211
03 조인이란? ... 212
04 내부조인 ... 217
두 개 이상의 테이블 조인 ... 217
일반조건과 조인조건을 포함한 조인 ... 219
Cartesian Product ... 221
셀프조인 ... 224
기타 조인들 ... 227
Exercise 5-2 ... 230
05 외부조인 ... 231
Exercise 5-3 ... 246
06 ANSI 조인 ... 246
ANSI 내부조인 ... 247
크로스 조인 ... 249
ANSI 외부조인 ... 249
Exercise 5-4 ... 255
이것만은 알고 갑시다 ... 256
6장 오라클 기본 함수 ... 257
01 함수란? ... 259
02 숫자형 함수 ... 261
Exercise 6-1 ... 270
03 문자형 함수 ... 271
Exercise 6-2 ... 285
04 숫자형 데이터를 반환하는 문자형 함수 ... 286
05 날짜형 함수 ... 289
현재 날짜를 반환하는 함수 ... 289
일반적인 날짜형 함수 ... 293
기타 날짜형 함수 ... 301
Exercise 6-3 ... 302
06 Null 관련 함수 ... 303
Exercise 6-4 ... 308
07 변환 함수 ... 310
문자형 데이터로 형변환하는 함수(TO_CHAR) ... 310
숫자형 데이터로 형변환하는 함수들 ... 314
날짜형 데이터로 형변환하는 함수들 ... 315
08 DECODE와 CASE ... 316
DECODE ... 317
CASE ... 323
Exercise 6-5 ... 329
이것만은 알고 갑시다 ... 330
7장 데이터를 묶어보자(그룹 쿼리) ... 331
01 개요 ... 333
02 DISTINCT와 ALL ... 334
03 집계 함수 ... 336
COUNT ... 337
SUM ... 340
MAX와 MIN ... 342
AVG ... 344
STDDEV와 VARIANCE ... 346
Exercise 7-1 ... 346
04 GROUP BY 절 ... 347
GROUP BY 절과 집계 함수들 ... 347
GROUP BY 절과 WHERE 절 ... 353
Exercise 7-2 ... 355
05 HAVING 절 ... 355
06 ROLLUP과 CUBE ... 359
Exercise 7-3 ... 365
이것만은 알고 갑시다 ... 366
8장 서브쿼리 ... 367
01 서브쿼리란? ... 369
02 연관성 없는 서브쿼리 ... 372
단일 로우, 단일 컬럼을 반환하는 서브쿼리 ... 373
다중 로우, 단일 컬럼을 반환하는 서브쿼리 ... 376
다중 컬럼을 반환하는 서브쿼리 ... 385
Exercise 8-1 ... 389
03 연관성 있는 서브쿼리 ... 390
Exercise 8-2 ... 395
04 인라인 뷰 ... 395
Exercise 8-3 ... 404
이것만은 알고 갑시다 ... 405
9장 쿼리들 모두 집합!(SET 연산자) ... 407
01 SET 연산자 ... 409
UNION ... 410
UNION ALL ... 419
INTERSECT ... 421
MINUS ... 423
Exercise 9-1 ... 427
02 SET 연산자와 NULL ... 428
Exercise 9-2 ... 430
03 SET 연산자의 규칙과 제한사항들 ... 431
Exercise 9-3 ... 434
이것만은 알고 갑시다 ... 435
10장 계층형 쿼리 ... 437
01 계층적인 정보의 표현 ... 439
02 계층형 쿼리 ... 442
계층형 데이터의 구조 ... 442
계층형 쿼리의 작성 ... 444
계층형 쿼리와 조인 ... 451
Exercise 10-1 ... 457
03 계층형 쿼리의 확장 ... 458
루트노드 찾기(CONNECT_BY_ROOT) ... 458
중복 참조값 찾기(CONNECT_BY_ISCYCLE) ... 461
리프노드 찾기(CONNECT_BY_ISLEAF) ... 464
루트 찾아가기(SYS_CONNECT_BY_PATH) ... 465
04 계층형 쿼리의 응용 ... 467
답변형 게시판 ... 467
달력 만들기 ... 471
이것만은 알고 갑시다 ... 477
Part 3 PL/SQL
11장 PL/SQL ... 481
01 PL/SQL이란? ... 483
개요 ... 483
PL/SQL이란? ... 484
02 PL/SQL의 구성요소 ... 494
변수와 상수 ... 494
콜렉션 ... 496
레코드 ... 500
03 PL/SQL 문장과 커서 ... 503
IF 문 ... 503
CASE 문 ... 504
LOOP 문 ... 505
WHILE-LOOP 문 ... 507
FOR ... LOOP ... 509
GOTO 문 ... 512
NULL 문 ... 513
커서 ... 514
04 PL/SQL 서브프로그램 ... 517
함수 ... 517
프로시저 ... 521
패키지 ... 528
Exercise 11-1 ... 540
이것만은 알고 갑시다 ... 543
12장 시스템 객체 ... 545
01 데이터 딕셔너리 ... 547
데이터 딕셔너리란? ... 547
데이터 딕셔너리의 종류 ... 549
02 시스템 뷰 ... 550
ALL 뷰 ... 551
DBA 뷰 ... 557
USER 뷰 ... 559
Exercise 12-1 ... 563
03 시스템 패키지 ... 563
DBMS 패키지 개요 ... 564
DBMS_OUTPUT 패키지 ... 564
DBMS_JOB 패키지 ... 568
UTL_FILE 패키지 ... 573
UTL_TCP 패키지 ... 576
Exercise 12-2 ... 580
이것만은 알고 갑시다 ... 581
13장 향상된 객체들 ... 583
01 개요 ... 585
02 LOB ... 585
LOB 타입의 종류 ... 588
LOB 로케이터와 값 ... 589
LOB 데이터 조작하기 ... 590
Exercise 13-1 ... 606
03 Materialized View ... 607
Materialized View란? ... 608
Materialized View 만들기 ... 609
Exercise 13-2 ... 614
04 오라클 OBJECT 타입 ... 615
개요 ... 615
OBJECT 타입 생성 ... 616
Exercise 13-3 ... 623
이것만은 알고 갑시다 ... 625
Part 4 고급 SQL
14장 오라클 고급 함수(분석 함수) ... 629
01 분석 함수란? ... 631
분석 함수의 정의 ... 631
분석 함수의 사용 ... 633
02 순위 함수 ... 637
RANK(), DENSE_RANK(), ROW_NUMBER() 함수 ... 637
FIRST와 LAST ... 642
NTILE () ... 646
WIDTH_BUCKET() ... 648
CUME_DIST와 PERCENT_RANK ... 652
Exercise 14-1 ... 654
03 윈도우 함수 ... 655
윈도우 함수란? ... 655
FIRST_VALUE와 LAST_VALUE ... 658
04 기타 분석 함수들 ... 659
LAG와 LEAD 함수 ... 659
RATIO_TO_REPORT ... 663
Exercise 14-2 ... 666
이것만은 알고 갑시다 ... 667
15장 고급 SQL 문장들 ... 669
01 향상된 그룹 함수 ... 671
ROLLUP과 CUBE 복습 ... 671
추가된 그룹핑 함수들 ... 673
Exercise 15-1 ... 681
02 서브쿼리를 내 마음대로(WITH 구문) ... 682
개요 ... 682
WITH 구문의 사용 ... 683
Exercise 15-2 ... 688
03 스프레드시트 흉내내기(MODEL 절) ... 688
개요 ... 688
MODEL 절의 구문과 사용 ... 690
MODEL 함수 ... 697
Exercise 15-3 ... 706
04 동적 쿼리 ... 707
동적 쿼리란? ... 707
EXECUTE IMMEDIATE을 사용한 동적 쿼리 ... 708
DBMS_SQL 패키지를 사용한 동적 쿼리 ... 712
05 입력과 수정을 동시에!(MERGE 문) ... 716
Exercise 15-4 ... 721
이것만은 알고 갑시다 ... 722
16장 XML 다루기 ... 723
01 XML이란? ... 725
개요 ... 725
오라클과 XML ... 726
02 오라클에서 XML 다루기 ... 727
XML 데이터 저장하기 ... 727
XML 데이터의 조회 ... 734
XML 데이터의 갱신 ... 739
Exercise 16-1 ... 744
03 XML 데이터 만들기 ... 745
SQL/XWL 함수를 사용하는 방법 ... 745
SQL 함수를 사용하는 방법 ... 752
Exercise 16-2 ... 757
04 XML에서의 데이터 검색(XQUERY) ... 758
FLWOR 표현식 ... 758
XQUERY 함수 ... 759
확장 함수들 ... 762
이것만은 알고 갑시다 ... 768
17장 SQL 튜닝 ... 769
01 옵티마이저란? ... 771
옵티마이저의 종류 ... 772
옵티마이저의 구성요소 ... 774
옵티마이저를 위해 우리가 해야 할 일 ... 778
02 접근 경로와 조인 방법 ... 782
접근 경로 ... 782
조인 방법 ... 785
03 옵티마이저를 추적해 보자!(실행계획) ... 788
실행계획을 보는 방법 ... 789
실행계획의 분석 ... 791
04 옵티마이저야, 이 길로 가려무나!(힌트 절의 사용) ... 797
개요 ... 797
힌트 절의 종류 ... 798
05 일반적인 SQL 튜닝 기법 ... 801
이것만은 알고 갑시다 ... 806
18장 남은 것들 ... 807
01 데이터베이스 모델링 ... 809
모델링이란? ... 809
데이터베이스 모델링 과정 ... 810
02 Oracle 11g 소개 ... 812
SQL 관련 사항 ... 813
PL/SQL 관련 사항 ... 814
기타 ... 816
참조 사이트 ... 817
이것만은 알고 갑시다 ... 818
찾아보기 ... 819
닫기