內容簡介
不論你是只想從資料庫排序數據,還是要執行複雜的計算,本書向你揭示了資料庫專家挖掘數據並得到他們所需答案的方法.本書包含了100個排序、篩選、打亂數據的技巧,大大增強了傳統SQL語句的功能。通過本書,你可以學習到:
從命令行和程式往資料庫傳送SQL命令。
使用高級的聯合、過濾和分組技術,為數據報表獲得數據。
解決使用SQL的一些疑難問題。
在字元串、日期等數據上執行複雜的查詢與排序。
設定你的事務,這樣用戶之間就不會發生衝突。
管理用戶,審計他們對資料庫所做的修改。
最佳化SQL操作,使CPU和網路的負載最小化。
即使你使用Access、MySQL、SQLServer、Oracle或PostgreSQL資料庫多年,本書保證你從沒有像這樣使用SELECT、INSERT、UPDATE和DELETE語句。
作者簡介
AndrewCumming是http://sqlzoo.net網站的維護人,是“AGentleIntroductiontoSQL,”一書的作者。他還在蘇格蘭愛丁堡的Napier大學講課。
GordonRussell博士是蘇格蘭愛丁堡的Napier大學的講師。他講授資料庫、Linux和網路技術,構建教育網站,關注以技術為驅動的線上學習環境。
目錄
致謝
前言
第1章SOL基礎
1.在命令行中運行SQL
2.在程式中連線到SQL上
3.執行條件INSERT
4.更新資料庫
5.使用SQL求解填字遊戲
6.不反覆執行相同的計算
第2章連線、聯合和視圖
7.不破壞現有查詢的修改模式
8.過濾行和列
9.在索引列上過濾
10.將子查詢轉換為JOIN
11.將聚合子查詢轉換為JOIN
12.簡化複雜的更新
13.為關係選擇正確的連線風格
14.生成組合
第3章文本處理
15.不用LIKE搜尋關鍵字
16.跨列搜尋字元串
17.求解重組字
18.排序電子郵件
第4章日期處理
19.將字元串轉換為日期
20.發現數據中的趨勢
21.基於任何日期條件的報告
22.生成季度報告
23.月份的第二個星期二
第5章數值處理
24.計算結果集的乘積
25.計算累加和
26.包含JOIN遺忘的行
27.識別重疊範圍
28.避免零做除數
29.計算行數的其他途徑
30.計算兩個欄位的最大值
31.反聚合COUNT
32.克服舍入誤差
33.同時得到值和小計
34.計算中位數
35.將結果展示為圖表
36.計算GPS定位之間的距離
37.讓貨物清單和支付清單對應起來
38.找出換位錯誤
39.計算累進稅
40.計算名次
第6章在線上套用
41.將Web頁面複製到表中
42.使用SVG圖形化地展示數據
43.將導航特性添加到Web套用上
44.從MicrosoftAccess中隧道訪問MySQL
45.處理Web伺服器日誌
46.在資料庫中存儲圖像
47.利用SQL注入漏洞
48.防止SQL注入攻擊
第7章組織數據
49.跟蹤不常變化的值
50.合併包含不同數據的表
51.將行顯示為列
52.將列顯示為行
53.清除不一致的記錄
54.去規範化你的表
55.移入其他人的數據
56.做媒
57.生成唯一序列號
第8章存儲少量數據
58.在資料庫中存儲參數
59.定義個性化參數
60.創建一系列的個性參數
61.設定基於行的安全性
62.不用表執行查詢
63.不使用表生成行
第9章加鎖與性能
64.確定你的隔離級別
65.使用悲觀鎖
66.使用樂觀鎖
67.事務中的隱含加鎖
68.處理不期待的重做
69.在資料庫中執行函式
70.將查詢結合起來
71.提取大量數據行
72.提取結果集的子集
73.檔案和資料庫的混合存儲
74.比較和阿步表
75.在一對多連線中最小化頻寬
76.使用壓縮避免LOB
第10章製作報表
77.在數據透視表中填寫遺漏的數據
78.按範圍分組
79.唯一地標識更新
80.玩SixDegreesofKevinBacon遊戲
81.構造決策表
82.生成順序的或遺漏的數據
83.找出每個組中的前n個元素
84.在列中存儲逗號分隔的列表
85.遍歷簡單樹
86.在資料庫中建立佇列
87.生成日曆
88.從子查詢中測試兩個值
89.五選三
第11章用戶和管理
90.實現應用程式級賬戶
91.移出和移入表定義
92.部署應用程式
93.自動創建資料庫用戶
94.創建用戶和管理員
95.生成自動更新
96.創建審計跟蹤
第12章更廣闊的訪問
97.允許匿名賬戶
98.找出並停止耗時漫長的查詢
99.不要用盡磁碟空間
100.從Web頁面中運行SQL
……