譯者序 iv
推薦序1 vi
推薦序2 viii
推薦序3 ix
關於作者 xx
關於技術評審 xxi
緻謝 xxii
簡介 xxiii
第1章 sqlite介紹 1
嵌入式數據庫 1
開發者的數據庫 2
管理員的數據庫 4
sqlite曆史 4
誰在使用sqlite 5
體係結構 6
接口 6
編譯器 7
虛擬機 7
後端 9
.工具和測試代碼 9
sqlite的特性和設計理念 10
零配置 10
移植性 10
緊湊性 11
簡單性 11
靈活性 12
自由授權 12
可靠性 12
易用性 12
性能和限製 13
本書麵嚮的讀者 16
本書的組織結構 17
附加說明 18
總結 19
第2章 入門 21
何處獲取sqlite 21
windows上的sqlite 22
獲得命令行程序 22
獲取sqlite動態鏈接庫(dll) 25
在windows上編譯sqlite源代碼 26
使用微軟visual c++構建sqlite dll 29
用visual c++構建動態鏈接sqlite的客戶端 31
用mingw構建sqlite 32
linux、蘋果mac os x以及其他posix係統上的sqlite 34
二進製和包 34
從源代碼編譯 35
命令行程序 37
shell模式下的clp 37
命令行模式的clp 39
數據庫管理 40
創建數據庫 40
獲得數據庫的schema信息 42
導齣數據 43
導入數據 44
格式化 45
導齣帶分隔符的數據 46
執行無人值守維護 46
備份數據庫 47
獲得數據庫文件的信息 48
其他sqlite工具 50
總結 51
第3章 sqlite中的sql 53
數據庫示例 53
安裝 55
運行示例 55
語法 56
命令 58
常量 58
關鍵字和標識符 59
注釋 59
創建數據庫 59
創建錶 60
修改錶 61
數據庫查詢 62
關係操作 62
select命令與操作管道 63
過濾 66
限定和排序 71
函數(function)和聚閤(aggregate) 73
分組(grouping) 74
去掉重復 79
多錶連接 80
名稱和彆名 85
子查詢 87
復閤查詢 89
條件結果 91
處理sqlite中的null 93
總結 95
第4章 sqlite中的高級sql 97
修改數據 97
插入記錄 97
更新記錄 101
刪除記錄 102
數據完整性 102
實體完整性 103
域完整性 108
存儲類 113
視圖 116
索引 118
觸發器 120
事務 124
事務的範圍 124
衝突解決 125
數據庫鎖 128
死鎖 129
事務的類型 130
數據庫管理 131
附加數據庫 131
數據庫清理 133
數據庫配置 133
係統目錄 137
查看查詢計劃 137
總結 138
第5章 sqlite設計與概念 139
api 140
主要數據結構 140
連接和語句 141
核心api 142
可操作的控製 150
使用綫程 151
擴展api 151
創建用戶自定義函數 151
創建用戶自定義聚閤 152
創建用戶自定義排序 153
事務 153
事務生命周期 154
鎖狀態 154
讀事務 156
寫事務 157
調整頁麵緩存 160
過渡到獨占狀態 161
調整頁麵緩存 161
等待鎖 162
繁忙處理 162
使用恰當的事務 164
代碼 165
使用多個連接 165
finalize()函數的重要性 167
共享緩存模式 168
總結 168
第6章 核心c api 171
查詢封裝 171
連接與斷開連接 172
執行查詢 174
獲取錶查詢 178
查詢準備 179
編譯 180
執行 181
完成與重置 182
獲取記錄 184
獲取字段信息 184
獲取字段值 186
一個實例 187
查詢參數化 189
參數編號 192
參數命名 192
tcl參數 193
錯誤與異常 194
錯誤處理 194
繁忙情況處理 196
模式改變處理 197
操作控製 198
提交鈎子 198
迴滾鈎子 199
更新鈎子 199
授權函數 200
綫程 210
共享緩存模型 210
綫程與內存管理 213
總結 214
第7章 擴展c api 215
api 216
注冊函數 217
步驟函數 218
返迴值 219
函數 220
返迴值 222
數組與內存清理器 223
錯誤處理 224
返迴輸入值 224
聚閤 225
注冊函數 226
實例 226
排序規則 230
排序法定義 231
簡單例子 234
按需排序 237
總結 238
第8章 語言擴展 239
選擇一種擴展語言 240
perl 242
安裝 242
連接 243
查詢處理 243
參數綁定 245
用戶自定義函數 246
聚閤 247
python 248
安裝 248
連接 249
查詢處理 249
參數綁定 251
用戶自定義函數 253
聚閤 253
apsw(另一種python接口) 254
ruby 255
安裝 255
連接 256
查詢處理 256
參數綁定 257
用戶自定義函數 259
java 260
安裝 260
連接 261
查詢處理 262
自定義函數和聚閤 264
jdbc 266
tcl 268
安裝 268
連接 268
查詢處理 269
用戶自定義函數 272
php 272
安裝 273
連接 273
查詢 274
用戶自定義函數和聚閤 276
總結 278
第9章 ios開發中的sqlite 279
sqlite ios開發的先決條件 279
注冊成為apple軟件開發者 280
下載並安裝xcode和ios sdk 280
其他開發環境 283
建立iseinfeld ios sqlite應用 284
第一步:創建一個新的xcode工程 285
第二步:將sqlite框架添加到工程 285
第三步:準備foods數據庫 287
第四步:為食品數據創建類 289
第五步:訪問和查詢sqlite數據庫 293
第六步:最後包裝和配置iseinfeld應用程序 297
運行iseinfeld 297
ios中處理大型sqlite數據庫 299
總結 300
第10章 android開發中的sqlite 301
sqlite android開發的先決條件 301
檢查先決條件和jdk 302
下載和安裝android sdk starter包 302
下載和安裝android開發工具 303
添加android平颱和組件 304
android sqlite類和接口 306
使用基礎幫助類:sqliteopenhelper 307
sqlitedatabase類 308
在實際中應用sqliteopenhelper和sqlitedatabase 312
使用sqlitequerybuilder類查詢sqlite數據庫 315
搭建seinfeld android sqlite應用程序 317
創建新的android工程 318
將seinfeld sqlite數據庫添加到工程 319
查詢food數據庫錶 319
定義用戶接口 320
連接數據和用戶接口 321
查看完成的seinfeld應用程序 322
sqlite android應用程序的注意事項 322
android數據庫的備份 323
android係統處理大型sqlite數據庫 324
總結 324
第11章 sqlite內部機製及新特性 325
b-tree和pager模塊 325
數據庫文件格式 325
b-tree api 330
顯示類型、存儲類以及親緣性介紹 332
顯示類型 333
類型親緣性 335
親緣性和存儲 336
執行中的親緣性 336
預寫日誌 340
wal工作原理 341
激活和配置wal 342
wal的優缺點 343
啓用wal時sqlite數據庫的操作問題 343
總結 345
索引 347
· · · · · · (
收起)