從 2009 年初開始動筆到最終定稿,這本書的編寫花費了我一年多的時間,大大超出了先前預期的計劃。當時,書剛剛開了個頭,我便被安排參加了單位的一個流程優化項目,其中包含 5 個新系統的開發和 1 個舊系統的改造。同時,我自己還主持著一個管理信息系統的開發工作。項目目標定義、業務需求分析、系統架構設計,環環相扣,整天忙的不可開交,寫作成了真正忙里偷閑的事。
當系統一個個瓜熟蒂落,能夠自己支配的時間才稍微充裕了一些,這本書的寫作才算步入正軌。好在我寫作只是自己的一種業余愛好,沒有其他方面的壓力,唯一的目的就是希望能夠創作一些精品圖書。交稿日期雖然一拖再拖,但是我一直在告誡自己,只要編輯還能夠忍受我這種“言不守信”的惡劣行徑,我就必須盡自己最大努力,精益求精地去完成每個后續章節的編寫工作。在這方面,我非常感謝本書的編輯杜潔女士,她總能每次寬容地接受我的延遲交稿要求,并給予我熱情的鼓勵,才促使我最終完成了本書。
本書特點
這是一本引領你進入 SQL 查詢殿堂的圖書,既有對普通 SQL 技術的介紹,也有對 SQL 新技術的深入討論,更包含一些實用的查詢方案演練。之所以要寫作這樣一本圖書,主要出于兩方面的原因:一是伴隨著各種數據庫技術日新月異的發展,無論是哪種數據庫產品,用一本書去描述它的全貌,幾乎是不可能的,那樣做只能是止渴飲鴆。所以我就想能否抽取出各種數據庫產品中一些共同的東西,進行深入的介紹,而 SQL 無疑是這方面的首選。二是在與一些開發公司的合作中,發現公司間的 SQL 應用情況也差異很大,一些公司出于產品的可移植性考慮,拒絕使用一些新的 SQL 技術,甚至盡量避免在服務器上部署存儲過程。所以,我希望在深入地討論一些常用 SQL 技術的同時,也盡可能多地介紹一些 SQL 的新技術,從而解除大家對新技術的恐懼感,對新技術的推廣能夠起到一定的推波助瀾作用。
本書在對 SQL 介紹時,是在 SQL Server 數據庫產品上進行的。不過,無論是哪種數據庫產品的 SQL ,由于大家都在遵循 ANSI-SQL 標準,所以差別并不大。數據庫開發人員在跨越不同的數據庫產品時,一般不會遇到什么障礙。
本書在介紹各種查詢語法時,我們更注重對查詢邏輯思維方式的引導和介紹。只有這樣,讀者在閱讀本書之后,才可以舉一反三,切實增強自己動手解決問題的能力。
本書適用讀者
本書是按照由淺入深、循序漸進方式對 SQL 進行介紹的,既包含又入門知識,也包含有對深層次技術的討論。即使是最基本的查詢語句,我們也會盡力為讀者提供解決深層次問題的能力。也就是說,同樣一個問題,你可以寫幾十甚至上百行的 SQL 語句來解決問題,也有可能僅通過一條 SELECT 語句就可以解決問題。作為 SQL 而言,雖然代碼最簡化并不一定是性能最優化,但至少是對思維能力的一種提升。
從這個角度而言,本書可以作為你的 SQL 入門書籍,也可以作為 SQL 程序員和分析師的參考書籍。
本書內容與結構
本書共 19 章,可大致分為基礎篇、編程篇、性能調教篇和實戰演練篇,共四部分。
基礎篇包括第 1 章至第 10 章。其中,第 1 章是對查詢工具、書寫規范等基本內容的介紹,第 2 章至第 5 章是對數據庫、表和索引的介紹,第 5 章到第 10 章則介紹了使用 SELECT 進行數據查詢和使用 INSERT 、 UPDATE 、 DELETE 進行數據修改的各個方面。
編程篇包括第 11 章至第 15 章。如果將 SELECT 、 INSERT 、 UPDATE 和 DELETE 作為基本查詢語句,則 IF...ELSE 、 WHILE 、和 TRY...CATCH 構造等則可以看作是 SQL 編程語句。在存儲過程、觸發器等對象中可以通過這些語句實現一些復雜的邏輯處理。如果你曾經是一個使用 VB 或 VC 程序員,在學習 C/S 或 B/S 編程的時候,你應當掌握這種服務器端的編程工具,從而將業務邏輯計算合理地分布到服務器和客戶端。
性能調教篇包括第 16 章至第 18 章。第 16 章和第 17 章介紹的是事務處理機制和并發訪問控制。其實,無論是微軟、還是 Oracle 、 IBM ,其數據庫產品的核心功能都是一樣的,即在保證數據完整性的前提下提供最大的并發支持。數據庫系統是通過“鎖機制”來實現的,數據庫引擎都提供有多種粒度的鎖定模式,從而允許用戶可以根據需要將資源鎖定在適當的級別,盡量減少鎖定開銷。第 18 章則是討論了查詢優化器的工作原理,重用查詢計劃,可以減少額外的編譯開銷,提高服務器性能。
實戰演練篇僅包含第 19 章的內容,提供了同一時間范圍內并發數統計、時間段天數統計、數字范圍統計、地域范圍內最大數統計等較為常用問題的解決方案。
本書聲明
本書實例中使用的操作系統是 Windows 7 , 使用的數據庫是 SQL Server 2008 開發者版本 , 開發工具是 Visual Studio 2008 。
作者
2010 年 5 月
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
