出版時(shí)間:2010-1 出版社:清華大學(xué)出版社 作者:Robert Vieria 頁數(shù):559 譯者:馬煜,孫皓
Tag標(biāo)簽:無
前言
正如我曾說過的,寫書的經(jīng)歷奇特而漫長。早在1999年,當(dāng)我首次編寫Professional SQL Server 7.0Programming一書時(shí),無論是書籍還是程序開發(fā)環(huán)境都與今天的情況截然不同。那時(shí),.NET尚未出現(xiàn),Visual Studio 98是當(dāng)時(shí)最流行的開發(fā)環(huán)境,Java開發(fā)環(huán)境正被廣泛使用,而像Delphi這樣可供選擇的開發(fā)工具也比現(xiàn)在更具競爭力?,F(xiàn)在正快速進(jìn)入所謂的.corn時(shí)代,數(shù)據(jù)庫管理系統(tǒng)(DBMS,如SQL Server)的使用也在呈指數(shù)增長?! ∪欢瑓s存在一個(gè)問題。雖然我們可以找到一些有關(guān)SQL Server的書籍,但這些書籍都面向數(shù)據(jù)庫管理員。這些書籍的作者將大量的時(shí)間和精力花費(fèi)在了普通開發(fā)人員幾乎不關(guān)注的內(nèi)容上。事實(shí)上,對(duì)于一些無能為力的事情,我們必須放棄。就像迫切需要解決的全球饑餓或核擴(kuò)散問題,因?yàn)槲覀兏緹o力解決,但我們完全能夠編寫一些面向開發(fā)人員的有關(guān)SQL的新書籍?! ‘?dāng)時(shí)我寫了Professional SQL Servet 7.0 Programming一書,內(nèi)容可謂包羅萬象,從基礎(chǔ)內(nèi)容到高級(jí)內(nèi)容,適合于各類讀者。但其造就的結(jié)果就是書特別的厚?! 〉谝槐緯鳶QL Server2005發(fā)行后,我們計(jì)劃重新編寫SQL Server的第二次修訂版本,但再次碰到了一個(gè)問題:有關(guān)高級(jí)編程的內(nèi)容實(shí)在是太多了,以至于無法用一本書來涵蓋全部內(nèi)容。SQL Server 2005的新增內(nèi)容也很多,要全放在一本書中介紹實(shí)屬不易(幾乎走出了一本書的范圍),因此我們決定將原來的“高級(jí)編程”系列叢書分成“入門經(jīng)典”和“高級(jí)編程”篇。盡管我們花了大量精力去進(jìn)行拆分,但仍有不少內(nèi)容重疊。SQL Server2008又增加了一些新功能,不過這樣一來,我們可以使得“高級(jí)編程”篇面向高級(jí)讀者,而“入門經(jīng)典”篇內(nèi)容也更加豐富。
內(nèi)容概要
《SQL Server 2008編程入門經(jīng)典(第3版)》由淺入深逐步介紹了SQL Server數(shù)據(jù)庫的高級(jí)主題,重點(diǎn)討論了SQL Server 2008的特殊功能以及與其他編程環(huán)境的不同之處。作者Robert Vieria是Microsoft SQL,Server方面的權(quán)威,他采用通俗易懂的方法揭示了SQL Server-2008核心組件的重要更改?! 禨QL Server 2008編程入門經(jīng)典(第3版)》首先概述了數(shù)據(jù)庫設(shè)計(jì)的概念,介紹了如何用SQL Setver 2008實(shí)現(xiàn)這些基本概念。然后,講述了RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))的功能和它在開發(fā)系統(tǒng)架構(gòu)方面的優(yōu)勢。SQL Server 2008的新增內(nèi)容和更改包括:DATE和TIME數(shù)據(jù)類型、 hierarchyID數(shù)據(jù)類型、MERGE命令和多行插入,以及遞歸查詢等。《SQL Server 2008編程入門經(jīng)典(第3版)》旨在幫助您快速地掌握Microsoft SQL Selwer2008的編程技術(shù)。
作者簡介
韋拉(Robert Vieria),是暢銷書作者。他從1 980年開始深入學(xué)習(xí)計(jì)算技術(shù),從構(gòu)建和修復(fù)計(jì)算機(jī)軟件包,到通過Z80、Basic以及6502匯編語言進(jìn)行編程。1 983年,Robert開始攻讀計(jì)算機(jī)信息系統(tǒng)的學(xué)位,隨后轉(zhuǎn)而研究“PC故障”并開始使用數(shù)據(jù)庫語言(從dBase到SQL Server)進(jìn)行編程,于1990年獲得商業(yè)管理學(xué)位。此外,他還獲得了CMA、MCSD、MCT以及MCDBA等認(rèn)證。Robert目前是俄勒岡州波蘭特市的Huron Consuiting Group的Stockarnp事務(wù)所的DBA團(tuán)隊(duì)領(lǐng)導(dǎo)人,偶爾也會(huì)在數(shù)據(jù)庫開發(fā)、商業(yè)智能和其他主題方面發(fā)表演講?! ∑渌?zé)任者簡介: 楊大川,畢業(yè)于美國紐約州立大學(xué)布法羅分校計(jì)算機(jī)系,曾擔(dān)任美國硅谷Annuncio Software等公司的首席工程師,歸國后,他于2003年創(chuàng)辦了北京邁思奇科技有限公司并擔(dān)任技術(shù)總監(jiān),為國內(nèi)外多家大中型企業(yè)提供商業(yè)智能咨詢和項(xiàng)目實(shí)施服務(wù),并逐漸從高新技術(shù)外包開發(fā)走向了自主知識(shí)產(chǎn)權(quán)產(chǎn)品的研發(fā)道路。他曾被譽(yù)為微軟全球最有價(jià)值專家(MVP);2008年榮獲“中關(guān)村年度優(yōu)秀創(chuàng)業(yè)留學(xué)人員”稱號(hào):現(xiàn)擔(dān)任中國科學(xué)院軟件學(xué)院的兼職教授。
書籍目錄
第1章 RDBMS基礎(chǔ):SQLServer數(shù)據(jù)庫的構(gòu)成1.1 數(shù)據(jù)庫對(duì)象概述1.1.1 數(shù)據(jù)庫對(duì)象1.1.2 事務(wù)日志1.1.3 最基本的數(shù)據(jù)庫對(duì)象:表1.1.4 文件組1.1.5 數(shù)據(jù)庫關(guān)系圖1.1.6 視圖1.1.7 存儲(chǔ)過程1.1.8 用戶自定義函數(shù)1.1.9 用戶和角色1.1.10 規(guī)則1.1.11 默認(rèn)值1.1.12 用戶自定義數(shù)據(jù)類型1.1.13 全文目錄1.2 SQL Server數(shù)據(jù)類型1.3 SQL Server對(duì)象標(biāo)識(shí)符1.3.1 需要命名的對(duì)象1.3.2 命名規(guī)則1.4 本章小結(jié)第2章 SQL Server管理工具2.1 聯(lián)機(jī)叢書2.2 SQLServer配置管理器2.2.1 服務(wù)管理2.2.2 網(wǎng)絡(luò)配置2.2.3 協(xié)議2.2.4 客戶端2.3 SQLServer Management Studio2.3.1 啟動(dòng)Management Studio2.3.2 “查詢”窗口2.4 SQL Server集成服務(wù)(SSIS)2.5 BulkCopy Program(bcp)2.6 SQL ServerProfiler2.7 sqlcmd2.8 Power Shell2.9 本章小結(jié)第3章 T-SQL基本語句3.1 基本SELECT語句3.1.1 SELECT語句與FROM子句3.1.2 WHERE子句3.1.3 ORDERBY子句3.1.4 使用GROUPBY子句聚合數(shù)據(jù)3.1.5 使用HAVING子句給分組設(shè)置條件3.1.6 使用FORXML子句輸出XML3.1.7 通過OPTION子句利用提示3.1.8 DISTINCT和ALL謂詞3.2 使用INSERT語句添加數(shù)據(jù)3.2.1 多行插入3.2.2 INSERTINTOSELECT語句3.3 用UPDATE語句更改數(shù)據(jù)3.4 DELETE語句3.5 本章小結(jié)3.6 練習(xí)第4章 連接4.1 連接4.2 內(nèi)部連接4.3 外部連接4.3.1 簡單的外部連接4.3.2 處理更復(fù)雜的外部連接4.4 完全連接4.5 交叉連接4.6 JOIN語句的早期語法結(jié)構(gòu)4.6.1 內(nèi)部連接的早期語法結(jié)構(gòu)4.6.2 外部連接的早期語法結(jié)構(gòu)4.6.3 交叉連接的早期語法結(jié)構(gòu)4.7 聯(lián)合4.8 本章小結(jié)4.9 練習(xí)第5章 創(chuàng)建和修改數(shù)據(jù)表5.1 SQLserver中的對(duì)象名5.1.1 模式名5.1.2 數(shù)據(jù)庫名5.1.3 通過服務(wù)器命名5.1.4 回顧默認(rèn)值5.2 CReATE語句5.2.1 CREATEDATAASE5.2.2 CREATETABLE5.3 ALTER語句5.3.1 AITERDATABASE5.3.2 ALTERTABLE5.4 DROP語句5.5 使用GUI工具5.5.1 使用ManagementStudio創(chuàng)建數(shù)據(jù)庫5.5.2 回到代碼:使用MariagementStudio創(chuàng)建腳本的基礎(chǔ)知識(shí)5.6 本章小結(jié)5.7 練習(xí)第6章 約束6.1 約束的類型6.1.1 域約束6.1.2 實(shí)體約束6.1.3 參照完整性約束6.2 約束命名6.3 鍵約束6.3.1 主鍵約束6.3.2 外鍵約束6.3.3 唯一約束6.4 CHECK約束6.5 DEFAuLT約束6.5.1 在cREATETABLE語句中定義DEFAULT約束6.5.2 在已存在的表中添加DEFAUIT約束6.6 禁用約束6.6.1 在創(chuàng)建約束時(shí)忽略無效的數(shù)據(jù)6.6.2 臨時(shí)禁用已存在的約束6.7 規(guī)則和默認(rèn)值6.7.1 規(guī)則6.7.2 默認(rèn)值6.7.3 確定哪個(gè)表和數(shù)據(jù)類型使用給定的規(guī)則或默認(rèn)值6.8 用于實(shí)現(xiàn)數(shù)據(jù)完整性的觸發(fā)器6.9 如何選擇6.1 0本章小結(jié)第7章 更復(fù)雜的查詢7.1 子查詢的概念7.2 關(guān)聯(lián)子查詢7.2.1 關(guān)聯(lián)子查詢的工作原理7.2.2 在WHERE子句中的關(guān)聯(lián)子查詢7.2.3 處理NULL數(shù)據(jù)——ISNULL函數(shù)7.3 派生表7.4 EXISTS運(yùn)算符7.5 混合數(shù)據(jù)類型:CAST和CONVERT7.6 MERGE命令7.6.1 BYl.ARGET和BYSOURCE7.6.2 OUTPUT子句7.7 性能方面的考慮7.8 本章小結(jié)7.9 練習(xí)第8章 規(guī)范化和其他基本設(shè)計(jì)問題8.1 表8.2 保持?jǐn)?shù)據(jù)“規(guī)范8.2.1 準(zhǔn)備工作8.2.2 第一范式8.2.3 第二范式8.2.4 第三范式8.2.5 其他范式8.3 關(guān)系8.3.1 一對(duì)一關(guān)系8.3.2 一對(duì)一或一對(duì)多關(guān)系8.3.3 多對(duì)多關(guān)系8.4 數(shù)據(jù)庫關(guān)系圖8.4.1 表8.4.2 添加和刪除表8.4.3 關(guān)系8.5 反規(guī)范化8.6 超出規(guī)范化的一些規(guī)則8.6.1 保持簡單8.6.2 選擇數(shù)據(jù)類型8.6.3 盡量進(jìn)行存儲(chǔ)8.7 創(chuàng)建一個(gè)快速示例8.7.1 創(chuàng)建數(shù)據(jù)庫8.7.2 添加數(shù)據(jù)庫關(guān)系圖和初始表8.7.3 添加關(guān)系8.7.4 添加一些約束8.8 本章小結(jié)8.9 練習(xí)第9章 SQLServer存儲(chǔ)和索引結(jié)構(gòu)9.1 SQLServer存儲(chǔ)機(jī)制9.1.1 數(shù)據(jù)庫9.1.2 區(qū)段9.1.3 頁9.1.4 行9.1.5 稀疏列9.2 理解索引9.2.1 平衡樹(B.樹)9.2.2 SQLServer中訪問數(shù)據(jù)的方式9.3 創(chuàng)建、修改和刪除索引9.3.1 CREATEINDEX語句9.3.2 創(chuàng)建XML索引9.3.3 隨約束創(chuàng)建的隱含索引9.3.4 在稀疏列和地理空間列上創(chuàng)建索引9.4 明智地選擇——在何時(shí)何地使用何種索引9.4.1 選擇性9.4.2 注意成本9.4.3 選擇群集索引9.4.4 列順序問題9.4.5 修改索引9.4.6 刪除索引9.4.7 從查詢計(jì)劃中獲取提示9.4.8 使用數(shù)據(jù)庫引擎調(diào)整向?qū)?.5 維護(hù)索引9.5.1 碎片9.5.2 確定碎片和頁拆分的可能性9.6 本章小結(jié)9.7 練習(xí)第10章 視圖10.1 簡單的視圖10.2 更加復(fù)雜的視圖10.3 使用T-SOL編輯視圖10.4 刪除視圖10.5 在MaliagementStudio中創(chuàng)建和編輯視圖10.6 審查:顯示現(xiàn)有的代碼10.7 保護(hù)代碼:加密視圖10.8 關(guān)于模式綁定10.9 使用VIEWMETADATA使視圖看起來像表一樣10.10 索引(物化)視圖10.11 本章小結(jié)10.12 練習(xí)第11章 編寫腳本和批處理11.1 腳本的基礎(chǔ)知識(shí)11.1.1 USE語句11.1.2 聲明變量11.1.3 使用@@IDENTITY11.1.4 使用@@ROWCOUNT11.2 批處理11.2.1 批處理中的錯(cuò)誤11.2.2 何時(shí)使用批處理11.3 sqlcmd11.4 動(dòng)態(tài)SQL:用ExEC命令動(dòng)態(tài)生成代碼11.5 控制流語句11.5.1 IFELSE語句11.5.2 CASE語句11.5.3 用WHILE語句進(jìn)行循環(huán)11.5.4 WAITOR語句11.5.5 TRY/CATCH塊11.6 本章小結(jié)11.7 練習(xí)第12章 存儲(chǔ)過程12.1 創(chuàng)建存儲(chǔ)過程:基本語法12.2 使用ALTER修改存儲(chǔ)過程12.3 刪除存儲(chǔ)過程12.4 參數(shù)化12.5 通過返回值確認(rèn)成功或失敗12.6 錯(cuò)誤處理12.6.1 以前的方式12.6.2 在錯(cuò)誤發(fā)生前處理錯(cuò)誤12.6.3 手動(dòng)引發(fā)錯(cuò)誤12.6.4 添加自定義的錯(cuò)誤消息12.7 存儲(chǔ)過程的優(yōu)點(diǎn)12.7.1 創(chuàng)建可調(diào)用的進(jìn)程12.7.2 為了安傘性使用存儲(chǔ)過程12.7.3 存儲(chǔ)過程和性能12.8 擴(kuò)展存儲(chǔ)過程(XP)12.9 遞歸簡介12.10 調(diào)試12.10.1 啟動(dòng)調(diào)試器12.10.2 調(diào)試器的組成12.10.3 使用調(diào)試器12.11 .NET程序集12.12 本章小結(jié)第13章 用戶自定義函數(shù)13.1 UDF的定義13.2 返回標(biāo)量值的uDF13.3 返回表的UDF13.4 調(diào)試用戶自定義函數(shù)13.5 數(shù)據(jù)庫中的.NET13.6 本章小結(jié)13.7 練習(xí)第14章 事務(wù)和鎖14.1 事務(wù)14.1.1 BEGINTRAN14.1.2 COMMITTRAN14.1.3 ROLLBACKTRAN14.1.4 SAVETRAN14.2 SQLServer日志的工作方式14.2.1 失敗和恢復(fù)14.2.2 隱式事務(wù)14.3 鎖和并發(fā)14.3.1 通過鎖可以防止的問題14.3.2 可以鎖定的資源14.3.3 鎖升級(jí)和鎖對(duì)性能的影響14.3.4 鎖定模式14.3.5 鎖的兼容性14.3.6 指定一種特有的鎖定類型——優(yōu)化器提示14.4 設(shè)置隔離級(jí)別14.5 處理死鎖(1205錯(cuò)誤)……第15章 觸發(fā)器第16章 初識(shí)XML第17章 Reporting Services第18章 使用Integration Services進(jìn)行集成第19章 扮演管理員的角色附錄
章節(jié)摘錄
5.ReportServer數(shù)據(jù)庫 這個(gè)數(shù)據(jù)庫只有在安裝了ReportServer的情況下才存在(它不必與數(shù)據(jù)庫引擎相同,但注意,如果是不同的服務(wù)器,它要求單獨(dú)的許可)。ReportServer數(shù)據(jù)庫存儲(chǔ)Reporting Server實(shí)例的任何持久化元數(shù)據(jù)。注意,它是只可用于給定Reporting Server實(shí)例的操作性數(shù)據(jù)庫,只能通過Reporting Server修改或訪問?! ?.ReportServer TempDB數(shù)據(jù)庫 除了存儲(chǔ)非持久化數(shù)據(jù)(如有關(guān)正在運(yùn)行的報(bào)表的數(shù)據(jù))外,該數(shù)據(jù)庫的基本作用與ReportServer數(shù)據(jù)庫相同。同樣,它也是個(gè)純粹操作性的數(shù)據(jù)庫,只能通過Reporting Server訪問或修改?! ?.AdventureWorks2008數(shù)據(jù)庫 在有AdventureWorks2008數(shù)據(jù)庫之前,SQL Server就包括了其他樣本數(shù)據(jù)庫。老樣本數(shù)據(jù)庫有不足之處,如它們包含了一些不好的設(shè)計(jì)習(xí)慣。此外,老的例子過于簡單,集中闡明某些數(shù)據(jù)庫概念,而不是將SQL Server作為一個(gè)產(chǎn)品或?qū)?shù)據(jù)庫視為一個(gè)整體。這里不再探討AdventureWorks2008數(shù)據(jù)庫是否存在相同問題。AdventureWorks2008數(shù)據(jù)庫確實(shí)試圖解決這些問題?! ≡赟QL Server 2005發(fā)展之初,Microsoft就想要一個(gè)更加健壯的樣本數(shù)據(jù)庫,使其盡可能作為其產(chǎn)品的一個(gè)示例。AdventureWorks2008數(shù)據(jù)庫就是這一想法的結(jié)果。盡管該數(shù)據(jù)庫對(duì)于初學(xué)者過于復(fù)雜,但是其作為數(shù)據(jù)庫示例確實(shí)是一杰作。雖然該數(shù)據(jù)庫不包括所有的內(nèi)容,但還是一個(gè)相當(dāng)完整的示例,具有更接近實(shí)際的數(shù)據(jù)量、復(fù)雜的結(jié)構(gòu)和用于展示產(chǎn)品的大部分特征的部件。從這一方面看,該數(shù)據(jù)庫是非常不錯(cuò)的?! dventureWorks2008是中心數(shù)據(jù)庫,本書將廣泛使用該數(shù)據(jù)庫?! ?.AdventureWorksLT2008數(shù)據(jù)庫 這里的LT表示輕量級(jí)(1ite)。它只是AdventureWorks2008數(shù)據(jù)庫完整版的極小一部分。該思想提供了更簡化的樣本集,便于理解基本概念和完成簡單的練習(xí)。盡管本人并不知曉推出這一新樣本集的真正原因,但我猜測是為了取代較老的。Northwind和.Pubs樣本集(相較于AdventureWorks2008樣本集,許多培訓(xùn)者更喜歡采用Northwind和Pubs樣本集,因?yàn)锳dventures2008數(shù)據(jù)庫對(duì)于初級(jí)培訓(xùn)來說通常過于復(fù)雜和笨重)。
編輯推薦
《SQL Server 2008編程入門經(jīng)典(第3版)》主要內(nèi)容 RDBMS如何存儲(chǔ)、管理和檢索數(shù)據(jù) 創(chuàng)建和修改表的方法 數(shù)據(jù)庫范式的多種形式 編寫腳本和使用存儲(chǔ)過程的技巧 索引的優(yōu)缺點(diǎn) 鎖和死鎖對(duì)系統(tǒng)性能的各種影響 理解觸發(fā)器及其使用方式 《SQL Server 2008編程入門經(jīng)典(第3版)》讀者對(duì)象 《SQL Server 2008編程入門經(jīng)典(第3版)》適合于希望全面了解數(shù)據(jù)庫設(shè)計(jì)概念和學(xué)習(xí)SQL的開發(fā)人員。讀者具有數(shù)據(jù)庫方面的基礎(chǔ)知識(shí)有助于更好地理解《SQL Server 2008編程入門經(jīng)典(第3版)》的內(nèi)容。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
SQL Server 2008編程入門經(jīng)典 PDF格式下載