Oracle 數據庫管理從入門到精通 Oracle数据库管理从入门到精通(附光盘)

丁士鋒, 等

  • 出版商: 清華大學
  • 出版日期: 2014-04-01
  • 售價: $720
  • 貴賓價: 9.5$684
  • 語言: 簡體中文
  • 頁數: 778
  • 裝訂: 平裝
  • ISBN: 7302347638
  • ISBN-13: 9787302347637
  • 相關分類: Oracle
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

<內容簡介>

《Oracle數據庫管理從入門到精通(附光盤)》以面嚮應用為原則,深入淺出地介紹了Oracle數據庫的管理和開發技術。書中通過大量的圖解和示例代碼,詳細介紹了Oracle的體系結構、PL/SQL的語言特性,並深入剖析了用PL/SQL進行Oracle開發的方方面面。為了便於讀者高效、直觀地學習,作者為本書重點內容錄製了13.6小時多媒體教學視頻。這些視頻及本書涉及的源代碼一起收錄於本書配套DVD光盤中。另外,光盤中還免費贈送了7.8小時Oracle PL/SQL教學視頻和大量的PL/SQL實例代碼,供讀者進一步學習參考。
    全書共24章,分為6篇。涵蓋的內容主要有關係型數據庫基礎、Oracle的安裝和管理、體系結構、網絡結構、物理和邏輯結構的維護和管理、SQL語言的應用、PL/SQL語言基礎、開發環境、控制語句、數據表的管理和查詢、數據表的操作、使用PL/SQL的記錄與集合、各種內置函數、光標、事務處理、異常處理、子程序、包、Oracle的安全性、表空間和數據文件的管理、數據庫的備份和恢復等,最後還通過兩個現實案例介紹了Oracle編程的經驗和技巧。
    本書適用於Oracle數據庫管理人員、使用PL/SQL進行應用程序開發的人員、對軟件開發有興趣的學生及愛好者。另外,本書對於網絡管理員、企業IT運維人員也具有很強的指導作用。

<目錄>

第1篇  Oracle基礎
第1章  認識關係型數據庫( 教學視頻:37分鐘)  2
  1.1  理解數據庫  2
  1.1.1  什麼是關係型數據庫  2
  1.1.2  實體關係模型  3
  1.1.3  關係型數據庫管理系統RDBMS  5
  1.1.4  使用SQL語言管理數據庫  6
  1.2  認識數據庫範式  7
  1.2.1  什麼是數據庫範式  7
  1.2.2第一範式1NF  8
  1.2.3第二範式2NF  9
  1.2.4第三範式3NF  10
  1.3  認識Oracle數據庫系統  10
  1.3.1  Oracle數據庫特性  10
  1.3.2  Oracle數據庫管理員  12
  1.3.3  數據庫管理員任務列表  13
  1.3.4  Oracle數據庫系統的組成  15
  1.3.5  與SQL Server數據庫的比較  16
  1.4  安裝Oracle數據庫  18
  1.4.1  獲取Oracle數據庫軟件  18
  1.4.2  使用Oracle技術與文檔庫  19
  1.4.3  安裝Oracle數據庫系統  20
  1.4.4  卸載Oracle數據庫  29
  1.5  小結  31
第2章  創建和連接Oracle數據庫( 教學視頻:43分鐘)  33
  2.1  創建Oracle數據庫  33
  2.1.1  使用DBCA創建數據庫  33
  2.1.2  使用靜默方式創建數據庫  41
  2.1.3  刪除現有數據庫  43
  2.1.4  手動安裝數據庫  45
  2.2  啟動和停止Oracle數據庫服務  50
  2.2.1  啟動和停止監聽程序  51
  2.2.2  啟動數據庫  54
  2.2.3  限制數據庫的訪問  56
  2.2.4  關閉數據庫  57
  2.3  Oracle客戶端工具  59
  2.3.1  安裝Oracle客戶端  59
  2.3.2  客戶端網絡配置工具  62
  2.3.3  使用Oracle企業管理器  65
  2.3.4  使用SQL*Plus  67
  2.3.5  使用Oracle SQL Developer  69
  2.3.6  使用PL/SQL Developer  71
  2.3.7  使用Toad  73
  2.4  小結  76
第3章  SQL語言與SQL*Plus( 教學視頻:34分鐘)  77
  3.1  SQL語言基礎  77
  3.1.1  SQL、SQL*Plus與Oracle的關係  77
  3.1.2  SQL語言的特點  78
  3.1.3  SQL語言的分類  80
  3.1.4  SQL語言的編寫規則  81
  3.2  認識SQL*Plus  83
  3.2.1  SQL*Plus的功能  83
  3.2.2  啟動SQL *Plus  84
  3.2.3  重新連接數據庫  86
  3.2.4  SQL*Plus運行環境設置  86
  3.2.5  使用命令幫助  88
  3.3  操作數據庫  90
  3.3.1  執行SQL與PL/SQL代碼  90
  3.3.2  瞭解SQL*Plus緩衝區  92
  3.3.3  運行腳本文件  94
  3.3.4  顯示表結構  95
  3.3.5  使用替換變量  97
  3.3.6  運行操作系統命令  98
  3.3.7  斷開和退出SQL*Plus  99
  3.4  格式化查詢結果  100
  3.4.1  格式化列  100
  3.4.2  清除列格式  103
  3.4.3  限制重複行  103
  3.4.4  使用匯總行  105
  3.5  小結  106
第4章  認識Oracle體系結構( 教學視頻:20分鐘)  107
  4.1  Oracle實例內存管理  107
  4.1.1  Oracle內存結構  107
  4.1.2  系統全局區SGA  108
  4.1.3  程序全局區PGA  112
  4.1.4  數據庫緩衝區高速緩存  114
  4.1.5  共享池  117
  4.1.6  重做日誌緩衝區  118
  4.1.7  其他內存結構  119
  4.2  Oracle實例進程結構  120
  4.2.1  用戶進程與服務器進程  120
  4.2.2  PMON與SMON進程  123
  4.2.3  DBWn與LGWR進程  125
  4.2.4  CKPT與ARCn進程  126
  4.3  小結  128
第2篇  管理方案對象
第5章  創建和管理表( 教學視頻:52分鐘)  130
  5.1  表和表列  130
  5.1.1  表和實體  130
  5.1.2  表的分類  131
  5.1.3  表和列命名規則  132
  5.1.4  列數據類型  133
  5.2  創建表  136
  5.2.1  使用設計器建表  136
  5.2.2  創建標準表  139
  5.2.3  全局臨時表  141
  5.2.4  索引組織表  144
  5.2.5  使用外部表  145
  5.2.6  使用DUAL表  149
  5.2.7  數據字典中的表信息  151
  5.3  修改表  152
  5.3.1  添加表列  152
  5.3.2  使用虛擬列  154
  5.3.3  修改表列  156
  5.3.4  刪除表列  158
  5.3.5  重命名錶列  160
  5.3.6  重命名錶  160
  5.3.7  刪除數據表  161
  5.4  小結  162
第6章  索引和約束( 教學視頻:36分鐘)  163
  6.1  創建索引  163
  6.1.1  索引的作用  163
  6.1.2  索引的原理  166
  6.1.3  索引的分類  168
  6.1.4  創建B*樹索引  170
  6.1.5  創建位圖索引  173
  6.1.6  創建函數索引  175
  6.1.7  修改索引  176
  6.1.8  重命名索引  177
  6.1.9  重建和合併索引  178
  6.1.10  不可見和不可用的索引  180
  6.1.11  索引的監控  181
  6.1.12  刪除索引  182
  6.1.13  查看索引信息  183
  6.1.14  索引創建策略  185
  6.1.15  創建和管理索引的一般性指南  185
  6.2  創建約束  186
  6.2.1  理解約束  186
  6.2.2  主鍵約束  188
  6.2.3  外鍵約束  190
  6.2.4  級聯關係  192
  6.2.5  外鍵與索引  194
  6.2.6  檢查約束  195
  6.2.7  唯一性約束  198
  6.3  管理約束  199
  6.3.1  修改約束  199
  6.3.2  添加約束  200
  6.3.3  重命名約束  201
  6.3.4  刪除約束  202
  6.3.5  約束的狀態  203
  6.3.6  查詢約束信息  206
  6.4  小結  207
第7章  視圖( 教學視頻:28分鐘)  208
  7.1  視圖基礎  208
  7.1.1  什麼是視圖  208
  7.1.2  視圖的分類  209
  7.1.3  視圖創建語法  211
  7.1.4  創建簡單視圖  212
  7.1.5  創建複雜視圖  215
  7.1.6  視圖的修改  217
  7.1.7  視圖的刪除  218
  7.2  內聯視圖  219
  7.2.1  什麼是內聯視圖  219
  7.2.2  內聯視圖執行順序  221
  7.2.3  內聯視圖與DML語句  223
  7.3  物化視圖  224
  7.3.1  什麼是物化視圖  225
  7.3.2  創建物化視圖  228
  7.3.3  修改物化視圖  231
  7.3.4  刪除物化視圖  233
  7.4  小結  233
第8章  序列和同義詞( 教學視頻:24分鐘)  234
  8.1  使用序列  234
  8.1.1  序列的作用  234
  8.1.2  創建自增序列  236
  8.1.3  NEXTVAL和CURRVAL偽列  238
  8.1.4  修改序列  241
  8.1.5  刪除序列  242
  8.1.6  查看序列  242
  8.2  使用同義詞  244
  8.2.1  同義詞的作用  244
  8.2.2  創建和使用同義詞  245
  8.2.3  刪除同義詞  246
  8.2.4  查看同義詞  247
  8.3  小結  248
第3篇  使用SQL語言
第9章  SQL查詢( 教學視頻:50分鐘)  250
  9.1  基本查詢  250
  9.1.1  SELECT語法  250
  9.1.2  查詢指定列數據  251
  9.1.3  用DISTINCT去除重複值  253
  9.1.4  表達式查詢  254
  9.1.5  使用WHERE限制返回的行  257
  9.1.6  BETWEEN、IN和LIKE範圍查詢  259
  9.1.7  處理NULL列值  263
  9.1.8  AND、OR、NOT邏輯運算符  264
  9.1.9  使用ORDER BY排序  267
  9.1.10  ROWNUM偽列  269
  9.1.11  ROWID偽列  271
  9.1.12  使用CASE表達式  274
  9.2  多表連接查詢  276
  9.2.1  理解多表查詢  276
  9.2.2  內連接  278
  9.2.3  外連接  281
  9.2.4  自引用連接  284
  9.2.5  交叉連接  285
  9.2.6  自然連接  286
  9.3  集合和子查詢  288
  9.3.1  理解集合運算  288
  9.3.2  UNION聯合運算與UNION ALL全聯合運算  289
  9.3.3  INTERSECT交集運算  291
  9.3.4  MINUS差集運算  292
  9.3.5  理解子查詢  293
  9.3.6  非相關子查詢  294
  9.3.7  單行單列子查詢  296
  9.3.8  多行單列子查詢  297
  9.3.9  相關子查詢  299
  9.4  分組查詢  301
  9.4.1  理解分組查詢  301
  9.4.2  分組函數  302
  9.4.3  使用GROUP BY子句分組  305
  9.4.4  使用HAVING子句限制結果集  308
  9.4.5  使用ROLLUP和CUBE  310
  9.4.6  使用GROUPING SETS子句  312
  9.5  小結  313
第10章  操作數據表( 教學視頻:25分鐘)  314
  10.1  插入數據  314
  10.1.1  理解DML語言  314
  10.1.2  使用INSERT語句  316
  10.1.3  插入默認值和空值  317
  10.1.4  使用子查詢插入多行數據  319
  10.1.5  插入多表數據  320
  10.2  更新數據  324
  10.2.1  使用UPDATE語句  324
  10.2.2  使用子查詢更新多行記錄  325
  10.2.3  使用RETURNING子句  329
  10.3  刪除數據  331
  10.3.1  使用DELETE語句  331
  10.3.2  使用子查詢刪除記錄  333
  10.3.3  使用TRUNCATE清空表數據  334
  10.3.4  使用MERGE合併數據表  336
  10.4  小結  338
第11章  Oracle內置函數( 教學視頻:25分鐘)  339
  11.1  函數基礎  339
  11.1.1  函數的作用  339
  11.1.2  函數的分類  341
  11.2  字符型函數  342
  11.2.1  字符型函數列表  342
  11.2.2  ASCII和CHR函數  343
  11.2.3  大小寫轉換函數  344
  11.2.4  字符串處理函數  346
  11.2.5  字符串替代函數  352
  11.3   數字型函數  353
  11.3.1  數字型函數列表  353
  11.3.2  ABS和MOD函數  355
  11.3.3  CEIL和FLOOR函數  355
  11.3.4  ROUND和TRUNC函數  356
  11.4  日期時間函數  357
  11.4.1  日期時間函數列表  357
  11.4.2  日期時間函數使用示例  358
  11.4.3  使用EXTRACT截取日期信息  361
  11.5  類型轉換函數  362
  11.5.1  類型轉換函數列表  362
  11.5.2  TO_CHAR字符串轉換函數  364
  11.5.3  TO_DATE日期轉換函數  368
  11.5.4  TO_NUMBER數字轉換函數  369
  11.6  通用函數  370
  11.6.1  通用函數列表  370
  11.6.2  NVL和NVL2函數  371
  11.6.3  NULLIF和COALESCE函數  373
  11.6.4  DECODE函數  374
  11.6.5  SYS_GUID函數  376
  11.7  小結  377
第4篇  PL/SQL編程
第12章  使用PL/SQL創建Oracle程序( 教學視頻:39分鐘)  380
  12.1  PL/SQL基礎  380
  12.1.1  過程化程序設計  380
  12.1.2  與SQL語言整合  381
  12.1.3  提高程序性能  383
  12.1.4  模塊化應用程序開發  384
  12.1.5  面向對象的開發  386
  12.2  PL/SQL語言概覽  387
  12.2.1  PL/SQL塊  387
  12.2.2  嵌套塊  390
  12.2.3  變量和數據類型  393
  12.2.4  程序控制語句  396
  12.2.5  條件判斷語句  397
  12.2.6  循環控制語句  402
  12.2.7  順序控制語句  407
  12.2.8  存儲過程、函數與包  409
  12.2.9  觸發器簡介  412
  12.2.10  結構化異常處理  414
  12.2.11  集合與記錄  415
  12.2.12  光標基礎  418
  12.3  小結  420
第13章  子程序和包( 教學視頻:45分鐘)  421
  13.1  定義子程序  421
  13.1.1  什麼是子程序  421
  13.1.2  子程序的調試  423
  13.1.3  創建過程  425
  13.1.4  創建函數  429
  13.1.5  使用RETURN語句  430
  13.1.6  管理子程序  431
  13.1.7  在SQL語句中使用函數  434
  13.2  子程序參數  436
  13.2.1  形式參數與實際參數  437
  13.2.2  IN、OUT和IN OUT模式  438
  13.2.3  參數調用方式  441
  13.2.4  形式參數的約束  442
  13.2.5  使用NOCOPY編譯提示  444
  13.2.6  參數默認值  446
  13.3  定義PL/SQL包  447
  13.3.1  什麼是包(Package)  448
  13.3.2  定義包規範  450
  13.3.3  定義包體  453
  13.3.4  子程序重載  455
  13.3.5  調用包組件  458
  13.3.6  重新編譯包  462
  13.3.7  查看包的源代碼  463
  13.4  小結  464
第14章  記錄與集合( 教學視頻:33分鐘)  466
  14.1  使用PL/SQL記錄  466
  14.1.1  什麼是記錄  466
  14.1.2  定義記錄類型  467
  14.1.3  記錄類型賦值  471
  14.1.4  使用記錄  478
  14.2  使用集合類型  482
  14.2.1  集合的分類  482
  14.2.2  定義關聯數組  483
  14.2.3  操作關聯數組  485
  14.2.4  定義嵌套表  487
  14.2.5  操作嵌套表  489
  14.2.6  數據庫中的嵌套表  492
  14.2.7  定義變長數組  495
  14.2.8  操作變長數組  496
  14.2.9  數據庫中的變長數組  498
  14.3  小結  500
第15章  觸發器和光標( 教學視頻:26分鐘)  501
  15.1  理解觸發器  501
  15.1.1  觸發器的作用  501
  15.1.2  定義觸發器  503
  15.1.3  觸發器的分類  505
  15.2  DML觸發器  506
  15.2.1  觸發器的執行順序  506
  15.2.2  定義DML觸發器  508
  15.2.3  使用條件謂詞  511
  15.2.4  使用OLD和NEW偽記錄  512
  15.2.5  使用REFERENCING子句  514
  15.2.6  使用WHEN子句  515
  15.2.7  觸發器的異常處理  516
  15.2.8  理解自治事務  518
  15.3  INSTEAD OF替代觸發器  520
  15.3.1  什麼是替代觸發器  520
  15.3.2  定義替代觸發器  521
  15.3.3  UPDATE和DELETE替代觸發器  524
  15.4  系統事件觸發器  526
  15.4.1  定義系統觸發器  526
  15.4.2  使用DDL觸發器  527
  15.4.3  使用數據庫觸發器  530
  15.4.4  SERVERERROR觸發器  533
  15.5  光標  534
  15.5.1  什麼是光標  535
  15.5.2  定義光標  536
  15.5.3  打開光標  538
  15.5.4  提取光標數據  539
  15.5.5  關閉光標  542
  15.6  小結  542
第16章  異常處理機制( 教學視頻:17分鐘)  543
  16.1  理解異常處理  543
  16.1.1  異常處理簡介  543
  16.1.2  異常處理語法  545
  16.1.3  預定義異常  547
  16.2  自定義異常  550
  16.2.1  聲明異常  550
  16.2.2  異常的作用域範圍  551
  16.2.3  使用EXCEPTION_INIT編譯指令  552
  16.2.4  使用RAISE語句  553
  16.2.5  使用RAISE_APPLICATION_ERROR  554
  16.3  處理異常  556
  16.3.1  使用WHEN子句  556
  16.3.2  使用OTHERS異常處理器  557
  16.3.3  使用SQLCODE和SQLERRM  559
  16.4  小結  560
第17章  動態SQL語句( 教學視頻:25分鐘)  561
  17.1  理解動態SQL語句  561
  17.1.1  動態SQL基礎  561
  17.1.2  動態SQL使用時機  563
  17.1.3  本地動態SQL  564
  17.2  使用EXECUTE IMMEDIATE  566
  17.2.1  EXECUTE IMMEDIATE語法  566
  17.2.2  執行SQL語句和PL/SQL語句塊  566
  17.2.3  使用綁定變量  568
  17.2.4  使用RETURNING INTO子句  571
  17.2.5  使用INTO子句  572
  17.2.6  指定參數模式  573
  17.3  多行查詢語句  574
  17.3.1  使用OPEN FOR語句  575
  17.3.2  使用FETCH語句  576
  17.3.3  關閉光標變量  577
  17.4  使用動態批量綁定  578
  17.4.1  使用EXECUTE IMMEDIATE批量綁定  579
  17.4.2  使用批量FETCH語句  581
  17.4.3  使用批量FORALL語句  582
  17.5  動態SQL的性能優化技巧  584
  17.5.1  用綁定變量改善性能  584
  17.5.2  重複的綁定佔位符  585
  17.5.3  傳遞NULL參數  586
  17.5.4  動態SQL異常處理  586
  17.6  小結  587
第18章  事務和鎖( 教學視頻:31分鐘)  588
  18.1  使用Oracle事務  588
  18.1.1  事務的特性  588
  18.1.2  使用COMMIT提交事務  590
  18.1.3  使用ROLLBACK回滾事務  591
  18.1.4  使用SAVEPOINT保存點  592
  18.1.5  事務的隔離級別  593
  18.1.6  使用SET TRANSACTION設置事務屬性  595
  18.2  使用Oracle鎖  597
  18.2.1  什麼是鎖  597
  18.2.2  使用鎖  599
  18.2.3  DML鎖  601
  18.2.4  DDL鎖  602
  18.2.5  死鎖  603
  18.2.6  使用LOCK TABLE語句  604
  18.3  小結  606
第5篇  Oracle維護
第19章  數據庫安全性管理( 教學視頻:42分鐘)  608
  19.1  用戶管理  608
  19.1.1  用戶與方案簡介  608
  19.1.2  創建用戶  610
  19.1.3  修改用戶  614
  19.1.4  刪除用戶  616
  19.1.5  用戶概要文件  617
  19.1.6  查詢用戶信息  620
  19.2  權限管理  621
  19.2.1  理解權限  621
  19.2.2  分配權限  624
  19.2.3  撤銷權限  628
  19.2.4  查看權限  631
  19.3  角色管理  633
  19.3.1  角色簡介  633
  19.3.2  創建角色  636
  19.3.3  分配權限  637
  19.3.4  管理角色  638
  19.3.5  查看角色  642
  19.4  小結  643
第20章  數據庫空間管理( 教學視頻:17分鐘)  644
  20.1  理解表空間  644
  20.1.1  表空間概述  644
  20.1.2  表空間分類  646
  20.1.3  表空間的創建  647
  20.1.4  創建普通表空間  649
  20.1.5  創建大文件表空間  652
  20.1.6  創建臨時表空間  653
  20.1.7  創建撤銷表空間  654
  20.2  管理表空間  655
  20.2.1  調整表空間大小  655
  20.2.2  調整離線和聯機狀態  657
  20.2.3  調整隻讀和只寫狀態  658
  20.2.4  更改表空間名稱  660
  20.2.5  刪除表空間  660
  20.2.6  查詢表空間信息  661
  20.3  小結  665
第21章  數據庫文件管理( 教學視頻:46分鐘)  666
  21.1  管理控制文件  666
  21.1.1  控制文件的重要性  666
  21.1.2  創建控制文件  667
  21.1.3  多路復用控制文件  672
  21.1.4  備份/恢復控制文件  674
  21.1.5  刪除控制文件  676
  21.1.6  查看控制文件信息  677
  21.2  管理數據文件  678
  21.2.1  理解數據文件  679
  21.2.2  創建數據文件  681
  21.2.3  改變量據文件的大小  682
  21.2.4  改變量據文件的可用性  683
  21.2.5  改變量據文件的位置和名稱  686
  21.2.6  查詢數據文件信息  688
  21.3  管理重做日誌文件  691
  21.3.1  重做記錄  691
  21.3.2  重做日誌文件  692
  21.3.3  重做日誌組  693
  21.3.4  日誌切換和日誌序列號  694
  21.3.5  歸檔重做日誌文件  695
  21.3.6  多路復用重做日誌文件  697
  21.3.7  創建重做日誌組和成員  698
  21.3.8  刪除重做日誌組和成員  700
  21.3.9  更改組成員的位置或名稱  703
  21.3.10  清除重做日誌文件  704
  21.3.11  查看重做日誌文件信息  705
  21.4  小結  706
第22章  備份和恢複數據庫( 教學視頻:49分鐘)  708
  22.1  理解備份與恢復  708
  22.1.1  什麼是備份與恢復  708
  22.1.2  備份與恢復的方法  709
  22.2  使用RMAN(恢復管理器)  711
  22.2.1  設置歸檔日誌模式  712
  22.2.2  認識RMAN  714
  22.2.3  連接到RMAN  716
  22.2.4  RMAN的基本操作  717
  22.2.5  完整數據庫備份  719
  22.2.6  備份表空間和數據庫文件  723
  22.2.7  理解RMAN命令  727
  22.2.8  創建增量備份  728
  22.2.9  恢複數據庫  730
  22.2.10  恢復表空間和數據庫文件  732
  22.2.11  使用恢複目錄  733
  22.3  小結  735
第6篇  PL/SQL案例實戰
第23章  基於PL/SQL物料報表程序( 教學視頻:25分鐘)  738
  23.1  系統設計  738
  23.1.1  物料清單BOM簡介  738
  23.1.2  需求分析  739
  23.1.3  系統流程  740
  23.1.4  數據表ER關係圖  741
  23.1.5  Oracle開發環境的搭建  743
  23.2  系統編碼實現  744
  23.2.1  創建包規範  745
  23.2.2  獲取物料成本單價  746
  23.2.3  層次化展開物料清單  748
  23.2.4  編製BOM成本報表  751
  23.2.5  定義調用主程序  755
  23.3  小結  757
第24章  PL/SQL採購訂單分析程序( 教學視頻:45分鐘)  758
  24.1  系統設計  758
  24.1.1  採購訂單分析簡介  758
  24.1.2  需求分析  759
  24.1.3  系統流程  759
  24.1.4  數據表E-R流程  761
  24.1.5  創建Oracle數據表  762
  24.2  系統編碼實現  764
  24.2.1  創建包規範  764
  24.2.2  獲取採購訂單和訂單行數據  765
  24.2.3  採購分析程序實現  771
  24.2.4  設置訂單行的周範圍信息  774
  24.2.5  定義調用主程序  777
  24.3  小結  778