목차 일부
제1부. 데이터베이스 개요
1.1. 데이터베이스의 개요 ... 14
1.2. 모델의 종류 ... 19
1.2.1. 계층 데이터 모델(Hierarchical Data Model) ... 19
1.2.2. 망 데이터 모델(Network Data Model) ... 20
1.2.3. 관계 데이터 모델(Relational...
더보기
목차 전체
제1부. 데이터베이스 개요
1.1. 데이터베이스의 개요 ... 14
1.2. 모델의 종류 ... 19
1.2.1. 계층 데이터 모델(Hierarchical Data Model) ... 19
1.2.2. 망 데이터 모델(Network Data Model) ... 20
1.2.3. 관계 데이터 모델(Relational Data Model) ... 20
1.2.4. 객체지향 데이터 모델(Object-oriented Data Model) ... 20
1.2.5. 객체관계 데이터 모델(Object Relational Data Model) ... 21
1.3. 관계형 모델과 객체 지향형 데이터베이스 ... 21
1.3.1. 관계형 모델 ... 21
1.3.2. 관계형 모델의 용어 ... 22
1.3.3. 테이블(Table), 열(Column), 행(Row) ... 23
1.3.4. 무결성 규칙 ... 23
1.3.5. RDBMS 구성 요소들 ... 25
1.4. SQL이란 무엇인가? ... 27
1.4.1. SQL의 표준화 ... 27
1.5. 본서의 구성 ... 28
제2부. MySQL 설치와 기본 사용법
2.1. MySQL의 특징 ... 32
2.2. MySQL 설치 ... 33
2.2.1. MySQL 설치 전 점검사항 ... 33
2.2.2. 윈도우에서 MySQL 설치하기 ... 36
2.2.3. MySQL 설치 후 확인하기 ... 41
2.2.4. MySQL 한글 설정하기 ... 43
2.3. MySQL 기본 사용법 ... 44
2.3.1. 사용자 계정 추가하기 ... 44
2.3.2. 데이터베이스 생성, 수정, 삭제 ... 47
2.3.3. 테이블 생성, 수정, 삭제 ... 48
2.3.4. 테이블 삽입 ... 51
2.3.5. 데이터 검색 ... 52
2.3.6. 입력 데이터 변경 및 삭제 ... 54
2.4. MySQL의 데이터베이스 관리 툴 ... 56
제3부. 학사 관리 예제 데이터베이스
3.1. 학사 데이터베이스의 해설 ... 58
3.2. 테이블의 내용 ... 62
3.3. 무결성 규칙 ... 66
제4부. 학사관리 예제 만들기
4.1. MySQL 데이터베이스 생성 ... 70
4.1.1. 데이터베이스 및 테이블 만들기 ... 70
4.1.2. Commit/Rollback 작업 ... 72
4.1.3. Savepoint/Truncate 작업 ... 75
4.2. SQL 데이터형(Data Type) ... 77
4.2.1. SQL 데이터형 ... 77
4.2.2. NULL 값 ... 80
4.3. 학사 관리 예제 만들기 ... 80
4.3.1. 데이터베이스 및 사용자 계정 생성 ... 80
4.3.2. 테이블 생성 ... 82
4.3.3. 테이블 데이터 삽입 ... 88
4.3.4. 질의(Query) 테이블 ... 90
4.3.5. 행의 갱신과 삭제 ... 93
4.3.6. 뷰(Views) ... 95
4.4. 보안 설정 ... 98
4.4.1. ROOT 사용자의 데이터 보완 ... 98
4.4.2. 사용자 생성 및 권한부여 ... 99
제5부. 테이블 생성
5.1. MySQL RDBMS의 제한 조건 ... 108
5.2. 새로운 테이블의 생성 ... 109
5.3. 기본 키 ... 111
5.4. 테이블 명세와 소유자 ... 112
5.5. 테이블과 열의 이름 ... 113
5.6. 테이블의 삭제 ... 114
5.7. 테이블의 구조 변경(열의 추가) ... 114
5.8. 테이블 구조의 변경 ... 115
5.9. 테이블 복사 ... 116
5.10. 테이블 이름 변경 ... 118
5.11. 테이블과 데이터 사전 ... 118
제6부. SELECT 명령문과 공통 요소
6.1. 리터럴(Literal) ... 129
6.1.1. 정수 리터럴 ... 130
6.1.2. 십진 리터럴 ... 130
6.1.3. 부동 소수점 리터럴 ... 130
6.1.4. 영수치 리터럴 ... 131
6.1.5. 날짜 리터럴 ... 132
6.2. 수식 ... 132
6.2.1. 수치 수식과 숫자 처리 함수 ... 133
6.2.2. 영수치 수식 ... 135
6.2.3. 숫자 처리 함수 ... 136
6.3. 스칼라 함수 ... 140
6.4. 날짜 및 시간 처리 ... 144
6.4.1. 날짜 및 시간 관련 칼럼 타입 ... 144
6.4.2. 날자 및 시간 관련 함수 ... 144
6.5. 데이터형 변환 함수 ... 148
6.6. 사용자 정의 변수 ... 151
6.7. 시스템변수 ... 152
제7부. SELECT 명령문의 절(Clause)
7.1. 서론 ... 158
7.2. SELECT 명령문 모든 절을 포함한 수행 과정 ... 159
7.2.1. FROM 절 ... 162
7.2.2. WHERE 절 ... 163
7.2.3. GROUP BY 절 ... 163
7.2.4. HAVING 절 ... 164
7.2.5. SELECT 절 ... 165
7.2.6. ORDER BY 절 ... 166
7.3. SELECT 명령문 일부 절을 포함한 수행 과정 ... 166
7.3.1. FROM 절 ... 167
7.3.2. WHERE 절 ... 168
7.3.3. GROUP BY 절 ... 168
7.3.4. HAVING 절 ... 168
7.3.5. SELECT 절 ... 168
7.3.6. ORDER BY 절 ... 169
제8부. SELECT 명령문 : FROM 절
8.1. FROM 절에서 테이블 명세 ... 172
8.2. 열 명세 ... 173
8.3. 다중 테이블 명세 ... 174
8.4. 가명(Alias) ... 177
8.5. FROM 절의 다양한 예제 ... 178
8.6. 반드시 가명을 사용해야 하는 경우 ... 184
제9부. SELECT 명령문 : WHERE 절
9.1. 개요 ... 188
9.2. 관계 연산자를 사용하는 조건 ... 189
9.3. AND, OR, NOT을 사용한 다중 조건 ... 193
9.4. BETWEEN 연산자 ... 197
9.5. IN 연산자 ... 199
9.6. LIKE 연산자 ... 201
9.7. NULL 연산자 ... 204
9.8. 부속 질의어에서 IN 연산자 ... 206
9.9. 부속 질의어에서 관계 연산자 ... 212
9.10. ALL과 ANY 연산자 ... 214
9.11. EXISTS 연산자 ... 218
9.12. 부정 조건 ... 222
제10부. SELECT 명령문 : 통계함수
10.1. 모든 열의 선택(*) ... 232
10.2. SELECT 절의 수식 ... 234
10.3. DISTINCT을 사용한 중복된 행의 제거 ... 235
10.4. 언제 2개의 행이 동등한가? ... 238
10.5. 통계 함수의 소개 ... 240
10.6. COUNT 함수 ... 241
10.7. MAX와 MIN 함수 ... 244
10.8. SUM 함수 ... 247
10.9. AVG 함수 ... 248
10.10. STDDEV와 VARIANCE 함수 ... 251
10.11. 통계 함수를 사용하는 일반적인 규칙 ... 251
10.12. 열의 표제어 사용 ... 253
제11부. GROUP BY와 HAVING
11.1. 열의 그룹화 ... 259
11.2. 2개 이상의 열에 대한 그룹화 ... 261
11.3. 수식의 그룹화 ... 265
11.4. NULL 값의 그룹화 ... 266
11.5. GROUP BY와 DISTINCT ... 267
11.6. HAVING 절의 소개 ... 267
11.7. HAVING 절의 예제 ... 268
11.8. HAVING 절에 대한 일반적인 규칙 ... 270
제12부. SELECT 명령문 : ORDER BY 절
12.1. 단일 열 정렬 ... 276
12.2. 순서 번호로 정렬 ... 277
12.3. 오름차순과 내림차순 정렬 ... 278
12.4. 하나 이상의 행 정렬 ... 279
12.5. 수식과 함수의 정렬 ... 282
12.6. NULL 값의 정렬 ... 283
제13부. SELECT 명령문의 조합
13.1. 서론 ... 288
13.2. UNION의 조합 ... 289
13.3. UNION을 사용하기 위한 규칙 ... 293
13.4. UNION ALL의 조합 ... 294
13.5. 집합 연산자와 NULL 값 ... 295
제14부. 부속 질의어
14.1. 부속 질의어 규칙 ... 300
14.2. 열의 범위 ... 301
14.3. 상호 관련 부속 질의어의 예제 ... 306
14.4. 복합키의 사용 ... 313
제15부. SELECT 명령문 : 조인(JOIN)
15.1. 조인 ... 320
15.2. 조인에서 사용되는 용어 ... 321
15.3. 조인 열 간의 관계성 ... 324
15.3.1. CROSS JOIN ... 324
15.3.2. INNER EQUI JOIN ... 326
15.3.3. OUTER EQUI-JOIN ... 329
15.3.4. FULL OUTER JOIN ... 332
15.3.5. Sell Join ... 335
15.3.6. 조인 열 모집단의 분해 ... 338
15.4. 조인 조건이 없는 조인 ... 339
15.5. 통계 함수와 조인 ... 340
제16부. 테이블의 변경
16.1. 새로운 행 삽입 ... 347
16.2. 테이블에서 테이블로 행을 복사 ... 348
16.3. 행 값의 변경 ... 352
16.4. 테이블에서 행 삭제 ... 366
제17부. 인덱스의 사용
17.1. 인덱스 작업 ... 360
17.2. SELECT 명령문의 단계적 처리 ... 363
17.3. 인덱스의 생성과 삭제 ... 367
17.4. MySQL과 인덱스 ... 368
17.5. 인덱스를 위한 열의 선택 ... 369
17.5.1. 후보 키에 대한 유일한 인덱스 ... 370
17.5.2. 외래 키에 대한 인덱스 ... 370
17.5.3. 선택 표준에 포함된 열에 대한 인덱스 ... 370
17.5.4. 정렬에 사용된 열에 대한 인덱스 ... 372
17.5.5. 그룹화에 사용된 열에 대한 인덱스 ... 372
17.5.6. DISTINCT에 대한 인덱스 ... 372
17.5.7. 인덱스를 정의하지 않을 때 ... 372
제18부. 뷰(View)
18.1. 뷰의 생성 ... 376
18.2. 뷰의 열 이름 ... 381
18.3. 뷰의 변경 : WITH CHECK OPTION ... 383
18.4. 뷰 테이블의 정보 ... 386
18.5. 뷰 테이블 통계함수 사용 ... 388
18.5.1. WHERE 절에 통계함수 사용 ... 388
18.5.2. SELECT 절에 통계함수 사용 ... 389
18.5.3. GROUP BY절을 이용한 VIEW 테이블과 다른 테이블과 JOIN ... 389
18.5.4. WHERE 절에 다른 테이블로 부속질의어로 사용하는 경우 ... 390
18.5.5. ORDER BY 절을 사용하는 경우 ... 390
18.5.6. 집합연산자를 사용하는 경우 ... 391
18.5.7. HAVING절을 사용하는 경우 ... 392
18.6. 뷰 테이블의 제약 사항 ... 393
18.7. 뷰 명령문의 처리 ... 393
18.8. 뷰의 응용 분야 ... 395
제19부. 트랜잭션(Transaction)과 락(LOCK)
19.1. 트랜잭션이란? ... 402
19.2. MySQL에서의 트랜잭션 ... 403
19.2.1. 트랜잭션의 사용 ... 404
19.3. 락(LOCK) ... 406
제20부. SQL 명령문의 최적화
20.1. OR 연산자의 사용을 피하라 ... 410
20.2. 불필요한 UNION 연산자의 사용을 피하라 ... 415
20.3. NOT 연산자를 피하라 ... 417
20.4. 조건에 열을 분리하라 ... 418
20.5. BETWEEN 연산자를 사용하라 ... 419
20.6. LIKE 연산자의 특별한 형식을 피하라 ... 420
20.7. 조인에 여분의 조건을 추가하라 ... 421
20.8. HAVING 절을 피하라 ... 421
20.9. 가능한 작은 SELECT 절을 만들어야 한다 ... 422
20.10. DISTINCT 사용을 피하라 ... 423
20.11. 자료형의 변환을 피해야 한다 ... 424
20.12. 가장 큰 테이블을 마지막에 위치하라 ... 424
20.13. ANY와 ALL 연산자의 사용을 피하라 ... 425
20.14. 미래의 최적화기 ... 427
20.15. 디스크 최적화 ... 427
20.16. 운영체제 최적화 ... 428
제21부. 데이터베이스 설계 지침
21.1. 테이블과 열에 대한 지침 ... 433
21.2. 중복 데이터의 포함 ... 436
21.3. 열에 대한 자료형의 선택 ... 439
21.4. 언제 NOT NULL을 사용해야 하는가? ... 440
제22부. MySQL 유틸리티
22.1. myisamchk ... 444
22.2. myisamlog ... 451
22.3. myisampack ... 451
22.4. mysql ... 452
22.5. mysqlaccess ... 453
22.6. mysqladmin ... 453
22.7. mysqlbinlog ... 453
22.8. mysqlcheck ... 454
22.9. mysqldump ... 455
22.10. mysqlhotcopy ... 456
22.11. mysqlimport ... 456
22.12. mysqlshow ... 456
22.13. mysql_zap ... 457
22.14. perror ... 457
22.15. replace ... 459
제23부. Trigger
23.1. CREATE TRIGGER 구문 ... 462
23.2. DROP TRIGGER 구문 ... 466
23.3. 트리거 사용하기 ... 466
부록
1. BNF ... 472
2. SQL 예약어와 ASCII 문자 집합 ... 474
2.1. SQL 1 표준에약어 ... 475
2.2. SQL 명령문의 구문 정의 ... 476
2.3. Definitions of SQL statement ... 478
2.4. Common elements ... 482
2.5. ASCII 문자 집합 ... 488
2.6. 학사데이터베이스 데이터 입력 명령 ... 494
더보기 닫기