Foreword |
|
xv | |
About the Author |
|
xvii | |
About the Technical Reviewer |
|
xix | |
Acknowledgments |
|
xxi | |
|
|
1 | (16) |
|
|
1 | (1) |
|
|
2 | (1) |
|
An Administrator's Database |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
5 | (3) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
SQLite's Features and Philosophy |
|
|
8 | (3) |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
10 | (1) |
|
Performance and Limitations |
|
|
11 | (3) |
|
Who Should Read This Book |
|
|
14 | (1) |
|
How This Book Is Organized |
|
|
14 | (2) |
|
|
16 | (1) |
|
|
16 | (1) |
|
|
17 | (30) |
|
|
17 | (1) |
|
|
18 | (13) |
|
Getting the Command-Line Program |
|
|
18 | (2) |
|
|
20 | (1) |
|
Compiling the SQLite Source Code on Windows |
|
|
21 | (4) |
|
Building the SQLite DLL with Microsoft Visual C++ |
|
|
25 | (3) |
|
Building a Dynamically Linked SQLite Client with Visual C++ |
|
|
28 | (1) |
|
Building SQLite with MinGW |
|
|
29 | (2) |
|
|
31 | (3) |
|
|
31 | (2) |
|
Compiling SQLite from Source |
|
|
33 | (1) |
|
Working with SQLite Databases |
|
|
34 | (8) |
|
|
34 | (7) |
|
The CLP in Command-Line Mode |
|
|
41 | (1) |
|
|
42 | (3) |
|
Creating, Backing Up, and Dropping Databases |
|
|
42 | (1) |
|
Getting Database File Information |
|
|
43 | (2) |
|
|
45 | (1) |
|
|
45 | (2) |
|
|
47 | (26) |
|
|
47 | (2) |
|
|
48 | (1) |
|
SQL and the Relational Model |
|
|
48 | (1) |
|
|
49 | (11) |
|
The Information Principle |
|
|
49 | (1) |
|
The Sanctity of the Logical Level |
|
|
50 | (1) |
|
The Anatomy of the Logical Level |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
52 | (4) |
|
Tables: Relation Variables |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (3) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
63 | (5) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
65 | (2) |
|
|
67 | (1) |
|
The Manipulative Component |
|
|
68 | (3) |
|
Relational Algebra and Calculus |
|
|
68 | (1) |
|
Relational Query Language |
|
|
69 | (1) |
|
|
70 | (1) |
|
The Meaning of Relational |
|
|
71 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
73 | (98) |
|
|
73 | (2) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (2) |
|
|
76 | (1) |
|
|
76 | (1) |
|
|
77 | (3) |
|
|
79 | (1) |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (2) |
|
|
80 | (2) |
|
|
82 | (1) |
|
|
82 | (41) |
|
|
82 | (2) |
|
|
84 | (3) |
|
|
87 | (6) |
|
|
93 | (1) |
|
|
94 | (3) |
|
|
97 | (4) |
|
|
101 | (1) |
|
|
101 | (8) |
|
|
109 | (2) |
|
|
111 | (3) |
|
|
114 | (3) |
|
|
117 | (2) |
|
|
119 | (3) |
|
|
122 | (1) |
|
|
123 | (5) |
|
|
123 | (4) |
|
|
127 | (1) |
|
|
128 | (1) |
|
|
128 | (19) |
|
|
128 | (5) |
|
|
133 | (3) |
|
|
136 | (3) |
|
|
139 | (2) |
|
|
141 | (6) |
|
|
147 | (6) |
|
|
147 | (1) |
|
|
148 | (3) |
|
|
151 | (1) |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
153 | (16) |
|
|
153 | (2) |
|
|
155 | (3) |
|
|
158 | (5) |
|
|
163 | (1) |
|
|
164 | (1) |
|
|
165 | (3) |
|
|
168 | (1) |
|
|
168 | (1) |
|
|
169 | (2) |
|
|
171 | (34) |
|
|
171 | (15) |
|
What's New in SQLite Version 3 |
|
|
172 | (1) |
|
The Principal Data Structures |
|
|
172 | (2) |
|
|
174 | (8) |
|
|
182 | (1) |
|
|
183 | (3) |
|
|
186 | (11) |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
188 | (1) |
|
|
189 | (3) |
|
|
192 | (2) |
|
|
194 | (3) |
|
|
197 | (6) |
|
Using Multiple Connections |
|
|
197 | (1) |
|
|
198 | (1) |
|
Fun with Temporary Tables |
|
|
199 | (2) |
|
The Importance of Finalizing |
|
|
201 | (1) |
|
|
202 | (1) |
|
|
203 | (2) |
|
|
205 | (50) |
|
|
205 | (9) |
|
Connecting and Disconnecting |
|
|
206 | (1) |
|
|
207 | (4) |
|
|
211 | (2) |
|
|
213 | (1) |
|
|
214 | (15) |
|
|
216 | (1) |
|
|
216 | (1) |
|
|
217 | (2) |
|
|
219 | (5) |
|
|
224 | (5) |
|
Errors and the Unexpected |
|
|
229 | (6) |
|
|
229 | (3) |
|
|
232 | (1) |
|
|
233 | (2) |
|
|
235 | (11) |
|
|
235 | (1) |
|
|
236 | (1) |
|
|
236 | (1) |
|
|
237 | (9) |
|
|
246 | (7) |
|
|
247 | (5) |
|
Threads and Memory Management |
|
|
252 | (1) |
|
|
253 | (2) |
|
|
255 | (46) |
|
|
256 | (3) |
|
|
256 | (2) |
|
|
258 | (1) |
|
|
258 | (1) |
|
|
259 | (19) |
|
|
262 | (2) |
|
|
264 | (3) |
|
|
267 | (11) |
|
|
278 | (5) |
|
|
280 | (3) |
|
|
283 | (16) |
|
|
284 | (2) |
|
|
286 | (5) |
|
|
291 | (1) |
|
|
292 | (7) |
|
|
299 | (2) |
|
|
301 | (40) |
|
|
302 | (1) |
|
|
303 | (7) |
|
|
303 | (1) |
|
|
304 | (1) |
|
|
304 | (2) |
|
|
306 | (1) |
|
User-Defined Functions and Aggregates |
|
|
307 | (3) |
|
|
310 | (9) |
|
|
310 | (6) |
|
|
316 | (3) |
|
|
319 | (5) |
|
|
319 | (1) |
|
|
319 | (1) |
|
|
320 | (2) |
|
User-Defined Functions and Aggregates |
|
|
322 | (2) |
|
|
324 | (7) |
|
|
325 | (1) |
|
|
325 | (1) |
|
|
326 | (2) |
|
User-Defined Functions and Aggregates |
|
|
328 | (1) |
|
|
329 | (2) |
|
|
331 | (4) |
|
|
331 | (1) |
|
|
331 | (1) |
|
|
332 | (2) |
|
|
334 | (1) |
|
|
335 | (5) |
|
|
336 | (1) |
|
|
336 | (1) |
|
|
336 | (3) |
|
User-Defined Functions and Aggregates |
|
|
339 | (1) |
|
|
340 | (1) |
|
|
341 | (24) |
|
The Virtual Database Engine |
|
|
341 | (8) |
|
|
343 | (1) |
|
|
343 | (2) |
|
Program Startup and Shutdown |
|
|
345 | (2) |
|
|
347 | (2) |
|
The B-Tree and Pager Modules |
|
|
349 | (6) |
|
|
349 | (4) |
|
|
353 | (2) |
|
|
355 | (7) |
|
|
355 | (2) |
|
|
357 | (1) |
|
|
358 | (2) |
|
|
360 | (2) |
|
|
362 | (3) |
Appendix A SQL Reference |
|
365 | (30) |
Appendix B C API Reference |
|
395 | (28) |
Appendix C Codd's 12 Rules |
|
423 | (2) |
Index |
|
425 | |