posts - 110,  comments - 152,  trackbacks - 0

          第18章 使用視圖

          可以把視圖想象成有以下限制的表來用:

          1.視圖是虛擬表,它只包含使用時動態檢索數據的查詢。

          2.視圖可以嵌套,可以利用其他的視圖來構建新的視圖。

          3.許多DBMS限制在視圖中使用Order by子句

          4.視圖不能索引,也不能有關聯的觸發器和默認值。

          5.有些DBMS規定視圖是只讀的,只能檢索數據不能將數據寫回系統。當也有一下DBMS是這樣的,它不運行執行導致行不再屬于這個視圖的插入和更新。

          最好的用之前查手冊.

          創建語法:CREATE VIEW viewname AS SELECT...

           

          第19章 使用存儲過程

          存儲過程可以看成為了以后使用而預先定義好的一條或多條Sql語句的集合.

          1.存儲過程的好處:
          簡單:Sql語句封裝,避免重復編寫,可重復調用,修改方便。
          安全:統一調用減少訛誤。
          高效:通過編譯后的形式存儲,執行效率高。

          2.存儲過程的不好處:
          不統一:各個DBMS對存儲過程的使用語法和實現均不統一,破壞了系統的可移植性。復雜:相對SQL而言,更復雜,更需要經驗。

          具體的還是看手冊來的實際。

           

          第20章 控制事務處理

          事務處理(transaction processing)用來維護數據庫的完整。這個日常開發中遇見的N多。

          1.看看這幾個詞,transaction 事務,rollback 回滾,commit 提交 ,savepoint 保留點。說明一下savepoint,其他的不用多言了。

          2.savapoint:事務處理過程中的臨時占位符(placeholder),你可以對它發布回退.

          3.不是所有的都可以回退的,一般而言Insert,update可以回退,但是select(沒必要),create ,drop不能回退,但是事務處理中可以使用這些語句,但進行回退時,它們不被撤銷.

          4.一般DBMS會隱含提交(implicit commit),即sql語句執行過程中,提交操作會自動執行。所以要顯示的聲明事務的開始和提交。

          5.MS SQL 里面關于事務的例子,可以體會Savepoint的使用。

          BEGIN TRANSACTION;
          DELETE OrderItems WHERE order_num =12345;
          SAVE TRANSACTION deleteDI;
          DELETE Orders WHERE order_num =12345;
          COMMIT TRANSACTION;
          ROLLBACK TRANSACTION deleteDI;

           

          第21章 使用游標

          可以理解游標其實就是操作結構集的一種機制。

          1.游標總是與一條T_SQL 選擇語句相關聯因為游標由結果集(可以是零條、一條或由相關的選擇語句檢索出的多條記錄)和結果集中指向特定記錄的游標位置組成。

          2.游標主要用于交換式應用,其中用戶需要滾動屏幕上的數據并對數據瀏覽或操作。游標在客戶端和服務器會話期間存在,而Web開發中,應用服務器為數據庫客戶端而不是最終用戶,所以游標在web開發中用的不多,web開發多使用自己開發的功能來實現相關操作.

          具體使用不通DBMS寫法不一樣,需要參考手冊。

           

          第22章 了解高級SQL特性

          1.約束,常見的約束有這些,主鍵,外鍵,唯一約束等。

          2.唯一約束與主鍵的區別:一個表可以有多個唯一約束,但是表只允許一個主鍵;唯一約束可以有Null,唯一約束可以修改或更新,唯一約束的值可以重復使用,唯一約束不能用來定義外鍵.

          3.檢查約束,用來限制列中可保存的數據的類型。
          一個例子:

          CREATE TABLE OrderItems (
               ...
               quantity  INTEGER NOT NULL CHECK (quantity > 0),
               ...
          );

          4.索引,老朋友了。有些要注意的地方
          a.索引改善檢索操作的性能,但是會降低數據插入,修改和刪除的性能。
          b.索引數據可能占有大量的存儲空間.
          c.選擇索引列的條件:該列的唯一性要求比較好,重復值比較多的列不適合做索引;如果一個列經常數據過濾或者排序,可以考慮索引來優化性能.
          d.一個表可以有多個索引列.

          5.觸發器,特殊的存儲過程,它在特定的數據庫活動發生時自動執行.但是注意觸發器的效率不如約束快。

           

          到這里《SQL必知必會》就完了。內容比較簡單.



          平凡而簡單的人一個,無權無勢也無牽無掛。一路廝殺,只進不退,死而后已,豈不爽哉!
          收起對“車”日行千里的羨慕;收起對“馬”左右逢緣的感嘆;目標記在心里面,向前進。一次一步,一步一腳印,跬步千里。
          這個角色很適合現在的


          posted on 2007-11-28 18:54 過河卒 閱讀(1024) 評論(1)  編輯  收藏 所屬分類: DataBase/Sql
          文章來自: http://www.blogjava.com/ponzmd/ (彭俊-過河卒) 轉貼請聲明!
          訪問統計:
          主站蜘蛛池模板: 青冈县| 廊坊市| 漯河市| 赤水市| 平南县| 台中市| 冷水江市| 合作市| 深水埗区| 曲麻莱县| 土默特左旗| 四会市| 宣汉县| 泸水县| 民乐县| 峨眉山市| 广宁县| 阿拉善右旗| 美姑县| 利津县| 海兴县| 封开县| 马公市| 高要市| 景谷| 广水市| 巩留县| 政和县| 天峨县| 广灵县| 获嘉县| 得荣县| 渭源县| 榆林市| 侯马市| 曲沃县| 安徽省| 慈溪市| 木兰县| 宿迁市| 壶关县|