係統介紹瞭DMSQL的功能、語法、應用及DMSQL程序設計方法,內容實用、操作性強,語言通俗、格式規範,可作為相關專業的教材,也可作為工程技術人員的參考書。
本書以達夢數據庫管理係統DM7.1為藍本,係統介紹瞭DM SQL的功能、語法、應用及DM SQL程序設計方法。全書包括9章,主要內容包括DM SQL函數、DM SQL數據定義、數據查詢、數據操作和事務處理、數據控製等SQL語句的語法及應用,以及存儲過程、存儲函數、觸發器、包、嵌入式SQL等數據庫程序設計方法。附光盤1張,內含達夢數據庫管理係統7.1教學版及例題源碼。
本書內容實用、操作性強,語言通俗、格式規範,可作為相關專業的教材,也可作為工程技術人員的參考書。
戴劍偉,教授,主要研究方嚮為數據工程、信息資源管理,齣版《軍事信息管理》、《跨領域信息交換方法與技術》、《數據工程理論與技術》、《HLA仿真程序設計》等4部專著。
第1章 DM SQL概述 1
1.1 SQL的發展 1
1.2 DM SQL的特點 2
1.3 DM SQL的主要功能 2
1.4 DM SQL數據類型 3
1.4.1 數值型數據類型 3
1.4.2 字符型數據類型 3
1.4.3 日期型數據類型 4
1.4.4 日期時間間隔數據類型 5
1.4.5 二進製和多媒體數據類型 9
1.5 DM SQL錶達式 9
1.5.1 數值錶達式 9
1.5.2 字符串錶達式 10
1.5.3 時間值錶達式 10
1.5.4 時間間隔值錶達式 12
1.5.5 運算符的優先級 13
1.6 SQL語法描述說明 13
1.7 示例數據庫說明 14
第2章 DM SQL函數 17
2.1 數值函數 17
2.2 字符串函數 29
2.3 日期時間函數 50
2.4 空值判斷函數 66
2.5 類型轉換函數 68
2.6 雜類函數 71
第3章 DM SQL數據定義 73
3.1 數據庫修改語句 73
3.2 錶空間管理語句 75
3.2.1 創建錶空間 75
3.2.2 修改錶空間 77
3.2.3 刪除錶空間 78
3.2.4 創建大錶空間 79
3.2.5 刪除大錶空間 80
3.3 用戶管理語句 80
3.3.1 創建用戶 80
3.3.2 修改用戶 84
3.3.3 刪除用戶 85
3.4 模式管理語句 86
3.4.1 創建模式 86
3.4.2 設置當前模式 87
3.4.3 刪除模式 88
3.5 錶管理語句 88
3.5.1 管理數據庫錶 89
3.5.2 管理外部錶 101
3.6 視圖管理語句 103
3.6.1 創建視圖 103
3.6.2 刪除視圖 106
3.6.3 創建物化視圖 107
3.6.4 修改物化視圖 111
3.6.5 刪除物化視圖 111
3.7 索引管理語句 111
3.7.1 創建常用索引 112
3.7.2 刪除常用索引 114
3.7.3 創建位圖連接索引 114
3.7.4 刪除位圖連接索引 115
3.7.5 創建全文索引 116
3.7.6 修改全文索引 117
3.7.7 刪除全文索引 118
3.8 序列管理語句 119
3.8.1 創建序列 120
3.8.2 刪除序列 121
3.9 同義詞管理語句 122
3.9.1 創建同義詞 122
3.9.2 刪除同義詞 123
第4章 DM SQL數據查詢 124
4.1 單錶查詢 124
4.1.1 簡單查詢 125
4.1.2 帶條件查詢 125
4.1.3 集函數 127
4.1.4 分析函數 129
4.1.5 CASE錶達式 141
4.2 連接查詢 143
4.2.1 交叉連接 143
4.2.2 自然連接(NATURAL JOIN) 144
4.2.3 JOIN…USING 145
4.2.4 JOIN…ON 145
4.2.5 自連接 145
4.2.6 內連接(INNER JOIN) 146
4.2.7 外連接(OUTER JOIN) 146
4.2.8 哈希連接(HASH JOIN) 147
4.3 子查詢 148
4.3.1 標量子查詢 148
4.3.2 錶子查詢 149
4.3.3 派生錶子查詢 150
4.3.4 定量比較 151
4.3.5 帶EXISTS謂詞的子查詢 152
4.3.6 多列錶子查詢 153
4.4 公用錶錶達式 154
4.4.1 公用錶錶達式的作用 155
4.4.2 公用錶錶達式的使用 155
4.5 閤並查詢結果 156
4.6 查詢子句 158
4.6.1 GROUP BY子句的使用 158
4.6.2 ROLLUP的使用 159
4.6.3 CUBE的使用 161
4.6.4 GROUPING的使用 162
4.6.5 GROUPING SETS的使用 163
4.6.6 HAVING子句的使用 164
4.6.7 ORDER BY子句 165
4.6.8 FOR UPDATE子句 166
4.6.9 TOP子句 167
4.6.10 LIMIT子句 168
4.7 全文檢索 169
4.7.1 全文檢索的使用 169
4.7.2 自定義全文檢索詞庫 171
4.8 層次查詢 175
4.8.1 層次查詢子句 175
4.8.2 層次查詢相關僞列 176
4.8.3 層次查詢相關操作符 176
4.8.4 層次查詢相關函數 176
4.8.5 層次查詢層內排序 176
4.8.6 層次查詢的限製 177
4.9 僞列的使用 182
4.9.1 ROWNUM 182
4.9.2 ROW 183
4.9.3 ROWID 183
4.9.4 UID及USER 184
4.9.5 TRXID 184
第5章 DM SQL數據操作和事務處理 185
5.1 數據插入語句 185
5.2 數據修改語句 186
5.3 MERGE INTO語句 187
5.4 數據刪除語句 189
5.5 事務相關語句 190
5.5.1 事務簡介 190
5.5.2 事務提交 192
5.5.3 事務迴滾 193
5.5.4 事務鎖定 195
5.5.5 多版本 198
5.5.6 事務隔離級 199
5.5.7 閃迴 202
第6章 DM SQL數據控製 210
6.1 權限管理 210
6.1.1 權限分類 210
6.1.2 授予權限 212
6.1.3 迴收權限 216
6.2 角色管理 218
6.2.1 創建角色 219
6.2.2 管理角色權限 220
6.2.3 分配與迴收角色 220
6.2.4 啓用與停用角色 222
6.2.5 刪除角色 223
第7章 DM SQL程序設計基礎 224
7.1 DM SQL程序的特點 224
7.2 DM SQL程序塊結構 225
7.3 DM SQL程序代碼編寫規則 225
7.3.1 變量命名規範 225
7.3.2 大小寫規則 226
7.3.3 注釋 226
7.4 DM SQL程序變量聲明、賦值及操作符 227
7.4.1 變量聲明及初始化 227
7.4.2 變量賦值 228
7.4.3 操作符 228
7.5 變量類型 229
7.5.1 標量數據類型 229
7.5.2 大對象數據類型 230
7.5.3 %TYPE類型 231
7.5.4 %ROWTYPE類型 231
7.5.5 記錄類型 231
7.5.6 數組類型 232
7.5.7 集閤類型 235
7.5.8 類類型 241
7.6 DM SQL程序控製結構 245
7.6.1 條件控製IF語句 245
7.6.2 循環語句 247
7.6.3 CASE語句 250
7.6.4 其他控製語句 251
7.7 異常處理 253
7.7.1 異常處理語法 254
7.7.2 用戶自定義異常 255
7.7.3 異常處理函數 257
7.8 遊標 258
7.8.1 遊標控製 259
7.8.2 遊標變量 263
7.8.3 遊標更新數據、刪除數據 264
第8章 DM SQL程序設計 266
8.1 存儲過程 266
8.1.1 存儲過程的定義和調用 267
8.1.2 存儲過程應用實例 269
8.1.3 存儲過程編譯 270
8.1.4 存儲過程刪除 270
8.1.5 C語法的DM SQL程序 271
8.2 存儲函數 272
8.2.1 存儲函數的定義和調用 272
8.2.2 存儲函數編譯 274
8.2.3 存儲函數刪除 274
8.2.4 C外部函數 274
8.2.5 Java外部函數 278
8.3 觸發器 280
8.3.1 觸發器概述 280
8.3.2 觸發器創建 281
8.3.3 觸發器管理 287
8.4 包 288
8.4.1 創建包語法 288
8.4.2 刪除包 289
8.4.3 包應用舉例 290
第9章 DM嵌入式SQL程序設計 293
9.1 嵌入式SQL程序組成及編譯過程 293
9.1.1 嵌入式SQL程序組成 293
9.1.2 嵌入式SQL程序編譯過程 294
9.2 嵌入式SQL常用語法 295
9.2.1 SQL前綴和終結符 295
9.2.2 宿主變量 296
9.2.3 輸入和輸齣變量 296
9.2.4 指示符變量 297
9.2.5 服務器登錄與退齣 297
9.2.6 單元組查詢語句 298
9.3 動態SQL 299
9.3.1 EXECUTE IMMEDIATE立即執行語句 300
9.3.2 PREPARE準備語句 300
9.3.3 EXECUTE執行語句 301
9.4 嵌入式程序的異常處理 301
9.4.1 嵌入的異常聲明語句 301
9.4.2 異常處理語句使用實例 302
附錄A 關鍵字和保留字 304
附錄B 達夢數據庫技術支持 311
前 言
發展具有自主知識産權的國産數據庫管理係統,打破國外數據庫産品的壟斷,為我國信息化建設提供安全可控的基礎軟件,是維護國傢信息安全的重要手段。
達夢數據庫管理係統作為國內最早推齣的具有自主知識産權的數據庫管理係統之一,是唯一獲得國傢自主原創産品認證的數據庫産品,現已在公安、電力、鐵路、航空、審計、通信、金融、海關、國土資源、電子政務等多個領域得到廣泛應用,為國傢機關、各級政府和企業信息化建設發揮瞭積極作用。
為瞭推動國産數據庫管理係統的教學和人纔培養,促進國産數據庫的廣泛應用,我們在總結數據庫管理係統長期教學和科研實踐經驗的基礎上,在達夢數據庫有限公司的大力支持下,以達夢數據庫DM7.1為藍本,編寫瞭《達夢數據庫應用基礎》和《達夢數據庫SQL指南》兩本教材。
《達夢數據庫SQL指南》係統介紹瞭DM SQL的功能、語法、應用和DM數據庫程序設計,全書共9章。內容包括DM SQL概述,DM SQL函數,DM SQL數據定義,DM SQL數據查詢,DM SQL數據操作和事務處理,DM SQL數據控製,DM SQL程序設計基礎,DM SQL程序設計,DM嵌入式SQL程序設計。為瞭方便讀者學習和體驗操作,此書還附帶瞭光盤。光盤內包含瞭達夢數據庫管理係統7.1標準版和例題源碼。
本書綱目由吳照林、戴劍偉擬製,最後統稿修改由吳照林、戴劍偉完成。具體分工為:第1章由吳照林、戴劍偉編寫,第2章由文峰、戴劍偉編寫,第3章由龔建華、馮勤群編寫,第4章由曾昭文、張守帥編寫,第5章由戴劍偉、周淳編寫,第6章由硃明東、龔建華編寫,第7章和第8章由戴劍偉、張勝編寫,第9章由馮勤群、戴劍偉、張海粟編寫。左青雲、王強、劉培磊編寫瞭書中例題,並對例題進行瞭測試驗證。
在本書的編寫過程中,參考瞭達夢數據庫有限公司提供的技術資料,在此錶示衷心的感謝。
由於作者水平有限,書中難免有些錯誤與不妥之處,敬請讀者批評指正,歡迎讀者通過達夢數據庫技術支持聯係方式(見附錄B)。
作 者
2016年10月於武漢
融會貫通,觸類旁通 隨著閱讀的深入,我越來越發現《達夢數據庫SQL指南》並非隻是孤立地講解SQL語法,而是將SQL語言置於達夢數據庫的整體架構和應用場景中進行闡述。書中不僅涉及瞭數據的增刪改查,還觸及瞭視圖、存儲過程、觸發器等高級特性。通過學習這些內容,我開始理解如何將零散的SQL語句組閤成強大的數據處理邏輯,如何利用達夢數據庫的特性來提升開發效率和係統性能。特彆是在學習存儲過程時,書中通過一個實際的業務場景,演示瞭如何將復雜的業務邏輯封裝到存儲過程中,從而提高代碼的可維護性和復用性。這種“觸類旁通”的學習體驗,讓我不再局限於簡單的SQL查詢,而是能夠從更宏觀的視角來思考如何利用數據庫解決實際問題。它讓我明白,掌握SQL不僅僅是學會寫語句,更是理解數據庫的設計理念和應用模式,從而能夠更加靈活地運用達夢數據庫來構建復雜的應用係統。
評分從新手到熟手,堅實的一步 迴顧整個閱讀過程,我最大的感受是,《達夢數據庫SQL指南》確實是一本能夠將一個對達夢數據庫隻有模糊概念的“新手”,逐步培養成能夠獨立進行基本數據庫操作和開發的“熟手”的優秀教材。書中內容的邏輯性強,由淺入深,不跳躍,不晦澀。即便是初次接觸數據庫開發的讀者,也能按照書中的指引,一步一步地建立起紮實的知識體係。書中的語言風格平實易懂,避免瞭過多的專業術語堆砌,即使遇到不理解的地方,也能通過作者提供的示例和解釋,很快找到問題的答案。對於我而言,這本書不僅僅是一本技術參考書,更是一次係統性的學習經曆。它幫助我建立起瞭對達夢數據庫SQL的信心,也為我未來在達夢平颱上進行更復雜的開發奠定瞭堅實的基礎。這是一次非常值得的投入,讓我覺得在數據庫學習的道路上,又邁齣瞭堅實的一步。
評分細微之處,見真章 這本書最讓我印象深刻的,是它在細節上的打磨。很多看似微不足道的SQL語法細節,在實際開發中卻可能引發大問題,而《達夢數據庫SQL指南》恰恰捕捉到瞭這些關鍵點,並進行瞭詳盡的解釋。比如,關於NULL值的處理,書中不僅闡述瞭IS NULL和IS NOT NULL的用法,還詳細講解瞭COALESCE函數在處理NULL值時的妙用,這在處理遺留數據或者不完整數據時尤為重要。再比如,事務管理的部分,作者並沒有簡單地介紹BEGIN TRANSACTION、COMMIT、ROLLBACK,而是深入分析瞭不同隔離級彆帶來的影響,以及在並發環境下可能齣現的死鎖問題,並給齣瞭相應的預防和處理建議。這些內容對於任何一個需要保證數據一緻性和可靠性的開發者來說,都至關重要。很多時候,一本好的技術書籍,其價值往往體現在這些“細微之處”,它能幫助你規避很多不必要的坑,讓你的開發之路更加平坦。這本書無疑做到瞭這一點,讓我受益匪淺。
評分實踐為王,代碼為證 坦白說,很多技術書籍在理論講解上都很到位,但往往在實操環節就顯得力不從心。然而,《達夢數據庫SQL指南》在這方麵做得相當齣色。書中提供的每一個SQL示例,都附帶瞭詳細的代碼片段,甚至連創建測試數據的腳本都一應俱全。我喜歡這種“拿來即用”的學習方式,無需花費大量時間去自己搭建環境或者猜測代碼的含義。通過親手敲擊鍵盤,執行那些SQL語句,看著數據在眼前生成、修改、刪除,這種成就感是閱讀純理論書籍無法比擬的。尤其是在學習索引和優化部分時,書中通過對比不同查詢語句的執行效率,直觀地展現瞭索引的威力。我甚至按照書中的方法,在自己的測試庫裏對一些慢查詢進行瞭優化,效果立竿見影,這讓我對達夢數據庫的性能調優有瞭初步的認識。這種理論與實踐緊密結閤的學習模式,極大地提升瞭我的學習效率和解決問題的能力,讓我覺得這本書不僅僅是一本“指南”,更像是一位經驗豐富的導師,手把手地教我如何駕馭達夢數據庫。
評分初窺門徑,迷霧漸開 終於下定決心要深入學習達夢數據庫,這本《達夢數據庫SQL指南》著實給瞭我一個極佳的切入點。初拿到手,翻開第一頁,便被其清晰的排版和由淺入深的邏輯所吸引。作者似乎深諳初學者的睏惑,從最基礎的SQL概念講起,循序漸進地引導讀者理解數據庫的運作原理,以及如何在達夢環境中構建和管理數據。書中對各種SQL語句的解析,不僅僅是簡單的語法羅列,更是結閤瞭大量的實際應用場景,讓我能快速地將理論知識轉化為實踐技能。例如,在講解JOIN操作時,書中並沒有止步於INNER JOIN、LEFT JOIN的定義,而是通過一個模擬的訂單和客戶管理場景,生動地展示瞭如何巧妙運用不同類型的JOIN來獲取所需信息,這對於我這種需要處理復雜業務邏輯的人來說,簡直是雪中送炭。而且,書中還穿插瞭一些達夢特有的函數和語法,這讓我意識到,雖然SQL有標準,但在具體的數據庫係統中,掌握其獨特性至關重要。每一次閱讀,都仿佛在撥開層層迷霧,讓我對達夢數據庫的理解更加透徹,也為我後續更深入的學習打下瞭堅實的基礎。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有