MySQL Cookbook(中文版)

MySQL Cookbook(中文版)
定價:768
NT $ 768
 

內容簡介

  本書為各個層次的、沒有時間和精力來從頭解決MySQL問題的用戶提供了大量簡練、精闢的代碼段和可用的示例,每節都闡述了代碼應該如何工作及原因所在。本書在目前仍然廣為流行的MySQL 4.1的基礎上加入了MySQL 5.0的內容及它強大的新特性。讀者將掌握用MySQL客戶端程序執行SQL查詢的方法,以及通過API編寫與MySQL服務器交互程序的方法。書中有大量使用Perl、PHP、Python、Java甚至Ruby來檢索並顯示數據的新示例,還增加了子查詢、視圖、存儲過程、觸發器和事件等內容。

  本書適合于所有從事數據庫技術開發的相關人員閱讀,是MySQL開發人員案頭必備之書。


Paul DuBois是MySQL在線參考手冊的第一批貢獻者之一,這是在20世紀90年代後期MySQL的開放年代支持管理員和開發者的一個文檔項目。他已經撰寫了多本關于MySQL的著作,包括《MySQL Cookbook 第1版》。
 

目錄

序言
第1章︰使用mysql客戶端程序
 1.0 引言
 1.1 建立MySQL用戶賬號
 1.2 創建數據庫和樣表
 1.3 啟動和停止mysql
 1.4 使用可選項文件來指定連接參數
 1.5 保護選項文件以阻止其他用戶讀取
 1.6 混合使用命令行和選項文件參數
 1.7 找不到mysql時該怎麼做
 1.8 發起SQL語句
 1.9 取消一條部分輸入的語句
 1.10 重復和編輯SQL語句
 1.11 自動完成數據庫名和表名
 1.12 讓mysql從文件中讀取語句
 1.13 讓mysql從其他程序讀取語句
 1.14 一行輸入SQL
 1.15 使用拷貝粘貼作為mysql輸入源
 1.16 預防查詢輸出超出屏幕範圍
 1.17 發送查詢輸出到文件或程序
 1.18 選擇表格或制表符定界的查詢輸出格式
 1.19 指定任意的輸出列分隔符
 1.20 生成HTML或XML輸出
 1.21 在查詢輸出中禁止列頭部
 1.22 使長輸出行更具可讀性
 1.23 控制mysql的繁冗級別
 1.24 記錄交互式的mysql會話
 1.25 以之前執行的語句創建mysql腳本
 1.26 在SQL語句中使用用戶自定義的變量
 1.27 為查詢輸出行計數
 1.28 將mysql用作計算器
 1.29 在Shell腳本中使用mysql
第2章︰編寫基于MySQL的程序
 2.0 引言
 2.1 連接、選擇數據庫及斷開連接
 2.2 查錯
 2.3 編寫庫文件
 2.4 發起語句並檢索結果
 2.5 處理語句中的特殊字符和NULL值
 2.6 處理標識符中特殊字符
 2.7 識別結果集中的NULL值
 2.8 獲取連接參數的技術
 2.9 結論和建議
第3章︰從表中查詢數據
 3.0 引言
 3.1 指定查詢列/從指定列中查詢
 3.2 指定查詢行
 3.3 格式化顯示查詢結果
 3.4 使用列別名來簡化程序
 3.5 合並多列來構建復合值
 3.6 Where表達式中的列別名
 3.7 調試比較表達式
 3.8 使查詢結果唯一化
 3.9 如何處理NULL 值
 3.10 在用戶程序中使用NULL作為比較參數
 3.11 結果集排序
 3.12 使用視圖來簡化查詢
 3.13 多表查詢
 3.14 從查詢結果集頭或尾取出部分行
 3.15 在結果集中間選取部分行
 3.16 選擇合適的LIMIT參數
 3.17 當LIMIT需要“錯誤”的排列順序時做什麼
 3.18 從表達式中計算LIMIT值
第4章︰表管理
 4.0 引言
 4.1 克隆表
 4.2 將查詢結果保存到表中
 4.3 使用臨時表
 4.4 檢查或改變某個表的存儲引擎
 4.5 生成唯一的表名
第5章︰與字符串共舞
 5.0 引言
 5.1 字符串屬性
 5.2 選擇字符串的數據類型
 5.3 正確設置客戶端連接的字符集
 5.4 串字母
 5.5 檢查一個字符串的字符集或字符排序
 5.6 改變字符串的字符集或字符排序
 5.7 更改字符串字母的大小寫
 5.8 更改字符串大小寫失敗的情況
 5.9 控制字符串比較中的大小寫敏感
 5.10 使用SQL模式進行模式匹配
 5.11 使用正則表達式進行模式匹配
 5.12 模式匹配中的大小寫問題
 5.13 分割或者串聯字符串
 5.14 查詢子串
 5.15 使用FULLTEXT查詢
 5.16 用短語來進行FULLTEXT查詢
 5.17 要求或禁止FULLTEXT搜索單詞
 5.18 用FULLTEXT索引來執行詞組查詢
第6章︰使用日期和時間
 6.0 引言
 6.1 選擇合適的日期或者時間變量類型
 6.2 修改MySQL中的日期格式
 6.3 設置客戶端時區
 6.4 獲取當前日期或時間
 6.5 使用TIMESTAMP來跟蹤行修改時間
 6.6 從日期或者時間值中分解出各部分值
 6.7 合成日期或者時間值
 6.8 在時間數據類型和基本單位間進行轉換
 6.9 計算兩個日期或時間之間的間隔
 6.10 增加日期或時間值
 6.11 計算年齡
 6.12 將一個日期和時間值切換到另一個時區
 6.13 找出每月的第一天,最後一天或者天數
 6.14 通過子串替換來計算日期
 6.15 計算某個日期為星期幾
 6.16 查出給定某周的某天的日期
 6.17 執行閏年計算
 6.18 接近但不是ISO格式的日期格式
 6.19 將日期或時間當成數值
 6.20 強制MySQL將字符串當作時間值
 6.21 基于時間特性來查詢行
第7章︰排序查詢結果
 7.0 引言
 7.1 使用ORDER BY命令排序查詢結果
 7.2 使用表達式排序
 7.3 顯示一組按照其它屬性排序的值
 7.4 字符串排序的大小寫區分控制
 7.5 基于日期的排序
 7.6 按日歷排序
 7.7 按周歷排序
 7.8 按時鐘排序
 7.9 按數據列的子串排序
 7.10 按固定長度的子串排序
 7.11 按可變長度的子串排序
 7.12 按域名順序排列主機名
 7.13 按照數字順序排序點分式IP地址
 7.14 將數值移動到排序結果的頭部或尾部
 7.15 按照用戶定義排序
 7.16 排序枚舉數值
第8章︰生成摘要
 8.0 引言
 8.1 使用COUNT函數生成摘要
 8.2 使用MIN()和MAX()函數生成摘要
 8.3 使用SUM()和AVG()函數生成摘要
 8.4 使用DISTINCT函數消除重復
 8.5 查找數值相關的最大值和最小值
 8.6 控制MIN()函數和MAX()函數的字符串大小寫區分
 8.7 將摘要劃分為子群
 8.8 摘要與空值
 8.9 使用確定的特性選擇組群
 8.10 使用計數確定數值是否唯一
 8.11 使用表達式結果分組
 8.12 分類無類別數據
 8.13 控制摘要顯示順序
 8.14 查找最小或最大的摘要數值
 8.15 基于日期的摘要
 8.16 同時使用每一組的摘要和全體的摘要
 8.17 生成包括摘要和列表的報告
第9章︰獲取和使用元數據
 9.0 引言
 9.1 獲取受語句影響的數據行數目
 9.2 獲取設置元數據的結果
 9.3 確定一條語句是否生成了結果集
 9.4 使用元數據來格式化查詢輸出
 9.5 列舉或檢查數據庫或表的擴展
 9.6 訪問表數據列定義
 9.7 取得ENUM和SET數據列信息
 9.8 在應用程序中使用表結構信息
 9.9 獲取服務器元數據
 9.10 編寫適合MySQL服務器版本的應用程序
 9.11 確定默認數據庫
 9.12 監測MySQL服務器
 9.13 確定服務器支持哪個存儲引擎
第10章︰數據導入導出
 10.0 引言
 10.1 使用LOAD DATA和mysqlimport導入數據
 10.2 指定數據文件位置
 10.3 指定數據文件的結構
 10.4 處理引號和特殊字符
 10.5 導入CSV文件
 10.6 讀取不同操作系統的文件
 10.7 處理重復的鍵值
 10.8 獲取關于錯誤輸入數據的診斷信息
 10.9 跳過數據文件行
 10.10 指定輸入列順序
 10.11 在插入輸入值之前對數據文件進行預處理
 10.12 忽略數據文件列
 10.13 從MySQL中導出查詢結果
 10.14 將表導出為文本文件
 10.15 以SQL格式導出表內容或定義
 10.16 將表或數據庫拷貝到另一個服務器
 10.17 編寫你自己的導出程序
 10.18 將數據文件從一種格式轉化為另一種格式
 10.19 提取和重排數據文件列
 10.20 使用SQL模式來控制錯誤的輸入數據處理
 10.21 驗證並轉換數據
 10.22 使用模式匹配來驗證數據
 10.23 使用模式來匹配廣泛的內容類型
 10.24 使用模式來匹配數值
 10.25 使用模式來匹配日期或時間
 10.26 使用模式來匹配E-mail地址或URL
 10.27 使用表元數據來驗證數據
 10.28 使用一個查找表來驗證數據
 10.29 將兩個數字的年份值轉化為四位形式
 10.30 驗證日期和時間合法性
 10.31 編寫時間處理工具
 10.32 使用不完整的日期
 10.33 導入非ISO格式日期值
 10.34 使用非ISO格式導出日期值
 10.35 導入和導出NULL值
 10.36 根據數據文件猜測表結構
 10.37 在MySQL和Access之間交換數據
 10.38 在MySQL和Microsoft Excel之間交換數據
 10.39 將輸出結果導出為XML
 10.40 將XML導入MySQL
 10.41 尾聲
第11章︰生成和使用序列
 11.0 引言
 11.1 創建一個序列列並生成序列值
 11.2 為序列列選擇數據類型
 11.3 序列生成的行刪除的效果
 11.4 查詢序列值
 11.5 對一個已有的序列進行重新計數
 11.6 擴展序列列的取值範圍
 11.7 序列頂部數值的再使用
 11.8 確保各行按照給定順序重編號
 11.9 從某個特定值開始一個序列
 11.10 序列化一個未序列的表
 11.11 使用AUTO_INCREMENT欄來創建多重序列
 11.12 管理多重並發AUTO_INCREMENT數值
 11.13 使用AUTO_INCREMENT值將表進行關聯
 11.14 將序列生成器用作計數器
 11.15 創建循環序列
 11.16 按行順序輸出數列查詢
第12章︰使用多重表
 12.0 引言
 12.1 在表中找到與另一個表中的行相匹配的行
 12.2 查找與其他表不匹配的行
 12.3 將表與自身進行比較
 12.4 產生主從列表和摘要
 12.5 枚舉多對多的關系
 12.6 查找每組行中含有最大或最小值的行
 12.7 計算隊伍排名
 12.8 使用連接補全或識別列表的缺口
 12.9 計算連續行的差值
 12.10 發現累積和與動態均值
 12.11 使用連接控制查詢輸出的順序
 12.12 在單個查詢中整合幾個結果集
 12.13 識別並刪除失配或獨立行
 12.14 為不同數據庫間的表執行連接
 12.15 同時使用不同的MySQL服務器
 12.16 在程序中引用連接的輸出列名稱
第13章︰統計技術
 13.0 引言
 13.1 計算描述統計
 13.2 分組描述統計
 13.3 產生頻率分布
 13.4 計數缺失值
 13.5 計算線性回歸和相關系數
 13.6 生成隨機數
 13.7 隨機化行集合
 13.8 從行集合中隨機選擇條目
 13.9 分配等級
第14章︰處理重復項
 14.0 引言
 14.1 防止在表中發生重復
 14.2 處理向表中裝載行時出現的重復錯誤
 14.3 計數和識別重復項
 14.4 從表中消除重復項
 14.5 從自連接的結果中消除重復
第15章︰執行事務
 15.0 引言
 15.1 使用事務存儲引擎
 15.2 使用SQL執行事務
 15.3 在程序中執行事務
 15.4 在Perl程序中使用事務
 15.5 在Ruby程序中使用事務
 15.6 在PHP程序中使用事務
 15.7 在Python程序中使用事務
 15.8 在Java程序中使用事務
 15.9 使用事務的替代方法
第16章︰使用存儲例程、觸發器和事件
 16.0 引言
 16.1 創建復合語句對象(此節翻譯有誤)
 16.2 使用存儲函數封裝計算
 16.3 使用存儲過程來“返回”多個值
 16.4 用觸發器來定義動態的默認列值
 16.5 為其他日期和時間類型模擬TIMESTAMP屬性
 16.6 使用觸發器記錄表的變化
 16.7 使用事件調度數據庫動作
第17章︰關于Web應用中MySQL的介紹
 17.0 引言
 17.1 Web頁面產生的基本原則
 17.2 使用Apache運行web腳本
 17.3 使用Tomcat運行Web腳本
 17.4 在Web輸出中編碼特殊字符
第18章︰在Web頁面中混合查詢結果
 18.0 引言
 18.1 以段落文本顯示查詢結果
 18.2 以列表形式顯示查詢結果
 18.3 以表格形式顯示查詢結果
 18.4 將查詢結果顯示為超鏈接
 18.5 根據數據庫內容中創建導航索引
 18.6 存儲圖片或其他二進制數據
 18.7 檢索圖片或其他二進制數據
 18.8 提供標語廣告
 18.9 提供可下載的查詢結果
 18.10 使用模板系統生成web頁面
第19章︰用MySQL處理Web輸入
 19.0 引言
 19.1 編寫腳本生成Web表單
 19.2 根據數據庫內容構建單取表單元素
 19.3 根據數據庫內容構建多取表單元素
 19.4 將一條數據庫記錄導入表單
 19.5 收集Web輸入
 19.6 驗證Web輸入
 19.7 將Web輸入存入數據庫
 19.8 處理文件上傳
 19.9 執行搜索並顯示結果
 19.10 生成上一頁和下一頁鏈接
 19.11 生成點擊排序的表格頭單元
 19.12 Web頁面訪問計數
 19.13 Web頁面訪問日志
 19.14 使用MySQL存儲Apache日志
第20章︰使用基于MySQL的Web會話管理
 20.0 引言
 20.1 在Perl應用程序中使用基于MySQL的會話
 20.2 在Ruby應用程序中使用基于MySQL的存儲
 20.3 在PHP會話管理器中使用基于MySQL的存儲
 20.4 在Tomcat中為會話支持存儲使用MySQL
附錄A︰獲取MySQL軟件
附錄B︰從命令行執行程序
附錄C︰JSP和Tomcat知識的初步內容
附錄D︰參考資料
索引
 

MySQL數據庫管理系統最近幾年已經有了很多的追隨者,特別是在Linux和開源社區中,MySQL在商業使用方面的市場份額也同樣在增長。它因以下幾個原因而廣為人喜愛︰快速,易于安裝、使用和管理。它可以運行于多種Unix和Windows操作系統下,而且基于MySQL的程序可以使用多種語言來編寫。從歷史上看,它尤其流行于創建包含動態內容的數據庫支撐的Web站點。此外,隨著MySQL 5.0中諸如視圖、觸發器、存儲過程以及函數等特征的引人、MySQL對于應用開發其他領域的滲透也正在深人。

隨著MySQL的流行,用戶常有如何解決特定問題的疑問,為此提供答案的需求便也應運而生。這便是本書的目的所在。當你使用MySQL遇到特定類型的問題需要攻克時,本書就是一本唾手可得的資料,你可以在其中翻閱到所需要的快捷的解決方案或技術。自然地,因共走一本“食譜”,它包含了相應的方子︰你可以直接依循指南而無須從頭開發你自己的代碼。它以問題和解決方案的格式寫成,該格式非常實用,也使得內容易于閱讀吸收。本書包含了很多小節,每個小節描述了如何編寫一次查詢,應用一項技術,或者開發一段腳本來解決特定範圍的問題。本書並未試圖去開發一個成熟的復雜應用。相反,它試圖為你自己在開發這些應用時提供幫助來解決曾難倒你的問題。

例如,一個很常見的問題是,“當我編寫查詢時在數據值中出現引號和特殊字符該如何處理?”那並不難,但是當你不知從何開始時就有些難。本書闡述了要做什麼,它向你揭示了從何開始以及如何繼續。這些知識將反復為你提供幫助,因為在你明白它的內涵之後,你就能將這些技術應用到任意類型的數據,例如文本、圖片、音頻或視頻片段、新聞文章、壓縮文件或者PDF文檔。另一個常見問題是,“我能同時訪問多個表的數據嗎?”答案是“可以”,它很簡單,因為只要了解合適的SQL語法就可以了。但是直到你看到本書給你的示例你才能清楚地知道怎麼去做。你可以從本書學到的其他知識包括︰

‧ 如何使用SQL來查詢、排序和統計行。
‧ 如何發現兩表間匹配或不匹配的行。
‧ 如何執行一次事務。
‧ 如何計算日期或時間的間隔,包括計算年齡。
‧ 如何識別或移除重復行。
‧ 如何將圖片存人MySQL並在網頁中查詢出來以供顯示。
‧ 如何合理使用LOAD DATA讀取你的數據文件或者查明文件里的哪些值不正確。
‧ 如何使用strict模式來阻止錯誤數據進人你的數據庫中。
‧ 如何將一個表或一個數據庫拷貝到另一個服務器。
‧ 如何生成序列值以用作唯一的行標識符。
‧ 如何編寫存儲過程和函數。
‧ 如何將視圖用作“虛擬表”。
‧ 如何設置觸發器,使其在你插人或更新表行時被激活來執行特定的數據處理操作。
‧ 如何創建按照計劃執行的數據庫事件。

了解如何使用MySQL的其中一個方面是理解怎麼和服務器進行通信一⊥也就是怎麼使用SQL格式化查詢語言。因此,本書的一個重點就是使用SQL來闡明回答特定類型問題的查詢。學習使用SQL的一個有用工具是包含在MySQL發行包中的mysql客戶端程序。通過交互式地使用該客戶端,你可以發送SQL語句到服務器並查看結果。這相當有用,因為它提供了SQL的直接接口。實際上,mysql客戶端如此有用,以致整個第1章都用來闡述它。

……
網路書店 類別 折扣 價格
  1. 新書
    $768