注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫SQL SeverSQL沉思錄

SQL沉思錄

SQL沉思錄

定 價(jià):¥49.00

作 者: (美)塞科 著,馬樹奇 等譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書
標(biāo) 簽: SQL

ISBN: 9787115213952 出版時(shí)間: 2009-11-01 包裝: 平裝
開本: 16開 頁數(shù): 270 字?jǐn)?shù):  

內(nèi)容簡介

  《SQL沉思錄》通過大量的實(shí)例,詳細(xì)說明了為提高SQL編程技術(shù)而必須面對(duì)的思想方法上的根本轉(zhuǎn)變——由以過程式編程方式思考轉(zhuǎn)變?yōu)橐詳?shù)據(jù)集的方式來思考。此外,《SQL沉思錄》還討論了關(guān)于SQL編程中查找表、視圖、輔助表、虛擬表的應(yīng)用,并獨(dú)到地闡明了如何在SQL系統(tǒng)中正確地處理時(shí)間值以及SQL編程中的其他技術(shù)難點(diǎn)。《SQL沉思錄》適合廣大數(shù)據(jù)庫編程人員和SQL程序員學(xué)習(xí)參考。

作者簡介

  Joe Celko,世界著名的數(shù)據(jù)庫專家,曾擔(dān)任ANSI SQL標(biāo)準(zhǔn)委員會(huì)成員達(dá)10年之久,他也是世界上讀者數(shù)量最多的SQL圖書作者之一。他曾撰寫過一系列專欄,并通過他的新聞組支持和推動(dòng)了數(shù)據(jù)庫編程技術(shù)以及ANSI/ISO標(biāo)準(zhǔn)的發(fā)展。除本書外,他還撰寫了多部SQL經(jīng)典著作,包括《SQL編程風(fēng)格》、《SQL解惑》和《SQL權(quán)威指南》,上述作品的中文版均已經(jīng)或即將由人民郵電出版社出版。

圖書目錄

第1章 SQL是聲明式語言,不是過程式語言 1
1.1 不同的編程模型 1
1.2 不同的數(shù)據(jù)模型 3
1.2.1 “列”不是“字段” 4
1.2.2 行不是記錄 6
1.2.3 表不是文件 9
1.2.4 關(guān)系鍵不是記錄定位器 11
1.2.5 鍵的類型 12
1.2.6 關(guān)系鍵的理想屬性 14
1.2.7 唯一,但并非不變 15
1.3 表作為實(shí)體 15
1.4 表作為關(guān)系 16
1.5 語句不是過程 16
1.6 分子、原子和亞原子型數(shù)據(jù)元素 17
1.6.1 分割表 17
1.6.2 分割列 18
1.6.3 時(shí)間值的分割 19
1.6.4 假造的非第一范式數(shù)據(jù) 19
1.6.5 分子型數(shù)據(jù)元素 21
1.6.6 異構(gòu)數(shù)據(jù)元素 21
1.6.7 檢驗(yàn)分子型數(shù)據(jù) 22
第2章 硬件、數(shù)據(jù)量和維護(hù)數(shù)據(jù)庫 23
2.1 并行處理技術(shù) 23
2.2 廉價(jià)的主存儲(chǔ)器 25
2.3 固態(tài)磁盤 25
2.4 更廉價(jià)的二級(jí)存儲(chǔ)器和三級(jí)存儲(chǔ)器 25
2.5 數(shù)據(jù)也在改變 26
2.6 思維方式并未改變 26
第3章 數(shù)據(jù)訪問和記錄 29
3.1 順序訪問 29
3.2 索引 30
3.2.1 單表索引 31
3.2.2 多表索引 31
3.2.3 索引的類型 32
3.3 散列 32
3.3.1 數(shù)字選擇 33
3.3.2 除法散列 33
3.3.3 乘法散列 33
3.3.4 合并 33
3.3.5 表的查找 33
3.3.6 沖突 34
3.4 位向量索引 34
3.5 并行訪問 34
3.6 行和列存儲(chǔ) 35
3.6.1 基于行的存儲(chǔ) 35
3.6.2 基于列的存儲(chǔ) 35
3.7 聯(lián)結(jié)算法 36
3.7.1 嵌套循環(huán)聯(lián)結(jié)算法 37
3.7.2 排序合并聯(lián)結(jié)算法 37
3.7.3 散列聯(lián)結(jié)算法 37
3.7.4 Shin算法 38
第4章 查找表 39
4.1 數(shù)據(jù)元素的名稱 40
4.2 多參數(shù)查找表 42
4.3 常量表 43
4.4 OTLT或MUCK表問題 45
4.5 正確表的定義 48
第5章 輔助表 49
5.1 序列表 49
5.1.1 創(chuàng)建序列表 51
5.1.2 序列構(gòu)造器 51
5.1.3 替換迭代循環(huán) 52
5.2 排列 54
5.2.1 通過遞歸進(jìn)行排列 54
5.2.2 通過CROSS JOIN進(jìn)行排列 55
5.3 函數(shù) 57
5.4 通過表實(shí)現(xiàn)加密 59
5.5 隨機(jī)數(shù) 60
5.6 插值 63
第6章 視圖 66
6.1 Mullins視圖使用原則 66
6.1.1 高效訪問和計(jì)算 67
6.1.2 重命名列 68
6.1.3 避免增生 68
6.1.4 視圖同步原則 68
6.2 可更新視圖和只讀視圖 69
6.3 視圖的類型 71
6.3.1 單表投影和限制 71
6.3.2 計(jì)算列 71
6.3.3 轉(zhuǎn)換列 72
6.3.4 分組視圖 72
6.3.5 聯(lián)合視圖 73
6.3.6 視圖的聯(lián)結(jié) 74
6.3.7 嵌套視圖 75
6.4 用表構(gòu)建類模型 76
6.4.1 SQL中類的層次結(jié)構(gòu) 77
6.4.2 通過ASSERTION和TRIGER工作的子類 79
6.5 數(shù)據(jù)庫系統(tǒng)如何處理視圖 79
6.5.1 視圖列的列表 79
6.5.2 視圖的物化 80
6.6 嵌入式文本擴(kuò)展 80
6.7 WITH CHECK OPTION子句 81
6.8 刪除視圖 86
6.9 過時(shí)的視圖用法 87
6.9.1 域的支持 87
6.9.2 表表達(dá)式視圖 88
6.9.3 表級(jí)CHECK()約束的視圖 88
6.9.4 每個(gè)基表一個(gè)視圖 88
第7章 虛擬表 90
7.1 派生表 90
7.1.1 列的命名規(guī)則 91
7.1.2 作用域規(guī)則 91
7.1.3 公開的表名 93
7.1.4 LATERAL()子句 94
7.2 CTE 96
7.2.1 非遞歸CTE 96
7.2.2 遞歸CTE 97
7.3 臨時(shí)表 98
7.3.1 ANSI/ISO標(biāo)準(zhǔn) 99
7.3.2 廠商的模型 99
7.4 信息模式 99
7.4.1 INFORMATION_SCHEMA聲明 100
7.4.2 視圖及其用途的快速列表 101
7.4.3 域的聲明 102
7.4.4 定義模式 102
7.4.5 INFORMATION_SCHEMA斷言 105
第8章 用表實(shí)現(xiàn)的復(fù)雜函數(shù) 106
8.1 沒有簡單公式的函數(shù) 106
8.2 用表實(shí)現(xiàn)校驗(yàn)位 107
8.2.1 校驗(yàn)位的定義 107
8.2.2 檢錯(cuò)與糾錯(cuò)的對(duì)比 108
8.3 算法的分類 109
8.3.1 加權(quán)和算法 109
8.3.2 冪和校驗(yàn)位 111
8.3.3 Luhn算法 112
8.3.4 Dihedral Five校驗(yàn)位 113
8.4 聲明不是函數(shù),不是過程 114
8.5 用于輔助表的數(shù)據(jù)挖掘 118
第9章 時(shí)態(tài)表 120
9.1 時(shí)間的本質(zhì) 120
9.1.1 時(shí)間段,不是時(shí)間子 121
9.1.2 細(xì)分程度 122
9.2 ISO半開放時(shí)間模型 123
9.2.1 用NULL表示永遠(yuǎn) 125
9.2.2 單時(shí)間戳表 125
9.2.3 重疊的時(shí)間間隔 127
9.3 狀態(tài)轉(zhuǎn)換表 134
9.4 合并時(shí)間間隔 138
9.4.1 游標(biāo)和觸發(fā)器 139
9.4.2 OLAP函數(shù)解決方案 140
9.4.3 CTE解決方案 141
9.5 Calendar表 142
9.5.1 用表提供星期值 142
9.5.2 節(jié)假日列表 143
9.5.3 報(bào)告期 145
9.5.4 自更新視圖 145
9.6 歷史表 147
第10章 用非第一范式表清理數(shù)據(jù) 149
10.1 重復(fù)的組 149
10.2 設(shè)計(jì)清理表 155
10.3 清理操作使用的約束 157
10.4 日歷清理 158
10.5 字符串清理 159
10.6 共享SQL數(shù)據(jù) 161
10.6.1 數(shù)據(jù)的發(fā)展 162
10.6.2 數(shù)據(jù)庫 162
10.7 提取、轉(zhuǎn)換和加載產(chǎn)品 163
10.7.1 加載數(shù)據(jù)倉庫 164
10.7.2 全部用SQL來完成 165
10.7.3 提取、轉(zhuǎn)換并加載 166
第11章 以SQL的方式思考 168
11.1 熱身練習(xí) 168
11.1.1 整體,不是部分 169
11.1.2 特征函數(shù) 169
11.1.3 盡早鎖定解決方案 171
11.2 啟發(fā)式方法 172
11.2.1 將規(guī)范表達(dá)為清晰的語句 172
11.2.2 在名詞前面添加“所有……的集合”幾個(gè)字 172
11.2.3 刪除問題語句中的行為動(dòng)詞 173
11.2.4 仍然可以使用存根 173
11.2.5 不要擔(dān)心數(shù)據(jù)的顯示 174
11.2.6 第一次嘗試需要專門處理 175
11.2.7 不要害怕拋棄自己在DDL中的首次嘗試 175
11.2.8 克制使用DML的沖動(dòng) 176
11.2.9 不要以方框和箭頭的方式思考 176
11.2.10 畫圓和數(shù)據(jù)集示意圖 177
11.2.11 學(xué)習(xí)具體的產(chǎn)品 178
11.2.12 把WHERE子句看做“超級(jí)變形蟲” 178
11.2.13 使用新聞組、博客和因特網(wǎng) 178
11.3 不要在SQL中使用BIT或BOOLEAN標(biāo)記 179
11.3.1 標(biāo)記位于錯(cuò)誤的層 179
11.3.2 標(biāo)記使用不當(dāng)使正確屬性難以理解 181
第12章 組特征 184
12.1 并不是按是否相等來分組 185
12.2 使用組,不看里面是什么 186
12.2.1 半面向數(shù)據(jù)集的方式 187
12.2.2 分組的解決方案 188
12.2.3 解決方案總結(jié) 189
12.3 根據(jù)時(shí)間分組 190
12.3.1 漸進(jìn)式解決方案 190
12.3.2 整體數(shù)據(jù)解決方案 192
12.4 其他使用HAVING子句的技術(shù) 192
12.5 GROUPING、ROLLUP和CUBE 194
12.5.1 GROUPING SET子句 194
12.5.2 ROLLUP子句 195
12.5.3 CUBE子句 196
12.5.4 關(guān)于超級(jí)組的腳注 196
12.6 WINDOW子句 196
12.6.1 PARTITION BY子句 197
12.6.2 ORDER BY子句 198
12.6.3 RANGE子句 198
12.6.4 編程技巧 199
第13章 將技術(shù)規(guī)范變?yōu)榇a 200
13.1 不良SQL的標(biāo)志 200
13.1.1 代碼的格式是否像另一種語言 200
13.1.2 順序訪問假設(shè) 201
13.1.3 游標(biāo) 201
13.1.4 糟糕的內(nèi)聚度 201
13.1.5 表值函數(shù) 202
13.1.6 同一數(shù)據(jù)元素有多個(gè)名稱 202
13.1.7 數(shù)據(jù)庫中的格式 202
13.1.8 將日期保存到字符串中 203
13.1.9 BIT標(biāo)記、BOOLEAN及其他計(jì)算列 203
13.1.10 跨列的屬性分割 203
13.1.11 跨行的屬性分割 203
13.1.12 跨表的屬性分割 203
13.2 解決方法 204
13.2.1 基于游標(biāo)的解決方案 204
13.2.2 半面向數(shù)據(jù)集的解決方案 205
13.2.3 完全面向數(shù)據(jù)集的解決方案 207
13.2.4 面向數(shù)據(jù)集代碼的優(yōu)點(diǎn) 207
13.3 解釋含糊的說明 207
13.3.1 回歸到DDL 209
13.3.2 修改問題說明 211
第14章 使用過程及函數(shù)調(diào)用 213
14.1 清除字符串中的空格 213
14.1.1 過程式解決方案#1 213
14.1.2 函數(shù)解決方案#1 214
14.1.3 函數(shù)解決方案#2 217
14.2 聚合函數(shù)PRD() 218
14.3 在過程和函數(shù)中使用長參數(shù)列表 220
第15章 對(duì)行編號(hào) 223
15.1 過程式解決方案 223
15.2 OLAP函數(shù) 226
15.2.1 簡單的行編號(hào) 226
15.2.2 RANK()和DENSE_RANK() 227
15.3 節(jié) 228
第16章 保存計(jì)算數(shù)據(jù) 231
16.1 過程式解決方案 231
16.2 關(guān)系式解決方案 232
16.3 其他種類的計(jì)算數(shù)據(jù) 233
第17章 約束類觸發(fā)器 234
17.1 計(jì)算類觸發(fā)器 234
17.2 通過CHECK()和CASE約束實(shí)現(xiàn)的復(fù)雜約束 235
17.3 通過視圖實(shí)現(xiàn)復(fù)雜約束 237
17.4 用約束實(shí)現(xiàn)視圖操作 239
17.4.1 3個(gè)基本操作 239
17.4.2 WITH CHECK OPTION子句 240
17.4.3 WITH CHECK OPTION與CHECK()子句 243
17.4.4 視圖的行為 244
17.4.5 聯(lián)合視圖 246
17.4.6 簡單的INSTEAD OF觸發(fā)器 247
17.4.7 關(guān)于INSTEAD OF觸發(fā)器的告誡 250
第18章 過程式解決方案和數(shù)據(jù)驅(qū)動(dòng)的解決方案 251
18.1 刪除字符串中的字母 251
18.1.1 過程式解決方案 252
18.1.2 純粹的SQL解決方案 252
18.1.3 不純粹的SQL解決方案 253
18.2 數(shù)獨(dú)的兩種求解方法 254
18.2.1 過程式解決方案 254
18.2.2 數(shù)據(jù)驅(qū)動(dòng)的解決方法 254
18.2.3 處理已知數(shù)字 255
18.3 數(shù)據(jù)約束方法 257
18.4 裝箱問題 261
18.4.1 過程式解決方法 261
18.4.2 SQL方式 262
18.5 庫存成本隨時(shí)間的變化 264
18.5.1 庫存中使用的UPDATE語句 267
18.5.2 回到裝箱問題 268

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)