SQL Hacks
暫譯: SQL 竅門

Andrew Cumming, Gordon Russell

  • 出版商: O'Reilly
  • 出版日期: 2006-12-26
  • 售價: $1,260
  • 貴賓價: 9.5$1,197
  • 語言: 英文
  • 頁數: 412
  • 裝訂: Paperback
  • ISBN: 0596527993
  • ISBN-13: 9780596527990
  • 相關分類: SQL
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

相關主題

商品描述

Description  

Whether you're running Access, MySQL, SQL Server, Oracle, or PostgreSQL, this book will help you push the limits of traditional SQL to squeeze data effectively from your database. The book offers 100 hacks -- unique tips and tools -- that bring you the knowledge of experts who apply what they know in the real world to help you take full advantage of the expressive power of SQL. You'll find practical techniques to address complex data manipulation problems. Learn how to:
  • Wrangle data in the most efficient way possible
  • Aggregate and organize your data for meaningful and accurate reporting
  • Make the most of subqueries, joins, and unions
  • Stay on top of the performance of your queries and the server that runs them
  • Avoid common SQL security pitfalls, including the dreaded SQL injection attack

Let SQL Hacks serve as your toolbox for digging up and manipulating data. If you love to tinker and optimize, SQL is the perfect technology and SQL Hacks is the must-have book for you.

 

Table of Contents

Credits  

Preface  

Chapter 1. SQL Fundamentals 

      1. Run SQL from the Command Line  

      2. Connect to SQL from a Program  

      3. Perform Conditional INSERTs  

      4. UPDATE the Database  

      5. Solve a Crossword Puzzle Using SQL  

      6. Don't Perform the Same Calculation Over and Over  

Chapter 2. Joins, Unions, and Views 

      7. Modify a Schema Without Breaking Existing Queries
      8. Filter Rows and Columns  

      9. Filter on Indexed Columns  

      10. Convert Subqueries to JOINs  

      11. Convert Aggregate Subqueries to JOINs  

      12. Simplify Complicated Updates  

      13. Choose the Right Join Style for Your Relationships  

      14. Generate Combinations  

Chapter 3. Text Handling 

      15. Search for Keywords Without LIKE  

      16. Search for a String Across Columns  

      17. Solve Anagrams  

      18. Sort Your Email  

Chapter 4. Date Handling 

      19. Convert Strings to Dates  

      20. Uncover Trends in Your Data  

      21. Report on Any Date Criteria  

      22. Generate Quarterly Reports  

      23. Second Tuesday of the Month  

Chapter 5. Number Crunching 

      24. Multiply Across a Result Set  

      25. Keep a Running Total  

      26. Include the Rows Your JOIN Forgot  

      27. Identify Overlapping Ranges  

      28. Avoid Dividing by Zero  

      29. Other Ways to COUNT  

      30. Calculate the Maximum of Two Fields  

      31. Disaggregate a COUNT  

      32. Cope with Rounding Errors  

      33. Get Values and Subtotals in One Shot  

      34. Calculate the Median  

      35. Tally Results into a Chart  

      36. Calculate the Distance Between GPS Locations  

      37. Reconcile Invoices and Remittances  

      38. Find Transposition Errors  

      39. Apply a Progressive Tax  

      40. Calculate Rank  

Chapter 6. Online Applications 

      41. Copy Web Pages into a Table  

      42. Present Data Graphically Using SVG  

      43. Add Navigation Features to Web Applications  

      44. Tunnel into MySQL from Microsoft Access  

      45. Process Web Server Logs  

      46. Store Images in a Database  

      47. Exploit an SQL Injection Vulnerability  

      48. Prevent an SQL Injection Attack  

Chapter 7. Organizing Data 

      49. Keep Track of Infrequently Changing Values  

      50. Combine Tables Containing Different Data  

      51. Display Rows As Columns  

      52. Display Columns As Rows  

      53. Clean Inconsistent Records  

      54. Denormalize Your Tables  

      55. Import Someone Else's Data  

      56. Play Matchmaker  

      57. Generate Unique Sequential Numbers  

Chapter 8. Storing Small Amounts of Data 

      58. Store Parameters in the Database  

      59. Define Personalized Parameters  

      60. Create a List of Personalized Parameters  

      61. Set Security Based on Rows  

      62. Issue Queries Without Using a Table  

      63. Generate Rows Without Tables  

Chapter 9. Locking and Performance 

      64. Determine Your Isolation Level  

      65. Use Pessimistic Locking  

      66. Use Optimistic Locking  

      67. Lock Implicitly Within Transactions  

      68. Cope with Unexpected Redo  

      69. Execute Functions in the Database  

      70. Combine Your Queries  

      71. Extract Lots of Rows  

      72. Extract a Subset of the Results  

      73. Mix File and Database Storage  

      74. Compare and Synchronize Tables  

      75. Minimize Bandwidth in One-to-Many Joins  

      76. Compress to Avoid LOBs  

Chapter 10. Reporting 

      77. Fill in Missing Values in a Pivot Table  

      78. Break It Down by Range  

      79. Identify Updates Uniquely  

      80. Play Six Degrees of Kevin Bacon  

      81. Build Decision Tables  

      82. Generate Sequential or Missing Data  

      83. Find the Top n in Each Group  

      84. Store Comma-Delimited Lists in a Column  

      85. Traverse a Simple Tree  

      86. Set Up Queuing in the Database  

      87. Generate a Calendar  

      88. Test Two Values from a Subquery  

      89. Choose Any Three of Five  

Chapter 11. Users and Administration 

      90. Implement Application-Level Accounts  

      91. Export and Import Table Definitions  

      92. Deploy Applications  

      93. Auto-Create Database Users  

      94. Create Users and Administrators  

      95. Issue Automatic Updates  

      96. Create an Audit Trail  

Chapter 12. Wider Access 

      97. Allow an Anonymous Account  

      98. Find and Stop Long-Running Queries  

      99. Don't Run Out of Disk Space  

      100. Run SQL from a Web Page  

Index  

商品描述(中文翻譯)

**描述**
無論您使用的是 Access、MySQL、SQL Server、Oracle 還是 PostgreSQL,本書將幫助您突破傳統 SQL 的限制,有效地從數據庫中提取數據。本書提供 100 個技巧——獨特的提示和工具——讓您獲得專家在實際應用中所掌握的知識,幫助您充分利用 SQL 的表達能力。您將找到實用的技術來解決複雜的數據操作問題。學習如何:
- 以最有效的方式處理數據
- 聚合和組織數據以進行有意義且準確的報告
- 充分利用子查詢、聯接和聯合
- 監控查詢和運行它們的伺服器的性能
- 避免常見的 SQL 安全陷阱,包括可怕的 SQL 注入攻擊

讓《SQL Hacks》成為您挖掘和操作數據的工具箱。如果您喜歡調整和優化,SQL 是完美的技術,而《SQL Hacks》是您必備的書籍。

**目錄**
**致謝**
**前言**
**第 1 章. SQL 基礎**
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. 將網頁複製到表中
42. 使用 SVG 以圖形方式呈現數據
43. 為網絡應用添加導航功能
44. 從 Microsoft Access 隧道進入 MySQL
45. 處理網絡伺服器日誌
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. 玩六度分隔的凱文·貝肯
81. 建立決策表
82. 生成順序或缺失數據
83. 找出每組的前 n 名
84. 在一列中存儲以逗號分隔的列表
85. 遍歷簡單樹
86. 在數據庫中設置排隊
87. 生成日曆
88. 測試來自子查詢的兩個值
89. 從五個中選擇任意三個

**第 11 章. 用戶和管理**
90. 實施應用級帳戶
91. 導出和導入表定義
92. 部署應用
93. 自動創建數據庫用戶
94. 創建用戶和管理員
95. 發出自動更新
96. 創建審計跟蹤

**第 12 章. 更廣泛的訪問**
97. 允許匿名帳戶
98. 查找並停止長時間運行的查詢
99. 不要耗盡磁碟空間
100. 從網頁運行 SQL

**索引**