出版時間:2012-6 出版社:清華大學(xué)出版社 作者:克里格 頁數(shù):338 字?jǐn)?shù):584000 譯者:施宏斌
Tag標(biāo)簽:無
內(nèi)容概要
結(jié)構(gòu)化查詢語言——即眾所周知的SQL語言,是一種標(biāo)準(zhǔn)數(shù)據(jù)庫語言。SQL用于創(chuàng)建、訪問和操作數(shù)據(jù),存儲和維護(hù)關(guān)系數(shù)據(jù)庫中的信息,常見的關(guān)系數(shù)據(jù)庫包括Access、SQL
Server、Oracle和My
SQL。如果讀者已經(jīng)了解了這些SQL知識,那么在閱讀《SQL實戰(zhàn)新手入門》時已經(jīng)處于領(lǐng)先位置!本書假定讀者不具備SQL或關(guān)系數(shù)據(jù)庫的預(yù)備知識,作者Alex
Kriegel將帶領(lǐng)讀者進(jìn)入SQL的發(fā)現(xiàn)之旅,學(xué)習(xí)SQL的基礎(chǔ)知識、掌握如何使用存儲在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。《SQL實戰(zhàn)新手入門》是為初學(xué)者量身定制的,將從創(chuàng)建一個示例數(shù)據(jù)庫開始,逐步介紹SQL的所有概念,并介紹數(shù)據(jù)建模、查詢調(diào)優(yōu)和性能優(yōu)化等技術(shù)。
作者簡介
Alex Kriegel,俄勒岡州衛(wèi)生局(Oregon Health
Authority)的企業(yè)級系統(tǒng)架構(gòu)師。他具有20多年專業(yè)的軟件設(shè)計和開發(fā)經(jīng)驗,實現(xiàn)并管理企業(yè)級RDBMS,同時管理軟件開發(fā)過程。Alex畢業(yè)于白俄羅斯國立技術(shù)大學(xué)(National
Technical University of
Belarus),具有金屬物理學(xué)的科學(xué)碩士學(xué)位。他獲得了很多行業(yè)證書,包括美國項目管理協(xié)會的PMP、開放架構(gòu)組(Open
Architecture Group)的TOGAF8認(rèn)證從業(yè)人員、Scrum Alliance認(rèn)證的Scrum
Master,以及Microsoft的微軟認(rèn)證技術(shù)專家(Microsoft Certified Technology
Specialist,MCTS)。
Alex通過www.agilitator.com網(wǎng)站提供在線的培訓(xùn)和咨詢服務(wù)。
Alex是MicrosoftSQLServer2000WeekendCrashCourse(Wiley,2001)的作者,也是多本圖書的合著者。他參與合著的圖書包括:SQL
Bible(Wiley,2003)、SQL Functions(Wrox,2005)、Introduction to Database
Management(Wiley,2007)和SQLBible,2ndEdition(Wiley,2008)。他的圖書已被翻譯成中文版、葡萄牙文版和俄文版。
書籍目錄
第1章 數(shù)據(jù)庫簡介
1.1 數(shù)據(jù)泛濫和信息過載
1.1.1 數(shù)據(jù)庫管理系統(tǒng)
1.1.2 記錄數(shù)據(jù)
1.1.3 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
1.2 SQL簡介
1.2.1 SQL標(biāo)準(zhǔn)
1.2.2 SQL的方言
1.2.3 數(shù)據(jù)庫領(lǐng)域的其他角色
1.3 創(chuàng)建數(shù)據(jù)庫
1.3.1 創(chuàng)建表
1.3.2 插入數(shù)據(jù):INSERT語句
1.3.3 獲取數(shù)據(jù):SELECT語句
1.3.4 刪除數(shù)據(jù):DELETE語句
1.3.5 更新數(shù)據(jù):UPDATE語句
1.4 小結(jié)
第2章 解構(gòu)數(shù)據(jù):結(jié)構(gòu)化的信息
2.1 數(shù)據(jù)建模簡介
2.1.1 概念建模
2.1.2 邏輯建模
2.1.3 物理建模
2.2 不能將所有數(shù)據(jù)都定義為文本的原因
2.2.1 字符數(shù)據(jù)
2.2.2 數(shù)值數(shù)據(jù)
2.2.3 數(shù)值字面值
2.2.4 日期和時間數(shù)據(jù)類型
2.2.5 二進(jìn)制數(shù)據(jù)
2.2.6 NULL值
2.2.7 更多數(shù)據(jù)類型
2.3 DDL、DML和DQL: SQL的組成部分
2.4 重構(gòu)數(shù)據(jù)庫表
2.4.1 刪除表
2.4.2 創(chuàng)建表
2.4.3 修改表
2.5 在表中插入不同類型的數(shù)據(jù)
2.6 深入研究SELECT語句
2.6.1 選取字面值、函數(shù)和計算列
2.6.2 限制縱向選取的列
2.6.3 限制橫向選取的行
2.6.4 排序
2.7 深入研究INSERT、LrPDATE或DELETE語句
2.7.1 INSERT語句
2.7.2 UPDATE語句
2.7.3 DELETE語句
2.8 SQL操作符
2.8.1 算術(shù)操作符和字符串連接操作符
2.8.2 比較操作符
2.8.3 邏輯操作符
2.8.4 賦值操作符
2.8.5 位操作符
2.8.6 操作符的優(yōu)先級
2.9 小結(jié)
第3章 設(shè)計關(guān)系型數(shù)據(jù)庫
3.1 再論實體和屬性
3.1.1 主鍵和外鍵
3.1.2 關(guān)系模式
3.1.3 域完整性
3.2 關(guān)系型數(shù)據(jù)庫設(shè)計基礎(chǔ)——規(guī)范化
3.2.1 定義約束
3.2.2 根據(jù)用途選擇數(shù)據(jù)模型
3.2.3 使用多個表
3.2.4 動態(tài)SQL
3.3 小結(jié)
第4章 超越SQL的限制
4.1 數(shù)值函數(shù)
4.2 字符數(shù)據(jù)處理
4.3 日期和時間函數(shù)
4.3.1 獲取時間
4.3.2 日期算術(shù)運算
4.4 聚合函數(shù)簡介
4.5 轉(zhuǎn)換函數(shù)
4.5.1 在不同數(shù)據(jù)類型之間執(zhí)行轉(zhuǎn)換
4.5.2 在不同的字符集之間執(zhí)行轉(zhuǎn)換
4.6 其他函數(shù)
4.7 CASE語句
4.8 SQL過程化擴(kuò)展
4.8.1 使用存儲過程簡化文本的解析
4.8.2 用戶定義函數(shù)(UDF)
4.8.3 使用過程化擴(kuò)展的原因
4.9 小結(jié)
第5章 分組與聚合
5.1 SQL聚合函數(shù)
5.1.1 AVG()函數(shù)
5.1.2 COUNT()函數(shù)
5.1.3 MAX()函數(shù)
5.1.4 MIN()函數(shù)
5.1.5 SUM()函數(shù)
5.2 消除重復(fù)的數(shù)據(jù)
5.3 GROUP BY子句:對數(shù)據(jù)進(jìn)行分組
5.3.1 帶有HAVING子句的GROUP BY子句
5.3.2 0RDER BY子句:排序輸出結(jié)果
5.4 小結(jié)
第6章 嵌套查詢
6.1 子查詢
6.1.1 WHERE子句中的子查詢
6.1.2 SELECT字段列表中的子查詢
6.1.3 FROM子句中的子查詢
6.1.4 HAVING子句中的子查詢
6.1.5 INSERT語句中的子查詢
6.1.6 UPDATE語句中的子查詢
6.1.7 DELETE語句中的子查詢
6.2 相關(guān)子查詢
6.3 嵌套子查詢
6.4 使用子查詢還是JOIN語句
6.5 小結(jié)
第7章 組合數(shù)據(jù)集
7.1 再探JOIN
7.1.1 內(nèi)聯(lián)接(INNER JOIN)
7.1.2 N路INNER JOIN
7.1.3 左聯(lián)接(LEFT OUTER JOIN)
7.1.4 右聯(lián)接(RIGHT OUTER JOIN)
7.1.5 全聯(lián)接(FULL JOIN)
7.1.6 自聯(lián)接:在表內(nèi)部查找答案
7.1.7 交叉聯(lián)接(CROSS JOIN)
7.2 UNION
7.3 視圖
7.3.1 創(chuàng)建視圖
7.3.2 修改視圖
7.3.3 刪除視圖
7.3.4 可更新的視圖
7.3.5 分層的視圖
7.3.6 優(yōu)點和缺點
7.4 更多內(nèi)容
7.4.1 INTERSECT操作符
7.4.2 EXCEPT和MINUS操作符
7.5 小結(jié)
第8章 其他SQL概念
第9章 性能優(yōu)化
第10章 多用戶環(huán)境
第11章 使用非結(jié)構(gòu)化和半結(jié)構(gòu)數(shù)據(jù)
第12章 非SQL的世界
附錄A 安裝Library數(shù)據(jù)庫
附錄B 安裝RDBMS軟件
附錄C 訪問RDBMS
附錄D 使用SQuirreL Universal SQL Client訪問RDBMS
章節(jié)摘錄
版權(quán)頁: 插圖: 數(shù)據(jù)類型還有助于調(diào)整數(shù)據(jù)庫的性能。例如,可以用文本來表示無所不在XML數(shù)據(jù)(關(guān)于XML的更多信息,請參見第11章)。畢竟XML本身就是文本。但是,文本的處理對于XML文檔結(jié)構(gòu)化的性質(zhì)來說并不是優(yōu)化的。除了桌面型RDBMS之外,每一種RDBMS都實現(xiàn)了一種特殊的XML數(shù)據(jù)類型以解決這一問題。 定義數(shù)據(jù)類型的另外一個原因在于數(shù)據(jù)類型可以強(qiáng)制域完整性(將在第3章中詳細(xì)討論)。域完整性指的是將某個列強(qiáng)制約束為某種特定數(shù)據(jù)類型的能力。例如,如果沒有DATE數(shù)據(jù)類型,那么在日期字段中就可能輸入October 48這樣的日期數(shù)據(jù)。試圖將一個無效的值插入到一個具有數(shù)據(jù)類型約束的字段中將產(chǎn)生一個錯誤,例如Microsoft SQL Server的out-of-range datetime value錯誤。 在可以向關(guān)系型數(shù)據(jù)庫輸入數(shù)據(jù)之前,必須將數(shù)據(jù)分解為各種數(shù)據(jù)類型的片段,例如字符、數(shù)值和圖片。客戶端應(yīng)用程序?qū)匦聵?gòu)造這些信息。 2.2.1 字符數(shù)據(jù) 首先從字符數(shù)據(jù)開始介紹,因為當(dāng)收集、轉(zhuǎn)換和分發(fā)信息時,字符是最常處理的數(shù)據(jù)。 1.固定長度字符串和變長字符串 SQLOO所有的字符串既可以是固定長度的字符串,也可以是變長的字符串。兩者的差別非常簡單,但是魔鬼常常隱藏在細(xì)節(jié)之中。 字符串可以定義為一個字符的序列,這些字符屬于一個預(yù)定義的字符集。字符集是數(shù)據(jù)庫存儲的語言。讀者可能還會記得,在安裝RDBMS的過程中,我們已經(jīng)指定了排序規(guī)則和區(qū)域設(shè)置(這不包括Oracle log Express,它將根據(jù)計算機(jī)的設(shè)置或者當(dāng)標(biāo)準(zhǔn)安裝選項被選中時的設(shè)置來進(jìn)行定義)。字符串的長度就是字符序列中字符的數(shù)量。到目前為止一切正常,只要每一個人都使用英語即可,但在現(xiàn)代社會中情況并非如此。這一問題涉及字符數(shù)據(jù)在計算機(jī)內(nèi)部的表示方法:比特和字節(jié)。可以用一個或多個字節(jié)來表示一個字符。絕大多數(shù)拉丁語系語言中的字符都可以用一個字節(jié)來表示,但其他語言中的字符則需要使用多個字節(jié)進(jìn)行表示。這就帶來了問題。 字節(jié)是計算機(jī)的一個術(shù)語,它是一個包含8比特的信息存儲單元。每一個比特要么是1,要么是0。8個比特組成一個字節(jié),可用于存儲256個不同的值(或者由。至U255代表的256個不同的字符),構(gòu)成了美國信息交換標(biāo)準(zhǔn)碼(ASCII)字符集的基礎(chǔ)。由于英語僅包含了26個字母,因此256個字符看起來似乎足夠了,但實際上并非如此。我們還需要為大小寫字母、標(biāo)點符號、數(shù)字、數(shù)學(xué)符號、用于換行/回車的不可打印字符等編碼。只有非常少的編碼空間留給其他基于拉丁字母表的語言所使用的字符(例如法語中的重音符、德語中的元音變音符等),更不用說其他語系的語言了。世界上大約還有3000多種不同的語言,包括消亡的語言和現(xiàn)存的語言。除此之外,還有一些人造語言,例如J.R.R.Tolkien發(fā)明的Quenya、Sindarin和Khuzdul語言及其tengwar和cirth文字,或者《星際迷航》中Klingon外星種族的plqaD文字。
編輯推薦
《SQL實戰(zhàn)新手入門》從入門知識開始介紹,讀者無須具備SQL或關(guān)系數(shù)據(jù)庫的預(yù)備知識。《SQL實戰(zhàn)新手入門》將帶領(lǐng)讀者走入SQL的發(fā)現(xiàn)之旅,讀者將親自創(chuàng)建示例數(shù)據(jù)庫,它不僅結(jié)合了《SQL實戰(zhàn)新手入門》中所介紹的SQL概念,還將通過幾次反復(fù)重構(gòu)引入數(shù)據(jù)建模、查詢調(diào)整和優(yōu)化的概念。《SQL實戰(zhàn)新手入門》還介紹了一些適用于每一種SQL的最佳實踐?!禨QL實戰(zhàn)新手入門》適合于準(zhǔn)備學(xué)習(xí)關(guān)系數(shù)據(jù)庫程序設(shè)計的計算機(jī)程序員,也適合那些希望從數(shù)據(jù)庫中釋放更強(qiáng)大威力的商業(yè)用戶。SQL是關(guān)系數(shù)據(jù)庫世界的通用語言,每一個對學(xué)習(xí)SQL這門強(qiáng)大語言感興趣的人都適合閱讀《SQL實戰(zhàn)新手入門》。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載