《大話數(shù)據(jù)庫(kù)》是一本獨(dú)特的數(shù)據(jù)庫(kù)入門(mén)書(shū),以最有效的教學(xué)思路講解數(shù)據(jù)庫(kù)的每一個(gè)知識(shí)點(diǎn),完全以初學(xué)者的思維方式提出疑問(wèn)再深入答疑。這也許不是一本傳統(tǒng)的教科書(shū),但絕對(duì)是自學(xué)數(shù)據(jù)庫(kù)的首選書(shū)籍。本書(shū)采用【老田、小天】二人對(duì)話的形式講解,其中不乏詼諧幽默的問(wèn)題和解答,避免對(duì)知識(shí)點(diǎn)生搬硬套。
通過(guò)學(xué)習(xí)《大話數(shù)據(jù)庫(kù)》,你能夠在嬉笑怒罵的環(huán)境中輕松掌握數(shù)據(jù)存儲(chǔ)原理、數(shù)據(jù)庫(kù)設(shè)計(jì)技巧以及大量數(shù)據(jù)庫(kù)編程的實(shí)戰(zhàn)經(jīng)驗(yàn),更重要的是能夠掌握一種優(yōu)秀的學(xué)習(xí)方法、解決問(wèn)題的思路和思考的方式。這些經(jīng)驗(yàn)和技巧得益于我和鄒老師兩人加起來(lái)近25年的項(xiàng)目開(kāi)發(fā)和教育培訓(xùn)經(jīng)歷。
本書(shū)第一部分對(duì)于數(shù)據(jù)庫(kù)的創(chuàng)建、備份、配置、安全等做詳細(xì)介紹,通過(guò)這部分學(xué)習(xí),可以掌握關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ),以及對(duì)數(shù)據(jù)庫(kù)的日常維護(hù)操作;本書(shū)第二部分對(duì)于分析項(xiàng)目需求,創(chuàng)建表,然后使用T-SQL語(yǔ)句和存儲(chǔ)過(guò)程對(duì)表中數(shù)據(jù)做各種操作等做詳細(xì)講解,通過(guò)這一部分的學(xué)習(xí),可以掌握對(duì)數(shù)據(jù)庫(kù)的基本應(yīng)用,熟練使用T-SQL語(yǔ)言建庫(kù)、建表、T-SQL查詢(xún)、高級(jí)檢索、存儲(chǔ)過(guò)程、性能優(yōu)化技巧等;
讀者對(duì)象:希望靠一本書(shū)從頭到尾自學(xué)的零基礎(chǔ)學(xué)員;培訓(xùn)講師的備課資料,因?yàn)檫@本書(shū)總結(jié)了我們培訓(xùn)過(guò)程所遇到的問(wèn)題和學(xué)生會(huì)問(wèn)的問(wèn)題、有疑慮的地方;自覺(jué)性不高的學(xué)員。
從根本上改變數(shù)據(jù)庫(kù)學(xué)習(xí)方法,趣味、互動(dòng)起來(lái)…… 《大話數(shù)據(jù)庫(kù)》不是一本書(shū),而是一套通過(guò)研習(xí)數(shù)據(jù)庫(kù)體系教會(huì)你快樂(lè)學(xué)習(xí)的方法 程序猿,給哥樂(lè)一個(gè) § 笑著掌握數(shù)據(jù)庫(kù),躺床上也能看 § 傳統(tǒng)書(shū)本和課堂學(xué)習(xí)方法的徹底顛覆 § 嬉笑怒罵中為你立體呈現(xiàn)一套全新的學(xué)習(xí)和思考方法 § 每一個(gè)知識(shí)點(diǎn)的講解均通過(guò)提出問(wèn)題再解答問(wèn)題,再引發(fā)問(wèn)題再解答,環(huán)環(huán)相扣 § 《大話數(shù)據(jù)庫(kù)》中有“錯(cuò)”,本書(shū)故意在核心知識(shí)的講解過(guò)程中設(shè)置陷阱,讓你記憶深刻 § 按天給出學(xué)習(xí)計(jì)劃,讓學(xué)習(xí)不再?zèng)]有秩序,沒(méi)有管理 § 全書(shū)所涉及的專(zhuān)業(yè)術(shù)語(yǔ)按照初學(xué)者的理解能力設(shè)置,從口水趨于專(zhuān)業(yè) 《大話數(shù)據(jù)庫(kù)》相關(guān)代碼請(qǐng)?jiān)L問(wèn)作者微博進(jìn)行下載。
只有枯燥的教材,沒(méi)有枯燥的編程——天轟穿
“編程很枯燥!”是這句話是我要寫(xiě)一套編程類(lèi)入門(mén)書(shū)籍的主要誘因。
而數(shù)據(jù)庫(kù)則是作為進(jìn)入編程世界的一個(gè)重要“關(guān)卡”,為什么這么說(shuō),首先,因?yàn)樗芯幊陶Z(yǔ)言到了實(shí)際應(yīng)用階段都無(wú)法避免地與數(shù)據(jù)庫(kù)打交道;其次,數(shù)據(jù)庫(kù)是體現(xiàn)編程藝術(shù)的一個(gè)重要平臺(tái);另外,學(xué)好數(shù)據(jù)庫(kù),會(huì)使你以后學(xué)習(xí)其他語(yǔ)言的時(shí)候事半功倍。
而能否讓你學(xué)得輕松、學(xué)得扎實(shí)就成為了一個(gè)至關(guān)重要的條件,這也是本書(shū)的宗旨。
通過(guò)學(xué)習(xí)本書(shū),你能夠在嬉笑怒罵的環(huán)境中輕松掌握數(shù)據(jù)存儲(chǔ)原理、數(shù)據(jù)庫(kù)設(shè)計(jì)技巧以及大量數(shù)據(jù)庫(kù)編程的實(shí)戰(zhàn)經(jīng)驗(yàn),更重要的是能夠掌握一種優(yōu)秀的學(xué)習(xí)方法、解決問(wèn)題的思路和思考的方式。這些經(jīng)驗(yàn)和技巧得益于我和鄒老師兩人加起來(lái)近25年的項(xiàng)目開(kāi)發(fā)和教育培訓(xùn)經(jīng)歷。
本書(shū)特色
這不是一本以傳統(tǒng)順序堆砌而成的書(shū)
1.本書(shū)以最有效的教學(xué)思路講解數(shù)據(jù)庫(kù)的每一個(gè)知識(shí)點(diǎn),完全以初學(xué)者的思維方式提出疑問(wèn)再深入答疑。這也許不是一本傳統(tǒng)的教科書(shū),但絕對(duì)是自學(xué)數(shù)據(jù)庫(kù)的首選書(shū)籍。
2.本書(shū)并非嚴(yán)格將數(shù)據(jù)庫(kù)知識(shí)分類(lèi)整理講解,而是按照初學(xué)者的思維習(xí)慣,將每一個(gè)知識(shí)點(diǎn)放在最恰當(dāng)?shù)奈恢茫詥慰茨夸,?huì)感覺(jué)知識(shí)的排列不像同類(lèi)書(shū)那樣“井井有條”。
3.本書(shū)采用【老田、小天】二人對(duì)話的形式講解,其中不乏詼諧幽默的問(wèn)題和解答,避免對(duì)知識(shí)點(diǎn)生搬硬套。
4.本書(shū)總是提出問(wèn)題再來(lái)解釋?zhuān)ㄟ^(guò)解釋的過(guò)程來(lái)講解新的知識(shí)。這樣極大地避免了知識(shí)點(diǎn)的生硬出現(xiàn),轉(zhuǎn)而將學(xué)習(xí)的過(guò)程變成了解決問(wèn)題的過(guò)程,同時(shí)也復(fù)習(xí)的相關(guān)其他知識(shí)點(diǎn)。
5.本書(shū)中出現(xiàn)的專(zhuān)業(yè)術(shù)語(yǔ)隨著知識(shí)的深入而出現(xiàn),故盡量從頭開(kāi)始閱讀。
6.每章最后的“每日一練”中提出的問(wèn)題常常有錯(cuò)誤的問(wèn)法夾雜其中,在這種題下面會(huì)緊跟著一道題,要求你將前一個(gè)題修改正確,極大避免了填鴨式教學(xué),讓你想不思考都不行。
7.本書(shū)配備對(duì)應(yīng)的視頻教程,去百度谷歌“天轟穿趣味編程”就可以找到,或者去學(xué)云網(wǎng)搜“天轟穿”。
這是一本教會(huì)你學(xué)習(xí)方法的書(shū)
學(xué)習(xí)方式是按照初學(xué)者的理解方式,看實(shí)例→提出問(wèn)題→解答問(wèn)題;
通過(guò)對(duì)小天提出問(wèn)題的解答來(lái)引導(dǎo)學(xué)員的思考和學(xué)習(xí);
學(xué)習(xí)時(shí)間按“天”計(jì)算;
每章均有本章學(xué)習(xí)線路提示。
讀者定位
希望靠一本書(shū)從頭到尾自學(xué)的零基礎(chǔ)學(xué)員;
培訓(xùn)講師的備課資料,因?yàn)檫@本書(shū)總結(jié)了我們培訓(xùn)過(guò)程所遇到的問(wèn)題和學(xué)生會(huì)問(wèn)的問(wèn)題、有疑慮的地方;
自覺(jué)性不高的學(xué)員。
關(guān)于本書(shū)的創(chuàng)作起點(diǎn)與過(guò)程
我在2006年制作了《天轟穿VS 2005入門(mén).Net2.0系列視頻教程》,其“非主流”的講授風(fēng)格受到大部分兄弟姐妹的肯定。截至目前,該視頻在6年時(shí)間,已知的瀏覽量超過(guò)1000萬(wàn)次。
從2007年開(kāi)始做培訓(xùn),直到現(xiàn)在,我?guī)н^(guò)完全零基礎(chǔ)的社招培訓(xùn)班、去高校上過(guò)專(zhuān)業(yè)課、去企業(yè)做過(guò)專(zhuān)題培訓(xùn),也做了大量的以“天轟穿”命名的視頻教程。在積累了大量實(shí)體培訓(xùn)和與網(wǎng)絡(luò)學(xué)員交互培訓(xùn)的經(jīng)驗(yàn)后,我再次萌生了要寫(xiě)一套專(zhuān)門(mén)給自學(xué)的兄弟姐妹的教材,于是和成都信息工程學(xué)院鄒茂楊老師聯(lián)合編寫(xiě)了這本書(shū)。
我不想太多去談這本書(shū)怎么樣,但當(dāng)你翻開(kāi)本書(shū),那些無(wú)傷大雅的小幽默和深入淺出的實(shí)例引導(dǎo)會(huì)讓您覺(jué)得選擇這本“由初中生+高校教授的詭異組合”撰寫(xiě)的教材來(lái)學(xué)習(xí)數(shù)據(jù)庫(kù)是對(duì)的。因?yàn)楸緯?shū)不僅是我個(gè)人自學(xué)技巧和教學(xué)經(jīng)驗(yàn)的深度體現(xiàn),還是鄒茂楊老師十余年教學(xué)經(jīng)驗(yàn)的總結(jié)和匯聚。
近幾年,常常有去一些企業(yè)和高校做講座的機(jī)會(huì),總有學(xué)員問(wèn):“川哥,我英語(yǔ)不好,能學(xué)好編程嗎?我數(shù)學(xué)不好,能學(xué)好編程嗎”。我的回答永遠(yuǎn)都是:“只要你努力,只要你堅(jiān)持,就肯定能學(xué)好編程”。
因?yàn)槟愕鬃釉俨睿粫?huì)比我這個(gè)初中生更差;
因?yàn)槟阌⒄Z(yǔ)再差,不會(huì)比我這個(gè)初中英語(yǔ)最高成績(jī)就沒(méi)不及格過(guò)的家伙差;
因?yàn)槟銛?shù)學(xué)再差,不會(huì)比我這個(gè)因?yàn)椴粫?huì)計(jì)算圓柱體面積而被老師罵的刺頭更差。
我從1999年第一次接觸計(jì)算機(jī),從連鼠標(biāo)都不會(huì)玩的土包子到做出自己的網(wǎng)站用了不到一年(一個(gè)純靜態(tài)頁(yè)面組成的圖片網(wǎng)站),再?gòu)闹粫?huì)做HTML頁(yè)面到做出第一個(gè)ASP的留言本用了一年,之后多次閉關(guān)學(xué)習(xí)新技術(shù)(最狠的一次為了管住自己的雙腳,把眉毛剃掉)。
回想寫(xiě)這本書(shū)的過(guò)程,眼眶濕了。雖然今天已經(jīng)是學(xué)云網(wǎng)CEO,但作為一個(gè)1996年初中畢業(yè)就混社會(huì)的農(nóng)村小伙子而言,這一路走來(lái),有歡笑也有淚水,但更多是汗水。由此得出一個(gè)結(jié)論,要學(xué)好編程,不在于你智商多高,而取決于你能否堅(jiān)持,取決于你是否勤奮。編程不是看書(shū)、看視頻就能學(xué)會(huì)了,而是靠大量的練習(xí)——不斷舉一反三的練習(xí)。
出社會(huì)后這十幾年,我養(yǎng)成了一個(gè)習(xí)慣,無(wú)論做什么事都會(huì)全力以赴(如果做不到,就人為斬?cái)嘧约旱囊磺型寺罚瑢?xiě)本書(shū)的時(shí)候也一樣,我辭去公司的講師工作、推掉所有找上門(mén)的外包項(xiàng)目和一些高校的課程安排,期間僅靠老婆的工資和我去企業(yè)做培訓(xùn)的收入來(lái)糊口,過(guò)程中也有兩周寫(xiě)不完一章的情況,由于想不出更好的辦法來(lái)將深?yuàn)W的知識(shí)講得足夠有趣,很多時(shí)候覺(jué)得自己很笨、很失敗,很想放棄。但在老婆和朋友們的鼓勵(lì)下,我堅(jiān)持了下來(lái)。在此,感謝我親愛(ài)的老婆,感謝這一路走來(lái)所有支持我、理解我、鼓勵(lì)我的兄弟姐妹們!謝謝你們。。
田洪川,2010年獲得中電科三十集團(tuán)下屬?lài)?guó)信安投資,創(chuàng)辦學(xué)云網(wǎng)
2007年進(jìn)入成都國(guó)信安,完成本科授課、社招培訓(xùn)班授課、企業(yè)培訓(xùn)授課、實(shí)訓(xùn)授課千余次
2002年進(jìn)入綿陽(yáng)新潮集團(tuán),從程序員一直干到技術(shù)總監(jiān)(期間換過(guò)公司)
1999年開(kāi)始守網(wǎng)吧,自學(xué)編程
1996年初中畢業(yè):賣(mài)饅頭、端盤(pán)子洗碗、小混混、搞傳銷(xiāo)。
鄒茂楊,從業(yè)13年,一直從事數(shù)據(jù)庫(kù)開(kāi)發(fā)與教學(xué)研究。任職于成都信息工程學(xué)院之前,曾經(jīng)在成都微軟技術(shù)中心等多家公司工作。主持或參與過(guò)國(guó)家級(jí)科研項(xiàng)目2項(xiàng),省級(jí)科研項(xiàng)目1項(xiàng),市區(qū)級(jí)科研項(xiàng)目3項(xiàng),校級(jí)科研項(xiàng)目1項(xiàng),參與商業(yè)項(xiàng)目和產(chǎn)品的研發(fā)推廣數(shù)十項(xiàng)。研究教學(xué)規(guī)律、負(fù)責(zé)教改工作2項(xiàng)。2011年作為訪問(wèn)學(xué)者在美國(guó)TROY大學(xué)訪問(wèn)半年。
第一部分 關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)
第1章 概述
1.1 什么是數(shù)據(jù)庫(kù)
1.2 為什么要使用數(shù)據(jù)庫(kù)
1.3 數(shù)據(jù)庫(kù)的基本概念
1.4 數(shù)據(jù)庫(kù)的歷史
1.5 關(guān)系數(shù)據(jù)庫(kù)
1.6 為什么選擇SQL Server
1.7 SQL語(yǔ)言
1.8 SQL標(biāo)準(zhǔn)
1.9 10分鐘探索IDE
1.9.1 啟動(dòng)和登錄SQL Server Management Studio
1.9.2 修改登錄驗(yàn)證模式
1.9.3 注冊(cè)數(shù)據(jù)庫(kù)服務(wù)器
1.9.4 修改數(shù)據(jù)庫(kù)服務(wù)器屬性
1.9.5 啟動(dòng)和停止服務(wù)器
1.9.6 創(chuàng)建查詢(xún)
1.9.7 使用指定數(shù)據(jù)庫(kù)
本章小結(jié)
問(wèn)題
第2章 創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)
2.1 系統(tǒng)數(shù)據(jù)庫(kù)
2.1.1 修改系統(tǒng)數(shù)據(jù)
2.1.2 查看系統(tǒng)數(shù)據(jù)
2.2 創(chuàng)建數(shù)據(jù)庫(kù)
2.2.1 使用Transact-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)
2.2.2 查看數(shù)據(jù)庫(kù)文件屬性
2.3 數(shù)據(jù)庫(kù)文件和文件組
2.3.1 數(shù)據(jù)庫(kù)文件的類(lèi)型
2.3.2 文件組
2.3.3 刪除數(shù)據(jù)庫(kù)文件
2.3.4 管理文件組
2.3.5 文件組的填充策略
2.3.6 優(yōu)化數(shù)據(jù)庫(kù)的策略
2.3.7 文件狀態(tài)
2.4 數(shù)據(jù)庫(kù)狀態(tài)和選項(xiàng)
2.5 查看數(shù)據(jù)庫(kù)
2.6 刪除數(shù)據(jù)庫(kù)
2.7 修改數(shù)據(jù)庫(kù)
2.7.1 修改數(shù)據(jù)庫(kù)名稱(chēng)
2.7.2 擴(kuò)展數(shù)據(jù)庫(kù)
2.7.3 收縮數(shù)據(jù)庫(kù)
2.8 數(shù)據(jù)庫(kù)快照
2.8.1 數(shù)據(jù)庫(kù)快照的應(yīng)用
2.8.2 數(shù)據(jù)庫(kù)快照的原理
2.8.3 管理數(shù)據(jù)庫(kù)快照
2.9 分離和附加數(shù)據(jù)庫(kù)
2.9.1 分離數(shù)據(jù)庫(kù)
2.9.2 附加數(shù)據(jù)庫(kù)
2.10 移動(dòng)數(shù)據(jù)庫(kù)文件
2.11 移動(dòng)和復(fù)制數(shù)據(jù)庫(kù)
2.12 備份和還原數(shù)據(jù)庫(kù)
2.12.1 備份數(shù)據(jù)庫(kù)
2.12.2 還原數(shù)據(jù)庫(kù)
本章小結(jié)
問(wèn)題
第二部分 設(shè)計(jì)、實(shí)現(xiàn)和使用數(shù)據(jù)庫(kù)
第3章 Transact-SQL語(yǔ)言
3.1 SQL與Transact-SQL語(yǔ)言概述方式
3.2 Transact-SQL語(yǔ)言的執(zhí)行方式與調(diào)試
3.2.1 調(diào)試代碼
3.2.2 調(diào)試Transact-SQL代碼
3.3 數(shù)據(jù)定義語(yǔ)言(DDL)
3.4 數(shù)據(jù)操縱語(yǔ)言(DML)
3.5 數(shù)據(jù)庫(kù)控制語(yǔ)言(DCL)
3.6 附加的語(yǔ)言元素
3.6.1 標(biāo)識(shí)符和命名規(guī)范
3.6.2 局部變量
3.6.3 全局變量
3.6.4 運(yùn)算符
3.6.5 表達(dá)式
3.6.6 注釋
3.7 數(shù)據(jù)類(lèi)型
3.7.1 字符數(shù)據(jù)類(lèi)型
3.7.2 數(shù)字?jǐn)?shù)據(jù)類(lèi)型
3.7.3 日期和時(shí)間數(shù)據(jù)類(lèi)型
3.7.4 二進(jìn)制數(shù)據(jù)類(lèi)型
3.7.5 其他數(shù)據(jù)類(lèi)型
3.7.6 用戶(hù)自定義數(shù)據(jù)類(lèi)型
3.8 內(nèi)置函數(shù)
3.8.1 概述
3.8.2 如何查看SQL Server幫助中的語(yǔ)法
3.8.3 如何使用函數(shù)
3.8.4 函數(shù)類(lèi)型
本章小結(jié)
問(wèn)題
第4章 創(chuàng)建與維護(hù)表
4.1 概述
4.2 設(shè)計(jì)表時(shí)應(yīng)該考慮的因素
4.3 E-R模型
4.3.1 概述
4.3.2 屬性和主鍵
4.3.3 外鍵
4.3.4 聯(lián)系
4.3.5 關(guān)系規(guī)范化
4.4 利用PowerDesigner設(shè)計(jì)數(shù)據(jù)庫(kù)
4.4.1 PowerDesigner說(shuō)明和模型設(shè)置
4.4.2 創(chuàng)建概念數(shù)據(jù)模型實(shí)體
4.4.3 創(chuàng)建概念數(shù)據(jù)模型關(guān)系
4.4.4 從概念數(shù)據(jù)模型到生成物理數(shù)據(jù)模型
4.4.5 創(chuàng)建物理數(shù)據(jù)模型
4.4.6 更新已有的物理數(shù)據(jù)模型
4.4.7 生成數(shù)據(jù)庫(kù)腳本
4.5 表的基本特點(diǎn)和類(lèi)型
4.5.1 表的特點(diǎn)
4.5.2 表的類(lèi)型
4.6 創(chuàng)建和修改表
4.6.1 創(chuàng)建普通表
4.6.2 創(chuàng)建臨時(shí)表
4.6.3 創(chuàng)建分區(qū)表
4.6.4 增加和刪除列
4.6.5 修改列
4.6.6 創(chuàng)建和修改列標(biāo)識(shí)符
4.6.7 查看表信息
4.6.8 刪除表
4.7 約束
4.7.1 主鍵約束
4.7.2 外鍵約束
4.7.3 NOT NULL約束
4.7.4 DEFAULT約束
4.7.5 CHECK約束
4.7.6 UNIQUE約束
4.7.7 禁止與刪除約束
本章小結(jié)
問(wèn)題
第5章 操作表中的數(shù)據(jù)
5.1 準(zhǔn)備工作
5.2 插入語(yǔ)句
5.2.1 簡(jiǎn)單的插入語(yǔ)句
5.2.2 批量插入語(yǔ)句
5.3 檢索數(shù)據(jù)
5.3.1 選擇數(shù)據(jù)列
5.3.2 使用文字串
5.3.3 改變列標(biāo)題
5.3.4 數(shù)據(jù)運(yùn)算
5.3.5 使用ALL與DISTINCT關(guān)鍵字
5.3.6 使用TOP關(guān)鍵字
5.3.7 排序
5.4 WHERE子句
5.4.1 簡(jiǎn)單條件查詢(xún)
5.4.2 模糊查詢(xún)
5.4.3 復(fù)合條件查詢(xún)
5.4.4 使用IN子句
5.4.5 使用BETWEEN子句
5.4.6 空值與非空值
5.5 修改語(yǔ)句
5.6 刪除語(yǔ)句
本章小結(jié)
問(wèn)題
第6章 高級(jí)檢索技術(shù)
6.1 聚合技術(shù)
6.1.1 SELECT子句中的聚合
6.1.2 COMPUTE子句中的聚合
6.2 分組數(shù)據(jù)
6.2.1 普通分組
6.2.2 使用HAVING子句
6.2.3 使用ROLLUP和CUBE
6.3 聯(lián)合查詢(xún)
6.4 連接查詢(xún)
6.4.1 內(nèi)連接
6.4.2 外連接
6.4.3 交叉連接
6.4.4 自連接
6.5 子查詢(xún)技術(shù)
6.5.1 使用IN和NOT IN 的子查詢(xún)
6.5.2 ANY、ALL等比較運(yùn)算符的使用
6.5.3 使用EXISTS關(guān)鍵字
6.5.4 子查詢(xún)的規(guī)則
本章小結(jié)
問(wèn)題
階段作業(yè)
第7章 索引
7.1 概述
7.1.1 表組織
7.1.2 堆
7.1.3 B樹(shù)
7.2 索引的優(yōu)缺點(diǎn)
7.3 索引的類(lèi)型
7.3.1 聚集索引
7.3.2 非聚集索引
7.4 索引的屬性
7.4.1 唯一性索引
7.4.2 復(fù)合索引
7.5 創(chuàng)建索引
7.5.1 使用向?qū)?chuàng)建索引
7.5.2 使用CREATE INDEX語(yǔ)句創(chuàng)建索引
7.5.3 索引的選項(xiàng)
7.6 維護(hù)索引
7.6.1 查看索引碎片
7.6.2 重建索引
7.6.3 統(tǒng)計(jì)信息
7.6.4 查看索引
7.6.5 修改索引
7.6.6 刪除索引
本章小結(jié)
問(wèn)題
第8章 視圖
8.1 概述
8.1.1 為什么需要視圖
8.1.2 什么是視圖
8.2 視圖的優(yōu)缺點(diǎn)
8.3 創(chuàng)建視圖
8.3.1 創(chuàng)建視圖的基本原則
8.3.2 使用SQL Server Management Studio創(chuàng)建視圖
8.3.3 使用Transact-SQL命令創(chuàng)建視圖
8.4 使用視圖
8.5 查看視圖
8.6 加密視圖
8.7 修改視圖
8.8 刪除視圖
8.9 重命名視圖
8.10 通過(guò)視圖更新數(shù)據(jù)
8.10.1 通過(guò)視圖插入數(shù)據(jù)
8.10.2 使用UPDATE修改
數(shù)據(jù)
本章小結(jié)
問(wèn)題
第9章 SQL編程及高級(jí)應(yīng)用
9.1 概述
9.2 流程控制語(yǔ)句
9.2.1 IF…ELSE…語(yǔ)句
9.2.2 BEGIN…END語(yǔ)句
9.2.3 GOTO語(yǔ)句
9.2.4 WHILE BREAK和
CONTINUE語(yǔ)句
9.2.5 CASE語(yǔ)句
9.2.6 WAITFOR語(yǔ)句
9.3 游標(biāo)
9.3.1 游標(biāo)的類(lèi)型
9.3.2 選擇游標(biāo)類(lèi)型的原則
9.3.3 游標(biāo)的生命周期
9.3.4 實(shí)現(xiàn)Transact-SQL游標(biāo)
9.4 用戶(hù)自定義函數(shù)
9.4.1 創(chuàng)建用戶(hù)自定義函數(shù)的思考
9.4.2 用戶(hù)自定義函數(shù)的分類(lèi)
9.4.3 創(chuàng)建及使用用戶(hù)自定義函數(shù)
9.4.4 維護(hù)用戶(hù)自定義函數(shù)
本章小結(jié)
問(wèn)題
第10章 存儲(chǔ)過(guò)程
10.1 概述
10.2 存儲(chǔ)過(guò)程的優(yōu)點(diǎn)
10.3 存儲(chǔ)過(guò)程的分類(lèi)
10.3.1 系統(tǒng)存儲(chǔ)過(guò)程
10.3.2 API存儲(chǔ)過(guò)程
10.3.3 用戶(hù)自定義存儲(chǔ)過(guò)程
10.4 創(chuàng)建存儲(chǔ)過(guò)程
10.4.1 創(chuàng)建存儲(chǔ)過(guò)程應(yīng)考慮的因素
10.4.2 創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法
10.4.3 創(chuàng)建不帶參數(shù)的存儲(chǔ)過(guò)程
10.4.4 創(chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程
10.4.5 創(chuàng)建返回值的存儲(chǔ)過(guò)程
10.4.6 創(chuàng)建帶有OUTPUT參數(shù)的存儲(chǔ)過(guò)程
10.4.7 使用SQL Server Management Studio創(chuàng)建存儲(chǔ)過(guò)程
10.5 維護(hù)存儲(chǔ)過(guò)程
10.5.1 查看存儲(chǔ)過(guò)程信息
10.5.2 加密存儲(chǔ)過(guò)程
10.5.3 修改、刪除存儲(chǔ)過(guò)程
10.6 存儲(chǔ)過(guò)程進(jìn)階知識(shí)
10.6.1 存儲(chǔ)過(guò)程的執(zhí)行過(guò)程
10.6.2 存儲(chǔ)過(guò)程命名
本章小結(jié)
問(wèn)題
第11章 觸發(fā)器
11.1 概述
11.1.1 觸發(fā)器與約束規(guī)則
11.1.2 觸發(fā)器的優(yōu)缺點(diǎn)
11.2 觸發(fā)器的分類(lèi)
11.2.1 DDL觸發(fā)器
11.2.2 登錄觸發(fā)器
11.2.3 DML觸發(fā)器
11.3 創(chuàng)建觸發(fā)器
11.3.1 創(chuàng)建DDL觸發(fā)器
11.3.2 可觸發(fā)DDL觸發(fā)器的事件
11.3.3 維護(hù)觸發(fā)器
11.4 創(chuàng)建DML觸發(fā)器
11.4.1 創(chuàng)建DML觸發(fā)器的語(yǔ)法
11.4.2 創(chuàng)建DML觸發(fā)器需要考慮的因素
11.4.3 創(chuàng)建DML觸發(fā)器
11.5 DML觸發(fā)器嵌套
本章小結(jié)
問(wèn)題
第12章 事務(wù)和鎖
12.1 事務(wù)概述
12.1.1 概念
12.1.2 屬性
12.2 創(chuàng)建事務(wù)
12.2.1 使用事務(wù)考慮的因素
12.2.2 事務(wù)的聲明和提交
12.2.3 事務(wù)的回滾
12.2.4 查看當(dāng)前執(zhí)行中的事務(wù)
12.2.5 事務(wù)的嵌套
12.3 事務(wù)的工作原理
12.4 鎖定和行版本控制
12.5 鎖定的分類(lèi)
12.6 鎖的自動(dòng)優(yōu)化
12.6.1 升級(jí)閾值
12.7 死鎖
12.7.1 死鎖的概念
12.7.2 產(chǎn)生死鎖的主要原因和必要條件
12.7.3 減少和預(yù)防死鎖
12.7.4 檢測(cè)死鎖
12.7.5 設(shè)置鎖的優(yōu)先級(jí)
本章小結(jié)
問(wèn)題
第13章 全文索引
13.1 概述
13.2 全文索引概念
13.2.1 全文索引與查詢(xún)
13.2.2 全文索引引擎
13.3 全 文 目 錄
13.3.1 創(chuàng)建全文目錄
13.3.2 修改全文目錄
13.3.3 查看全文目錄
13.4 管理全文索引
13.4.1 創(chuàng)建全文索引需要考慮的因素
13.4.2 創(chuàng)建全文索引
13.4.3 查看全文索引
13.4.4 修改和刪除全文索引
13.4.5 填充全文索引
13.5 使用全文索引
13.5.1 使用全文謂詞CONTAINS和FREETEXT查詢(xún)概述
13.5.2 使用CONTAINS謂詞的簡(jiǎn)單搜索
13.5.3 使用CONTAINS謂詞的派生詞搜索
13.5.4 使用CONTAINS謂詞的前綴詞搜索
13.5.5 使用CONTAINS謂詞的鄰近詞搜索
13.5.6 使用CONTAINS謂詞的加權(quán)詞搜索
13.5.7 使用FREETEXT查詢(xún)
13.5.8 使用CONTAINSTABLE函數(shù)搜索
13.5.9 使用FREETEXTTABLE函數(shù)搜索
13.6 檢索二進(jìn)制列
本章小結(jié)
問(wèn)題
結(jié)束語(yǔ)
只有枯燥的教材,沒(méi)有枯燥的編程
——天轟穿
“編程很枯燥!”是這句話是我要寫(xiě)一套編程類(lèi)入門(mén)書(shū)籍的主要誘因。
而數(shù)據(jù)庫(kù)則是作為進(jìn)入編程世界的一個(gè)重要“關(guān)卡”,為什么這么說(shuō),首先,因?yàn)樗芯幊陶Z(yǔ)言到了實(shí)際應(yīng)用階段都無(wú)法避免地與數(shù)據(jù)庫(kù)打交道;其次,數(shù)據(jù)庫(kù)是體現(xiàn)編程藝術(shù)的一個(gè)重要平臺(tái);另外,學(xué)好數(shù)據(jù)庫(kù),會(huì)使你以后學(xué)習(xí)其他語(yǔ)言的時(shí)候事半功倍。
而能否讓你學(xué)得輕松、學(xué)得扎實(shí)就成為了一個(gè)至關(guān)重要的條件,這也是本書(shū)的宗旨。
通過(guò)學(xué)習(xí)本書(shū),你能夠在嬉笑怒罵的環(huán)境中輕松掌握數(shù)據(jù)存儲(chǔ)原理、數(shù)據(jù)庫(kù)設(shè)計(jì)技巧以及大量數(shù)據(jù)庫(kù)編程的實(shí)戰(zhàn)經(jīng)驗(yàn),更重要的是能夠掌握一種優(yōu)秀的學(xué)習(xí)方法、解決問(wèn)題的思路和思考的方式。這些經(jīng)驗(yàn)和技巧得益于我和鄒老師兩人加起來(lái)近25年的項(xiàng)目開(kāi)發(fā)和教育培訓(xùn)經(jīng)歷。
本書(shū)特色
這不是一本以傳統(tǒng)順序堆砌而成的書(shū)
1.本書(shū)以最有效的教學(xué)思路講解數(shù)據(jù)庫(kù)的每一個(gè)知識(shí)點(diǎn),完全以初學(xué)者的思維方式提出疑問(wèn)再深入答疑。這也許不是一本傳統(tǒng)的教科書(shū),但絕對(duì)是自學(xué)數(shù)據(jù)庫(kù)的首選書(shū)籍。
2.本書(shū)并非嚴(yán)格將數(shù)據(jù)庫(kù)知識(shí)分類(lèi)整理講解,而是按照初學(xué)者的思維習(xí)慣,將每一個(gè)知識(shí)點(diǎn)放在最恰當(dāng)?shù)奈恢,所以單看目錄,?huì)感覺(jué)知識(shí)的排列不像同類(lèi)書(shū)那樣“井井有條”。
3.本書(shū)采用【老田、小天】二人對(duì)話的形式講解,其中不乏詼諧幽默的問(wèn)題和解答,避免對(duì)知識(shí)點(diǎn)生搬硬套。
4.本書(shū)總是提出問(wèn)題再來(lái)解釋?zhuān)ㄟ^(guò)解釋的過(guò)程來(lái)講解新的知識(shí)。這樣極大地避免了知識(shí)點(diǎn)的生硬出現(xiàn),轉(zhuǎn)而將學(xué)習(xí)的過(guò)程變成了解決問(wèn)題的過(guò)程,同時(shí)也復(fù)習(xí)的相關(guān)其他知識(shí)點(diǎn)。
5.本書(shū)中出現(xiàn)的專(zhuān)業(yè)術(shù)語(yǔ)隨著知識(shí)的深入而出現(xiàn),故盡量從頭開(kāi)始閱讀。
6.每章最后的“每日一練”中提出的問(wèn)題常常有錯(cuò)誤的問(wèn)法夾雜其中,在這種題下面會(huì)緊跟著一道題,要求你將前一個(gè)題修改正確,極大避免了填鴨式教學(xué),讓你想不思考都不行。
7.本書(shū)配備對(duì)應(yīng)的視頻教程,去百度谷歌“天轟穿趣味編程”就可以找到,或者去學(xué)云網(wǎng)搜“天轟穿”。
這是一本教會(huì)你學(xué)習(xí)方法的書(shū)
· 學(xué)習(xí)方式是按照初學(xué)者的理解方式,看實(shí)例→提出問(wèn)題→解答問(wèn)題;
· 通過(guò)對(duì)小天提出問(wèn)題的解答來(lái)引導(dǎo)學(xué)員的思考和學(xué)習(xí);
· 學(xué)習(xí)時(shí)間按“天”計(jì)算;
· 每章均有本章學(xué)習(xí)線路提示。
讀者定位
· 希望靠一本書(shū)從頭到尾自學(xué)的零基礎(chǔ)學(xué)員;
· 培訓(xùn)講師的備課資料,因?yàn)檫@本書(shū)總結(jié)了我們培訓(xùn)過(guò)程所遇到的問(wèn)題和學(xué)生會(huì)問(wèn)的問(wèn)題、有疑慮的地方;
· 自覺(jué)性不高的學(xué)員。
關(guān)于本書(shū)的創(chuàng)作起點(diǎn)與過(guò)程
我在2006年制作了《天轟穿VS 2005入門(mén).Net2.0系列視頻教程》,其“非主流”的講授風(fēng)格受到大部分兄弟姐妹的肯定。截至目前,該視頻在6年時(shí)間,已知的瀏覽量超過(guò)1000萬(wàn)次。
從2007年開(kāi)始做培訓(xùn),直到現(xiàn)在,我?guī)н^(guò)完全零基礎(chǔ)的社招培訓(xùn)班、去高校上過(guò)專(zhuān)業(yè)課、去企業(yè)做過(guò)專(zhuān)題培訓(xùn),也做了大量的以“天轟穿”命名的視頻教程。在積累了大量實(shí)體培訓(xùn)和與網(wǎng)絡(luò)學(xué)員交互培訓(xùn)的經(jīng)驗(yàn)后,我再次萌生了要寫(xiě)一套專(zhuān)門(mén)給自學(xué)的兄弟姐妹的教材,于是和成都信息工程學(xué)院鄒茂楊老師聯(lián)合編寫(xiě)了這本書(shū)。
我不想太多去談這本書(shū)怎么樣,但當(dāng)你翻開(kāi)本書(shū),那些無(wú)傷大雅的小幽默和深入淺出的實(shí)例引導(dǎo)會(huì)讓您覺(jué)得選擇這本“由初中生+高校教授的詭異組合”撰寫(xiě)的教材來(lái)學(xué)習(xí)數(shù)據(jù)庫(kù)是對(duì)的。因?yàn)楸緯?shū)不僅是我個(gè)人自學(xué)技巧和教學(xué)經(jīng)驗(yàn)的深度體現(xiàn),還是鄒茂楊老師十余年教學(xué)經(jīng)驗(yàn)的總結(jié)和匯聚。
近幾年,常常有去一些企業(yè)和高校做講座的機(jī)會(huì),總有學(xué)員問(wèn):“川哥,我英語(yǔ)不好,能學(xué)好編程嗎?我數(shù)學(xué)不好,能學(xué)好編程嗎”。我的回答永遠(yuǎn)都是:“只要你努力,只要你堅(jiān)持,就肯定能學(xué)好編程”。
· 因?yàn)槟愕鬃釉俨,不?huì)比我這個(gè)初中生更差;
· 因?yàn)槟阌⒄Z(yǔ)再差,不會(huì)比我這個(gè)初中英語(yǔ)最高成績(jī)就沒(méi)不及格過(guò)的家伙差;
· 因?yàn)槟銛?shù)學(xué)再差,不會(huì)比我這個(gè)因?yàn)椴粫?huì)計(jì)算圓柱體面積而被老師罵的刺頭更差。
我從1999年第一次接觸計(jì)算機(jī),從連鼠標(biāo)都不會(huì)玩的土包子到做出自己的網(wǎng)站用了不到一年(一個(gè)純靜態(tài)頁(yè)面組成的圖片網(wǎng)站),再?gòu)闹粫?huì)做HTML頁(yè)面到做出第一個(gè)ASP的留言本用了一年,之后多次閉關(guān)學(xué)習(xí)新技術(shù)(最狠的一次為了管住自己的雙腳,把眉毛剃掉)。
回想寫(xiě)這本書(shū)的過(guò)程,眼眶濕了。雖然今天已經(jīng)是學(xué)云網(wǎng)CEO,但作為一個(gè)1996年初中畢業(yè)就混社會(huì)的農(nóng)村小伙子而言,這一路走來(lái),有歡笑也有淚水,但更多是汗水。由此得出一個(gè)結(jié)論,要學(xué)好編程,不在于你智商多高,而取決于你能否堅(jiān)持,取決于你是否勤奮。編程不是看書(shū)、看視頻就能學(xué)會(huì)了,而是靠大量的練習(xí)——不斷舉一反三的練習(xí)。
出社會(huì)后這十幾年,我養(yǎng)成了一個(gè)習(xí)慣,無(wú)論做什么事都會(huì)全力以赴(如果做不到,就人為斬?cái)嘧约旱囊磺型寺罚,?xiě)本書(shū)的時(shí)候也一樣,我辭去公司的講師工作、推掉所有找上門(mén)的外包項(xiàng)目和一些高校的課程安排,期間僅靠老婆的工資和我去企業(yè)做培訓(xùn)的收入來(lái)糊口,過(guò)程中也有兩周寫(xiě)不完一章的情況,由于想不出更好的辦法來(lái)將深?yuàn)W的知識(shí)講得足夠有趣,很多時(shí)候覺(jué)得自己很笨、很失敗,很想放棄。但在老婆和朋友們的鼓勵(lì)下,我堅(jiān)持了下來(lái)。在此,感謝我親愛(ài)的老婆,感謝這一路走來(lái)所有支持我、理解我、鼓勵(lì)我的兄弟姐妹們!謝謝你們。!
……