SQL范例完全自學(xué)手冊

出版時(shí)間:2009-10  出版社:明日科技、龐婭娟、房大偉、 張躍廷 人民郵電出版社 (2009-10出版)  作者:龐婭娟,房大偉,張躍廷 著  頁數(shù):430  
Tag標(biāo)簽:無  

前言

SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)語言是一種組織、管理和檢索計(jì)算機(jī)數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的工具。它是一種計(jì)算機(jī)語言,可以用它與數(shù)據(jù)庫交互。事實(shí)上,SQL使用的是一種特殊類型的數(shù)據(jù)庫,即關(guān)系數(shù)據(jù)庫。SQL本身不是一個(gè)數(shù)據(jù)庫管理系統(tǒng),也不是一個(gè)獨(dú)立的產(chǎn)品,而是數(shù)據(jù)庫管理系統(tǒng)不可缺少的組成部分,它是與DBMS通信的一種語言和工具。由于其功能豐富,語言簡潔,使用方法靈活,因此備受用戶和計(jì)算機(jī)業(yè)界的青睞,被眾多計(jì)算機(jī)公司和軟件公司采用。經(jīng)過多年的發(fā)展,SQL語言已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。目前,雖然介紹SQL的圖書多不勝數(shù),但真正適合初學(xué)者自學(xué)的圖書并不多,本書就在這種情況下應(yīng)運(yùn)而生,本書精選了大量SQL項(xiàng)目開發(fā)中常見的熱點(diǎn)和關(guān)鍵問題,并以實(shí)例的形式對這些問題進(jìn)行了逐個(gè)擊破,使得讀者能夠在實(shí)踐中學(xué)習(xí)SQL,并迅速成為SQL項(xiàng)目開發(fā)高手。為何選用本書對于初學(xué)者,本書提供了四位一體的全新學(xué)習(xí)方式,可以幫助讀者在編程中不斷體會(huì)編程樂趣,快速提高編程能力。下面是四位一體式學(xué)習(xí)方式圖。圖書(光盤源程序)+視頻錄像講解(本書提供8小時(shí)實(shí)例錄像)+實(shí)踐練習(xí)任務(wù)(光盤提供實(shí)踐練習(xí)源程序)+網(wǎng)上支持(實(shí)例視頻講解和論壇支持服務(wù))。

內(nèi)容概要

  《SQL范例完全自學(xué)手冊》是一本集查詢、使用、學(xué)習(xí)和練習(xí)為一體的自學(xué)手冊,書中介紹了應(yīng)用SQL進(jìn)行開發(fā)的各種技術(shù)和技巧。全書分為17章,內(nèi)容包括SQL基本查詢,WHERE子句過濾,ORDERBY子句排序,數(shù)值查詢,字符串查詢,日期查詢,聚合數(shù)據(jù)檢索,分組統(tǒng)計(jì)數(shù)據(jù),子查詢,交叉表、遞歸查詢與分布式查詢,插入、更新和刪除數(shù)據(jù),XML數(shù)據(jù)檢索,優(yōu)化操作,管理和維護(hù)數(shù)據(jù)庫、SQL編程與應(yīng)用等。《SQL范例完全自學(xué)手冊》精選了154個(gè)典型實(shí)例,所選實(shí)例覆蓋了SQL數(shù)據(jù)庫開發(fā)中的熱點(diǎn)問題和關(guān)鍵問題。全書按實(shí)際應(yīng)用進(jìn)行分類,可以使讀者在短時(shí)間內(nèi)掌握更多實(shí)用技術(shù),快速提高編程水平?!  禨QL范例完全自學(xué)手冊》附有配套DVD光盤,光盤中提供了實(shí)例的全程視頻講解及所有實(shí)例源代碼,這些源代碼都經(jīng)過精心調(diào)試,在WindowsXP、Windows2000和Windows2003下測試通過。  《SQL范例完全自學(xué)手冊》內(nèi)容詳盡,實(shí)例豐富,非常適合作為編程人員及項(xiàng)目開發(fā)人員的學(xué)習(xí)用書。

書籍目錄

第1章 SQL基本查詢 實(shí)例001 在SELECT語句中使用計(jì)算列及列別名 2實(shí)例002 定義批處理(BEGIN...END語句) 4實(shí)例003 查詢指定行數(shù)據(jù) 7實(shí)例004 去除結(jié)果集中的重復(fù)行/列數(shù)據(jù)(DISTINCT關(guān)鍵字) 9實(shí)例005 計(jì)算數(shù)據(jù)在結(jié)果集中的行號(ROW_NUMBER()函數(shù)) 11實(shí)例006 隨機(jī)查詢n行數(shù)據(jù)(NEWID()函數(shù)) 13實(shí)例007 查詢指定長度的文本類型數(shù)據(jù)(READTEXT命令) 15實(shí)例008 格式化結(jié)果集數(shù)據(jù)(CONVERT()函數(shù)、CAST()函數(shù)) 18實(shí)例009 使用iif()函數(shù)根據(jù)指定條件顯示查詢結(jié)果 21實(shí)例010 利用查詢結(jié)果集生成表/臨時(shí)表 22第2章 SELECT語句:WHERE子句過濾 實(shí)例011 運(yùn)用AND與OR運(yùn)算符有效的排列查詢條件 28實(shí)例012 使用比較運(yùn)算符查詢指定范圍內(nèi)的數(shù)據(jù) 30實(shí)例013 通過IN運(yùn)算符給出查詢范圍 33實(shí)例014 使用BETWEEN/NOT BETWEEN...AND查詢范圍數(shù)據(jù) 35實(shí)例015 利用LIKE并引用通配符、轉(zhuǎn)義字符進(jìn)行模糊查詢 38實(shí)例016 查詢?yōu)榭?不為空的數(shù)據(jù)(IS NULL/IS NOT NULL) 41實(shí)例017 在查詢中處理字段值為NULL的數(shù)據(jù) 44實(shí)例018 使用謂詞查詢數(shù)據(jù)(ALL/ANY) 46實(shí)例019 通過EXISTS運(yùn)算符查詢符合條件的數(shù)據(jù) 48實(shí)例020 使用NOT運(yùn)算符查詢否定條件的數(shù)據(jù)(與運(yùn)算符等效) 51第3章 SELECT語句:ORDER BY子句排序 實(shí)例021 多字段的升序/降序排列查詢結(jié)果集 56實(shí)例022 按照姓氏筆畫/音序排序 57實(shí)例023 按升序排列“名列前三”的數(shù)據(jù) 60實(shí)例024 對重復(fù)值的排序 62實(shí)例025 在ORDER BY子句中使用表達(dá)式 63實(shí)例026 在ORDER BY子句中使用日期函數(shù) 66實(shí)例027 排序包含字母及數(shù)字的字段 69實(shí)例028 隨機(jī)排序指定行數(shù)的查詢結(jié)果集 71實(shí)例029 根據(jù)一定條件進(jìn)行動(dòng)態(tài)排序 72實(shí)例030 在視圖中使用ORDER BY子句 75第4章 數(shù)值查詢 實(shí)例031 在查詢時(shí)對數(shù)值進(jìn)行取整 78實(shí)例032 對查詢到的數(shù)值四舍五入 80實(shí)例033 利用三角函數(shù)計(jì)算數(shù)值 83實(shí)例034 根據(jù)查詢數(shù)值求弧度/角度(DEGREES()函數(shù)、RADIANS()函數(shù)) 91實(shí)例035 求數(shù)值的指數(shù)/對數(shù) 93實(shí)例036 實(shí)現(xiàn)數(shù)值的進(jìn)制轉(zhuǎn)換 98實(shí)例037 根據(jù)生成的隨機(jī)數(shù)查詢記錄(RAND()函數(shù)) 100實(shí)例038 根據(jù)查詢數(shù)值的符號顯示具體文本(SING()函數(shù)) 101實(shí)例039 求數(shù)值的絕對值(ABS()函數(shù)) 103實(shí)例040 判斷是否為數(shù)值(ISNUMERIC()函數(shù)) 105第5章 字符串查詢 實(shí)例041 在字符串中去除空格 108實(shí)例042 在字符串中插入空格 110實(shí)例043 實(shí)現(xiàn)字符串的大小寫轉(zhuǎn)換 113實(shí)例044 轉(zhuǎn)換為字符數(shù)據(jù) 115實(shí)例045 返回字符在字符串中出現(xiàn)的次數(shù) 119實(shí)例046 返回字符串中的子串 122實(shí)例047 刪除字符串中的子串 123實(shí)例048 查找并替換字符串 125實(shí)例049 比較兩個(gè)字符串 127第6章 日期查詢 實(shí)例050 查詢指定時(shí)間段的數(shù)據(jù) 130實(shí)例051 轉(zhuǎn)換日期格式 132實(shí)例052 計(jì)算兩個(gè)日期的距離(DATEDIFF()函數(shù)) 135實(shí)例053 按指定日期的天、月、年分別查詢數(shù)據(jù) 137實(shí)例054 返回當(dāng)前日期時(shí)間及對應(yīng)星期數(shù) 140實(shí)例055 查詢指定時(shí)間間隔的數(shù)據(jù)(DATEADD()函數(shù)) 142實(shí)例056 綜合運(yùn)用DATEDIFF()與DATEADD()函數(shù) 144實(shí)例057 判斷是否為日期(ISDATE()函數(shù)) 147第7章 聚合數(shù)據(jù)檢索 實(shí)例058 對多列的求和運(yùn)算 150實(shí)例059 求大于平均值的數(shù)據(jù) 152實(shí)例060 求最大/最小值 155實(shí)例061 求無重復(fù)/不為空的記錄數(shù) 158實(shí)例062 隨機(jī)查詢求和 161實(shí)例063 統(tǒng)計(jì)某個(gè)值出現(xiàn)的次數(shù) 163第8章 分組統(tǒng)計(jì)數(shù)據(jù) 實(shí)例064 分組匯總數(shù)據(jù)并排序 168實(shí)例065 計(jì)算各組數(shù)據(jù)的平均值(將NULL轉(zhuǎn)換為0) 169實(shí)例066 使用ALL查詢?nèi)糠纸M 172實(shí)例067 使用ROLLUP生成部分分組 174實(shí)例068 使用CUBE生成帶有小計(jì)和總計(jì)的交叉表 176實(shí)例069 使用WHERE子句與HAVING子句指定查詢及分組條件 178實(shí)例070 使用OVER子句和聚合函數(shù)實(shí)現(xiàn)分區(qū)聚合數(shù)據(jù) 181實(shí)例071 使用COMPUTE返回?cái)?shù)據(jù)明細(xì)及匯總結(jié)果(多個(gè)結(jié)果集) 184實(shí)例072 使用COMPUTE BY返回分組信息及對應(yīng)匯總數(shù)據(jù)(多個(gè)結(jié)果集) 186第9章 子查詢 實(shí)例073 在SELECT子句中使用子查詢 190實(shí)例074 在WHERE子句中通過比較運(yùn)算符引入子查詢 192實(shí)例075 在FROM子句中使用子查詢 195實(shí)例076 使用IN運(yùn)算符引入子查詢 197實(shí)例077 使用NOT IN運(yùn)算符引入子查詢 200實(shí)例078 利用ALL謂詞引入子查詢 202實(shí)例079 利用ANY/SOME謂詞引入子查詢 205實(shí)例080 使用EXISTS運(yùn)算符引入子查詢 207實(shí)例081 使用NOT EXISTS運(yùn)算符引入子查詢 210實(shí)例082 在HAVING子句使用子查詢過濾一組數(shù)據(jù) 211實(shí)例083 在UPDATE語句中使用子查詢更新數(shù)據(jù) 213實(shí)例084 在INSERT INTO語句中使用子查詢添加數(shù)據(jù) 215實(shí)例085 在DELETE語句中使用子查詢刪除數(shù)據(jù) 217第10章 連接查詢 實(shí)例086 實(shí)現(xiàn)兩表的笛卡爾乘積查詢(CROSS JOIN) 220實(shí)例087 在WHERE子句中設(shè)置連接條件 221實(shí)例088 使用INNER JOIN實(shí)現(xiàn)自身連接 223實(shí)例089 使用INNER JOIN實(shí)現(xiàn)等值連接 224實(shí)例090 使用INNER JOIN實(shí)現(xiàn)不等連接 225實(shí)例091 多表內(nèi)連接的查詢 227實(shí)例092 使用LEFT OUTER JOIN以左表為依據(jù)查詢匹配數(shù)據(jù) 228實(shí)例093 使用RIGHT OUTER JOIN以右表為依據(jù)查詢匹配數(shù)據(jù) 230實(shí)例094 使用FULL JOIN查詢兩表匹配的所有數(shù)據(jù) 232實(shí)例095 多表外連接的查詢 233第11章 組合查詢 實(shí)例096 使用UNION組合多個(gè)結(jié)果集 238實(shí)例097 使用UNION ALL組合保留重復(fù)數(shù)據(jù) 239實(shí)例098 排序組合后的查詢數(shù)據(jù) 241實(shí)例099 求兩個(gè)結(jié)果集的交集(INTERSECT運(yùn)算符) 243實(shí)例100 求兩個(gè)結(jié)果集的差集(EXCEPT運(yùn)算符) 245第12章 交叉表、遞歸與分布式查詢 實(shí)例101 使用CASE語句指定顯示的文本 248實(shí)例102 使用CASE語句更新數(shù)據(jù) 249實(shí)例103 通過CASE語句生成靜態(tài)交叉表 251實(shí)例104 實(shí)現(xiàn)結(jié)果集中記錄的行列轉(zhuǎn)換 253實(shí)例105 使用PIVOT運(yùn)算符實(shí)現(xiàn)交叉表 256實(shí)例106 使用UNPIVOT運(yùn)算符反轉(zhuǎn)交叉表 259實(shí)例107 CTE遞歸查詢 262實(shí)例108 調(diào)用系統(tǒng)存儲(chǔ)過程進(jìn)行分布式查詢 265實(shí)例109 使用函數(shù)實(shí)現(xiàn)分布式查詢 267實(shí)例110 運(yùn)用分布式事務(wù) 269第13章 插入、更新和刪除數(shù)據(jù) 實(shí)例111 使用INSERT INTO語句插入數(shù)據(jù) 272實(shí)例112 使用UNION ALL運(yùn)算符批量插入數(shù)據(jù) 275實(shí)例113 使用INSERT SELECT語句批量插入數(shù)據(jù) 277實(shí)例114 實(shí)現(xiàn)數(shù)據(jù)庫與Excel數(shù)據(jù)的導(dǎo)入導(dǎo)出 279實(shí)例115 實(shí)現(xiàn)SQL Server與Access數(shù)據(jù)的導(dǎo)入導(dǎo)出 283實(shí)例116 使用UPDATE語句更新數(shù)據(jù) 286實(shí)例117 使用DELETE語句刪除數(shù)據(jù) 289實(shí)例118 刪除表中相同的行數(shù)據(jù)(游標(biāo)) 292實(shí)例119 刪除完全重復(fù)的行(臨時(shí)表) 299第14章 XML數(shù)據(jù)檢索 實(shí)例120 以XML形式顯示檢索數(shù)據(jù)(FOR XML RAW) 304實(shí)例121 檢索數(shù)據(jù)以生成XML文件(FOR XML AUTO) 310實(shí)例122 將XML數(shù)據(jù)插入到數(shù)據(jù)表中 314實(shí)例123 利用XML索引檢索數(shù)據(jù) 317實(shí)例124 查找XML節(jié)點(diǎn)(QUERY方法) 321實(shí)例125 提取XML節(jié)點(diǎn)元素值(VALUE方法) 324實(shí)例126 插入XML元素節(jié)點(diǎn) 327實(shí)例127 刪除XML元素節(jié)點(diǎn) 331實(shí)例128 更新XML元素節(jié)點(diǎn)的值 334實(shí)例129 將XML節(jié)點(diǎn)轉(zhuǎn)變?yōu)閷?yīng)字段(NODES方法) 337第15章 優(yōu)化操作 實(shí)例130 創(chuàng)建索引加快數(shù)據(jù)引用(非聚集、惟一、聚集索引) 342實(shí)例131 使用約束維護(hù)數(shù)據(jù)完整性(主鍵、惟一、檢查約束) 349實(shí)例132 使用視圖格式化檢索數(shù)據(jù) 354實(shí)例133 執(zhí)行帶參數(shù)的存儲(chǔ)過程以動(dòng)態(tài)檢索數(shù)據(jù) 359實(shí)例134 定義觸發(fā)器以自動(dòng)執(zhí)行SQL語句 364實(shí)例135 異常錯(cuò)誤處理 369實(shí)例136 應(yīng)用事務(wù)維護(hù)數(shù)據(jù)的一致性 371實(shí)例137 在事務(wù)中的表級鎖定 374實(shí)例138 實(shí)現(xiàn)事務(wù)并發(fā)控制 377第16章 管理和維護(hù)數(shù)據(jù)庫 實(shí)例139 創(chuàng)建/修改數(shù)據(jù)庫 384實(shí)例140 創(chuàng)建/修改數(shù)據(jù)表 388實(shí)例141 備份數(shù)據(jù)庫 394實(shí)例142 恢復(fù)數(shù)據(jù)庫 397實(shí)例143 附加/分離數(shù)據(jù)庫 400實(shí)例144 查看數(shù)據(jù)庫對象 402實(shí)例145 加密數(shù)據(jù)庫中的數(shù)據(jù) 405實(shí)例146 防止SQL注入攻擊 406第17章 SQL編程與應(yīng)用 實(shí)例147 在C語言中使用SQL通信區(qū) 410實(shí)例148 嵌入式SQL中的主變量 412實(shí)例149 嵌入式SQL中的游標(biāo)操作 415實(shí)例150 在高級語言中嵌入SQL語句 417實(shí)例151 在數(shù)據(jù)庫管理系統(tǒng)中嵌入SQL語句 420實(shí)例152 預(yù)編譯嵌入式SQL語句 422實(shí)例153 執(zhí)行嵌入式SQL語句 424實(shí)例154 動(dòng)態(tài)執(zhí)行SQL語句 424附錄

章節(jié)摘錄

插圖:技術(shù)要點(diǎn)通過創(chuàng)建非簇索引、惟一索引、多字段簇索引可以加快訪問數(shù)據(jù)的速度。1.索引的概念索引是一個(gè)單獨(dú)的、物理的數(shù)據(jù)庫結(jié)構(gòu),在SQL Server中,索引是為了加速對表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散存儲(chǔ)結(jié)構(gòu)。它是針對一個(gè)表而建立的,每個(gè)索引頁面中的行都含有邏輯指針,指向數(shù)據(jù)表中的物理位置,以便加速檢索物理數(shù)據(jù)。因此,對表中的列是否創(chuàng)建索引,將對查詢速度有很大的影響。一個(gè)表的存儲(chǔ)是由兩部分組成的,一部分用來存放表的數(shù)據(jù)頁,另一部分存放索引頁。通常索引頁面對于數(shù)據(jù)頁面來說小得多。在進(jìn)行數(shù)據(jù)檢索時(shí),系統(tǒng)首先搜索索引頁面,從中找到所需數(shù)據(jù)的指針,然后直接通過該指針從數(shù)據(jù)頁面中讀取數(shù)據(jù),從而提高查詢速度。數(shù)據(jù)庫使用索引的方式與使用書的目錄很相似,索引允許用戶不必像翻閱完整個(gè)書那樣就能迅速地找到所需要的信息。在數(shù)據(jù)庫中,使用索引可以迅速地找到表中的數(shù)據(jù),而不必掃描整個(gè)表。在了解了索引的基本概念的同時(shí),講解索引的優(yōu)缺點(diǎn)及使用索引的條件:(1)使用索引的優(yōu)點(diǎn)。創(chuàng)建惟一性索引,保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的惟一性。大大加快數(shù)據(jù)的檢索速度,這也是創(chuàng)建索引的最主要原因。加速表與表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。在使用分組(GROUP BY)和排序(0RDER BY)子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以減少查詢中分組和排序的時(shí)間。通過使用索引,可以在查詢的過程中使用優(yōu)化隱藏器,提高系統(tǒng)的性能。(2)使用索引的缺點(diǎn)。創(chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間,這種時(shí)間隨著數(shù)據(jù)量的增加而增加。索引需要占物理空間。除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個(gè)索引還要占一定的物理空間,如果要建立簇索引,那么需要的空間就會(huì)更大。當(dāng)對表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度。(3)使用索引的條件??紤]建立索引的列如下。表的主鍵。一般而言,存取表的最常用的方法是通過主鍵來進(jìn)行的。因此,應(yīng)該在主鍵上建立索引。連接中頻繁使用的列(外鍵)。這是因?yàn)橛糜谶B接的列若按順序存放,系統(tǒng)可以很快地執(zhí)行連接。在某一范圍內(nèi)頻繁搜索的列和按排序頻繁檢索的列。建立索引是需要一定的開銷的(包括時(shí)間和空間上)。當(dāng)進(jìn)行INSERT和UPDATE操作時(shí),維護(hù)索引也要花費(fèi)時(shí)間和空間,因此,沒有必要對表中的所有列都建立索引。如何有效地使用索引要看建立索引和維護(hù)索引的代價(jià)與因建立索引所節(jié)省時(shí)間相比較而定。一般來說,如下情況的列建議不考慮建立索引。很少或從來不在查詢中引用的列,因?yàn)橄到y(tǒng)很少或從來不根據(jù)這個(gè)列的值去查找行。只有兩個(gè)或若干個(gè)值的列(例如性別:男/女),顯現(xiàn)不出使用索引的好處。

編輯推薦

《SQL范例完全自學(xué)手冊》:軟件工程師入門,雙格式視頻編程隨身學(xué)。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    SQL范例完全自學(xué)手冊 PDF格式下載


用戶評論 (總計(jì)2條)

 
 

  •   很好用的書,推薦給大家看。初學(xué)者
  •   如果是oracle sql 就更好了
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7