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